Skip to main content
Glama

Prepare In-App Event Copy

prepare_iae
Read-only

Create App Store In-App Event (IAE) copy briefs with character-limited variations from supplied keywords, event purpose, and locale. Outputs structured report for event metadata.

Instructions

Prepare an iOS App Store In-App Event (IAE) — generate copy variations and a final report.

Use this when the user wants to create or draft an in-app event, prepare IAE metadata, or generate App Store event copy. Accepts user-supplied keywords and event parameters, then returns a structured brief. Do not use it for ordinary App Store listing metadata (title, subtitle, description) — it covers In-App Event fields only.

Runs entirely locally: no network calls, no App Store or SensorTower lookup, and no keyword research of its own — the caller supplies the keywords (reach for research_rivals or search_app_store first if you still need to find them). Returns immediately.

After receiving the tool output, you MUST:

  1. Generate 3 distinct copy variations in the target language (from locale.language), each differing meaningfully in angle, tone, or keyword emphasis. For each variation produce:

    • Event name (hard limit: 30 chars — count every character; trim at word boundary if over)

    • Short description (hard limit: 50 chars — same rules)

    • Long description (hard limit: 120 chars — same rules) Display every field with its exact character count and ✓ / ✗ indicator. Fix any ✗ before showing the user. Keyword placement: Tier 1 keywords must appear in short description and long description; embed in event name only if it fits naturally. Prioritize keywords toward the beginning of each field. Copy rules: active voice, present tense, no pricing claims or % discounts, no competitor names, all three fields independently meaningful. If locale is not en-US, add an English translation line under each localized field so the user can verify meaning.

  2. Ask the user to choose one variation.

  3. After the user picks a variation, print the output table and the final summary report using this exact format:

Output table:

CHOSEN VARIATION — <locale.appleCode>
─────────────────────────────────────
Event name        : <text> (<N>/30)
Short description : <text> (<N>/50)
Long description  : <text> (<N>/120)
─────────────────────────────────────
Next step: upload event artwork in App Store Connect
  • Event card image : 2160 × 1080 px
  • App icon overlay : 1024 × 1024 px

Final summary report:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IN-APP EVENT REPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IAE locale       : <locale.appleCode> (<locale.language> — <locale.country>)
Keyword store    : <locale.store> store
Target audience  : <audience>
Event context    : <event_context>
Goal             : <goal>
Tone             : <tone>
─────────────────────────────────────
Keywords used    : <Tier 1 placed> | <Tier 2 placed>
Event name       : <text> (<N>/30 chars)
Short description: <text> (<N>/50 chars)
Long description : <text> (<N>/120 chars)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CHECKLIST
[ ] IAE locale is <locale.appleCode>
[ ] Event name ≤ 30 chars
[ ] Short description ≤ 50 chars
[ ] Long description ≤ 120 chars
[ ] No pricing claims or % discounts
[ ] No competitor names
[ ] Event artwork assets prepared (1024×1024 + 2160×1080)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Flag any checklist item that is not yet satisfied.

Returns JSON with the structured brief for generating copy.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalYesPrimary conversion goal (e.g. increase conversions, attract new users, boost engagement).
toneYesCopy tone.
localeYesTarget locale/language for the IAE copy (e.g. en-us, en-gb, de-de, fr-fr, tr, ja, ko, zh-hans). An unlisted value returns an `unknown_locale` error naming the supported ones.
audienceYesTarget audience (e.g. students, professionals, parents, casual users).
keywordsYesOrdered list of keywords by priority (index 0–2 = Tier 1 must-use, 3–6 = Tier 2, 7–9 = Tier 3). Maximum 10.
event_contextYesReal-world hook tying the event to a moment (e.g. a holiday, season, product milestone).
event_purposeYes1–2 sentences describing what the event is about and why users should care.
Install Server

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds that the tool 'runs entirely locally: no network calls, no App Store or SensorTower lookup, and no keyword research of its own' and 'returns immediately.' This provides behavioral context beyond the annotations (e.g., local execution, no external calls) and aligns with read-only semantics. No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very long, but it is structured with headers, numbered steps, and code blocks. Every section provides necessary procedural detail (exact character limits, output format, checklist). It is front-loaded with the purpose and usage. While verbose, the complexity of the tool justifies the length, and the organization makes it scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden of explaining return values. It provides exact output table and final report formats, character limits, keyword placement rules, translation requirements, and the checklist. It covers every step from invocation to final output, leaving no ambiguity for an agent to execute correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds substantial semantics: it explains keyword tiering (index 0–2 = Tier 1, etc.), how locale subfields (appleCode, language, country, store) are derived, and how tone and other parameters influence copy generation. It also gives specific character limits and placement rules. This goes well beyond the schema's simple descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Prepare an iOS App Store In-App Event') and immediately distinguishes it from ordinary listing metadata. It also explicitly excludes usage for App Store listing fields, which differentiates it from siblings like search_app_store and get_app_details. This is a clear, differentiated purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use criteria ('when the user wants to create or draft an in-app event') and when-not-to-use ('Do not use it for ordinary App Store listing metadata'). It also routes the agent to sibling tools for keyword discovery ('reach for research_rivals or search_app_store first'). This is textbook usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/meyusufdemirci/app-store-operator'

If you have feedback or need assistance with the MCP directory API, please join our Discord server