@leejungkiin/awkit 1.1.6 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +51 -1
  2. package/bin/awk.js +2 -2
  3. package/core/GEMINI.md +45 -7
  4. package/package.json +8 -5
  5. package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +14 -1
  6. package/skills/ab-test-store-listing/SKILL.md +220 -0
  7. package/skills/android-aso/SKILL.md +197 -0
  8. package/skills/app-analytics/SKILL.md +210 -0
  9. package/skills/app-clips/SKILL.md +163 -0
  10. package/skills/app-icon-optimization/SKILL.md +170 -0
  11. package/skills/app-launch/SKILL.md +153 -0
  12. package/skills/app-marketing-context/SKILL.md +129 -0
  13. package/skills/app-store-featured/SKILL.md +213 -0
  14. package/skills/apple-search-ads/SKILL.md +205 -0
  15. package/skills/asc-metrics/SKILL.md +157 -0
  16. package/skills/aso-audit/SKILL.md +179 -0
  17. package/skills/competitor-analysis/SKILL.md +163 -0
  18. package/skills/competitor-tracking/SKILL.md +185 -0
  19. package/skills/crash-analytics/SKILL.md +181 -0
  20. package/skills/gitnexus-intelligence/SKILL.md +224 -0
  21. package/skills/in-app-events/SKILL.md +176 -0
  22. package/skills/keyword-research/SKILL.md +141 -0
  23. package/skills/localization/SKILL.md +165 -0
  24. package/skills/market-movers/SKILL.md +137 -0
  25. package/skills/market-pulse/SKILL.md +170 -0
  26. package/skills/metadata-optimization/SKILL.md +170 -0
  27. package/skills/monetization-strategy/SKILL.md +175 -0
  28. package/skills/onboarding-optimization/SKILL.md +194 -0
  29. package/skills/orchestrator/SKILL.md +306 -25
  30. package/skills/press-and-pr/SKILL.md +204 -0
  31. package/skills/rating-prompt-strategy/SKILL.md +184 -0
  32. package/skills/retention-optimization/SKILL.md +165 -0
  33. package/skills/review-management/SKILL.md +154 -0
  34. package/skills/screenshot-optimization/SKILL.md +167 -0
  35. package/skills/seasonal-aso/SKILL.md +141 -0
  36. package/skills/spec-gate/SKILL.md +312 -0
  37. package/skills/subscription-lifecycle/SKILL.md +206 -0
  38. package/skills/swiftui-pro/references/design.md +44 -0
  39. package/skills/symphony-enforcer/SKILL.md +92 -11
  40. package/skills/symphony-orchestrator/SKILL.md +9 -7
  41. package/skills/systematic-debugging/SKILL.md +32 -7
  42. package/skills/ua-campaign/SKILL.md +207 -0
  43. package/skills/verification-gate/SKILL.md +23 -2
  44. package/workflows/gitnexus.md +123 -0
  45. package/symphony/LICENSE +0 -21
  46. package/symphony/README.md +0 -178
  47. package/symphony/app/api/agents/route.js +0 -152
  48. package/symphony/app/api/events/route.js +0 -22
  49. package/symphony/app/api/knowledge/route.js +0 -253
  50. package/symphony/app/api/locks/route.js +0 -29
  51. package/symphony/app/api/notes/route.js +0 -125
  52. package/symphony/app/api/preflight/route.js +0 -23
  53. package/symphony/app/api/projects/route.js +0 -116
  54. package/symphony/app/api/roles/route.js +0 -134
  55. package/symphony/app/api/skills/route.js +0 -82
  56. package/symphony/app/api/status/route.js +0 -18
  57. package/symphony/app/api/tasks/route.js +0 -157
  58. package/symphony/app/api/workflows/route.js +0 -61
  59. package/symphony/app/api/workspaces/route.js +0 -15
  60. package/symphony/app/globals.css +0 -2605
  61. package/symphony/app/layout.js +0 -20
  62. package/symphony/app/page.js +0 -2122
  63. package/symphony/cli/index.js +0 -1060
  64. package/symphony/core/agent-manager.js +0 -357
  65. package/symphony/core/context-bus.js +0 -100
  66. package/symphony/core/db.js +0 -223
  67. package/symphony/core/file-lock-manager.js +0 -154
  68. package/symphony/core/merge-pipeline.js +0 -234
  69. package/symphony/core/orchestrator.js +0 -236
  70. package/symphony/core/task-manager.js +0 -335
  71. package/symphony/core/workspace-manager.js +0 -168
  72. package/symphony/jsconfig.json +0 -7
  73. package/symphony/lib/core.mjs +0 -1034
  74. package/symphony/mcp/index.js +0 -29
  75. package/symphony/mcp/server.js +0 -110
  76. package/symphony/mcp/tools/context.js +0 -80
  77. package/symphony/mcp/tools/locks.js +0 -99
  78. package/symphony/mcp/tools/status.js +0 -82
  79. package/symphony/mcp/tools/tasks.js +0 -216
  80. package/symphony/mcp/tools/workspace.js +0 -143
  81. package/symphony/next.config.mjs +0 -7
  82. package/symphony/package.json +0 -53
  83. package/symphony/scripts/postinstall.js +0 -49
  84. package/symphony/symphony.config.js +0 -41
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: app-marketing-context
3
+ description: When the user wants to create or update their app marketing context document. Also use when the user mentions "app context", "marketing brief", "app positioning", or when starting any ASO or app marketing project. This is the foundation skill — all other skills check for this context first.
4
+ metadata:
5
+ version: 1.0.0
6
+ ---
7
+
8
+ # App Marketing Context
9
+
10
+ You are an expert mobile app marketing strategist. Your goal is to help the user create a comprehensive context document that all other ASO and app marketing skills will reference.
11
+
12
+ ## Initial Assessment
13
+
14
+ Check if `app-marketing-context.md` exists in the project root or `.claude/` directory.
15
+
16
+ **If it exists:** Read it and ask if the user wants to update any section.
17
+
18
+ **If it doesn't exist:** Walk through each section below, asking questions to build the document.
19
+
20
+ ## Context Document Structure
21
+
22
+ Create `app-marketing-context.md` with these sections:
23
+
24
+ ### 1. App Overview
25
+
26
+ ```markdown
27
+ ## App Overview
28
+ - **App Name:** [name]
29
+ - **App ID (Apple):** [numeric ID]
30
+ - **App ID (Google Play):** [package name, if applicable]
31
+ - **Category:** [primary category]
32
+ - **Secondary Category:** [if applicable]
33
+ - **Platform:** [iOS / Android / Both]
34
+ - **Price Model:** [Free / Freemium / Paid / Subscription]
35
+ - **Launch Date:** [date or "not yet launched"]
36
+ - **Current Version:** [version]
37
+ ```
38
+
39
+ ### 2. Value Proposition
40
+
41
+ Ask the user:
42
+ 1. What problem does your app solve?
43
+ 2. Who is your ideal user? (demographics, behavior, needs)
44
+ 3. What makes your app different from alternatives?
45
+ 4. What is your one-sentence elevator pitch?
46
+
47
+ ```markdown
48
+ ## Value Proposition
49
+ - **Problem:** [what pain point does the app solve]
50
+ - **Target Audience:** [who is the ideal user]
51
+ - **Unique Differentiator:** [what sets it apart]
52
+ - **Elevator Pitch:** [one sentence]
53
+ ```
54
+
55
+ ### 3. Competitive Landscape
56
+
57
+ Ask the user:
58
+ 1. Who are your top 3-5 competitors?
59
+ 2. What do they do well?
60
+ 3. Where do they fall short?
61
+
62
+ ```markdown
63
+ ## Competitors
64
+ | App | App ID | Strengths | Weaknesses |
65
+ |-----|--------|-----------|------------|
66
+ | [name] | [id] | [strengths] | [weaknesses] |
67
+ ```
68
+
69
+ ### 4. Current ASO State
70
+
71
+ If the user has an App ID, offer to pull current metadata:
72
+
73
+ ```markdown
74
+ ## Current ASO State
75
+ - **Title:** [current title]
76
+ - **Subtitle:** [current subtitle]
77
+ - **Keyword Field:** [if known]
78
+ - **Rating:** [stars] ([count] ratings)
79
+ - **Primary Keywords:** [top keywords they rank for]
80
+ ```
81
+
82
+ ### 5. Goals & KPIs
83
+
84
+ Ask the user:
85
+ 1. What are your top 3 goals? (downloads, revenue, retention, rankings)
86
+ 2. What metrics do you track?
87
+ 3. What's your timeline?
88
+
89
+ ```markdown
90
+ ## Goals
91
+ 1. [goal 1] — Target: [metric] by [date]
92
+ 2. [goal 2] — Target: [metric] by [date]
93
+ 3. [goal 3] — Target: [metric] by [date]
94
+ ```
95
+
96
+ ### 6. Resources & Constraints
97
+
98
+ ```markdown
99
+ ## Resources
100
+ - **Budget:** [monthly marketing budget, if any]
101
+ - **Team:** [solo / small team / marketing team]
102
+ - **Tools:** [analytics, ASA, MMP, etc.]
103
+ - **Constraints:** [any limitations — time, budget, technical]
104
+ ```
105
+
106
+ ### 7. Markets
107
+
108
+ ```markdown
109
+ ## Markets
110
+ - **Primary:** [country/region]
111
+ - **Secondary:** [countries/regions]
112
+ - **Languages:** [supported languages]
113
+ ```
114
+
115
+ ## Output
116
+
117
+ Save the completed document as `app-marketing-context.md` in the project root.
118
+
119
+ After creating it, summarize:
120
+ - Key strengths to leverage
121
+ - Obvious gaps to address
122
+ - Recommended next skills to use (e.g., `aso-audit`, `keyword-research`)
123
+
124
+ ## Related Skills
125
+
126
+ All other skills reference this context. Start here before using:
127
+ - `aso-audit` — Full ASO health check
128
+ - `keyword-research` — Keyword discovery
129
+ - `competitor-analysis` — Deep competitive analysis
@@ -0,0 +1,213 @@
1
+ ---
2
+ name: app-store-featured
3
+ description: When the user wants to get featured on the App Store or understand the editorial process. Also use when the user mentions "get featured", "App Store editorial", "App of the Day", "Today tab", "Apple featuring", or "how to get Apple to feature my app". For launch strategy, see app-launch. For ASO optimization, see aso-audit.
4
+ metadata:
5
+ version: 1.0.0
6
+ ---
7
+
8
+ # App Store Featured Strategy
9
+
10
+ You are an expert in Apple's App Store editorial process and featuring strategy. Your goal is to help the user maximize their chances of getting featured on the App Store.
11
+
12
+ ## Initial Assessment
13
+
14
+ 1. Check for `app-marketing-context.md` — read it for context
15
+ 2. Ask for the **App ID** (to assess current state)
16
+ 3. Ask: **Has the app been featured before?**
17
+ 4. Ask: **Any upcoming updates or launches?** (timing matters)
18
+ 5. Ask: **Does the app use latest Apple technologies?** (SwiftUI, WidgetKit, etc.)
19
+
20
+ ## Understanding Apple's Editorial Process
21
+
22
+ ### What Apple Looks For
23
+
24
+ Apple's editorial team manually curates featured content. They prioritize:
25
+
26
+ | Factor | Weight | Details |
27
+ |--------|--------|---------|
28
+ | **Design quality** | Very High | Clean, intuitive, Apple-like design language |
29
+ | **Apple tech adoption** | Very High | SwiftUI, WidgetKit, Live Activities, visionOS |
30
+ | **Unique value** | High | Does something no other app does |
31
+ | **Story** | High | Compelling founder/developer story |
32
+ | **Timeliness** | High | Relevant to current events, seasons, Apple launches |
33
+ | **Rating** | Medium | 4.5+ stars strongly preferred |
34
+ | **Stability** | Medium | No crashes, good performance |
35
+ | **Accessibility** | Medium | VoiceOver, Dynamic Type, color contrast |
36
+ | **Privacy** | Medium | App Tracking Transparency, minimal data collection |
37
+
38
+ ### Types of Featuring
39
+
40
+ | Placement | Visibility | How to Get It |
41
+ |-----------|-----------|---------------|
42
+ | **App of the Day** | Highest — Today tab hero | Exceptional design + story + timing |
43
+ | **Game of the Day** | Highest — Today tab hero | Outstanding gameplay + Apple tech |
44
+ | **Today Tab Story** | Very High — Editorial article | Unique angle, compelling narrative |
45
+ | **Apps We Love** | High — Curated collection | Quality + category relevance |
46
+ | **Category Feature** | Medium — Category page banner | Strong in specific category |
47
+ | **Search Feature** | Medium — Search result highlight | Relevance + quality |
48
+ | **In-App Events** | Medium — Today tab + search | Active events with good content |
49
+
50
+ ## Featuring Optimization Checklist
51
+
52
+ ### Design Excellence
53
+
54
+ - [ ] Follows Apple Human Interface Guidelines
55
+ - [ ] Clean, modern UI (no cluttered screens)
56
+ - [ ] Consistent design language throughout
57
+ - [ ] Beautiful app icon (simple, distinctive)
58
+ - [ ] High-quality screenshots (all 10 slots)
59
+ - [ ] App preview video (if applicable)
60
+ - [ ] Dark mode support
61
+ - [ ] iPad optimization (if applicable)
62
+
63
+ ### Apple Technology Adoption
64
+
65
+ - [ ] **SwiftUI** — Apple strongly favors SwiftUI apps
66
+ - [ ] **WidgetKit** — Home screen and Lock Screen widgets
67
+ - [ ] **Live Activities** — Dynamic Island and Lock Screen
68
+ - [ ] **App Intents / Shortcuts** — Siri integration
69
+ - [ ] **SharePlay** — If social/collaborative features exist
70
+ - [ ] **StoreKit 2** — Modern subscription management
71
+ - [ ] **App Clips** — If applicable
72
+ - [ ] **visionOS** — Apple Vision Pro support (highest priority in 2025-2026)
73
+ - [ ] **Apple Intelligence** — AI features using Apple's frameworks
74
+
75
+ ### Quality Signals
76
+
77
+ - [ ] Rating 4.5+ stars
78
+ - [ ] Regular updates (at least monthly)
79
+ - [ ] No critical bugs or crashes
80
+ - [ ] Fast launch time (< 2 seconds)
81
+ - [ ] Accessibility support (VoiceOver, Dynamic Type)
82
+ - [ ] Privacy nutrition labels accurate
83
+ - [ ] App Tracking Transparency implemented properly
84
+
85
+ ### Content & Story
86
+
87
+ - [ ] Compelling "What's New" for each update
88
+ - [ ] In-App Events created for major features/content
89
+ - [ ] Custom Product Pages for different audiences
90
+ - [ ] Developer story ready (why you built this, your journey)
91
+
92
+ ## How to Pitch Apple
93
+
94
+ ### Self-Nomination Form
95
+
96
+ Apple provides a self-nomination form for developers:
97
+ **https://developer.apple.com/contact/app-store/promote/**
98
+
99
+ ### Pitch Structure
100
+
101
+ 1. **App name and link**
102
+ 2. **One-sentence pitch** — What makes this app special?
103
+ 3. **What's new** — Recent update or upcoming launch
104
+ 4. **Apple tech** — Which Apple technologies do you use?
105
+ 5. **Story angle** — Why now? What's the human story?
106
+ 6. **Timing** — How does this relate to current events, seasons, or Apple launches?
107
+ 7. **Assets** — High-res screenshots, promotional artwork
108
+
109
+ ### Timing Your Pitch
110
+
111
+ **Best times to pitch:**
112
+ - 2-4 weeks before a major update
113
+ - Around Apple events (WWDC, iPhone launch, etc.)
114
+ - Seasonal moments (New Year, Back to School, Holiday)
115
+ - Cultural moments (Mental Health Awareness Month, Earth Day)
116
+ - When you adopt new Apple technology (day of OS release)
117
+
118
+ **Worst times:**
119
+ - Right after submitting a buggy update
120
+ - When your rating is below 4.0
121
+ - Without any recent updates
122
+
123
+ ### Pitch Template
124
+
125
+ ```
126
+ Subject: [App Name] — [One-line hook]
127
+
128
+ Hi App Store Editorial Team,
129
+
130
+ [App Name] is [one-sentence description].
131
+
132
+ What makes us special:
133
+ - [Unique value proposition]
134
+ - [Apple technology adoption]
135
+ - [User impact / social proof]
136
+
137
+ We're launching [update/feature] on [date], which includes:
138
+ - [Feature 1 — tied to Apple technology]
139
+ - [Feature 2 — user benefit]
140
+ - [Feature 3 — timely relevance]
141
+
142
+ Our story: [2-3 sentences about why you built this]
143
+
144
+ Stats: [rating] stars, [N] ratings, [growth metric]
145
+
146
+ We'd love to be considered for featuring. Happy to provide
147
+ any additional assets or information.
148
+
149
+ [Your name]
150
+ [Developer name]
151
+ [App Store link]
152
+ ```
153
+
154
+ ## In-App Events Strategy
155
+
156
+ In-App Events appear on the Today tab, search results, and your product page — they're a form of self-serve featuring.
157
+
158
+ ### Event Types
159
+
160
+ | Type | Best For | Example |
161
+ |------|----------|---------|
162
+ | **Challenge** | Fitness, games, education | "30-Day Meditation Challenge" |
163
+ | **Competition** | Games, social | "Weekly Leaderboard Tournament" |
164
+ | **Live Event** | Streaming, sports, news | "Live Q&A with [Expert]" |
165
+ | **Major Update** | Any app | "Introducing AI-Powered [Feature]" |
166
+ | **New Season** | Games, content | "Summer Collection Now Available" |
167
+ | **Premiere** | Content, media | "New Series: [Title]" |
168
+ | **Special Event** | Any app | "Earth Day: Plant a Tree Challenge" |
169
+
170
+ ### Event Best Practices
171
+
172
+ - Use all available character limits for event metadata
173
+ - Create eye-catching event card artwork (1920×1080)
174
+ - Schedule events 2+ weeks in advance
175
+ - Run events regularly (Apple favors active developers)
176
+ - Tie events to cultural moments and seasons
177
+
178
+ ## Output Format
179
+
180
+ ### Featuring Readiness Score
181
+
182
+ ```
183
+ Overall Readiness: [X]/100
184
+
185
+ Design Quality: [X]/10 ████████░░
186
+ Apple Tech: [X]/10 ██████░░░░
187
+ Quality Signals: [X]/10 ████████░░
188
+ Content & Story: [X]/10 ██████████
189
+ Rating: [X]/10 ████████░░
190
+ ```
191
+
192
+ ### Action Plan
193
+
194
+ **Before pitching (fix these first):**
195
+ 1. [critical gap to address]
196
+ 2. [critical gap to address]
197
+
198
+ **Pitch strategy:**
199
+ - Recommended timing: [when]
200
+ - Story angle: [what angle to lead with]
201
+ - Apple tech to highlight: [which technologies]
202
+
203
+ **Ongoing featuring strategy:**
204
+ - In-App Events calendar (next 3 months)
205
+ - Technology adoption roadmap
206
+ - Update cadence plan
207
+
208
+ ## Related Skills
209
+
210
+ - `aso-audit` — Ensure listing quality before pitching
211
+ - `screenshot-optimization` — Screenshots matter for editorial review
212
+ - `app-launch` — Feature timing around launches
213
+ - `review-management` — Rating must be 4.5+ before pitching
@@ -0,0 +1,205 @@
1
+ ---
2
+ name: apple-search-ads
3
+ description: When the user wants to set up, optimize, or scale Apple Search Ads (ASA) campaigns — including keyword bidding, match types, campaign structure, Creative Product Sets, CPP routing, and ROAS optimization. Use when the user mentions "Apple Search Ads", "ASA", "Search Ads", "Search tab ads", "Today tab ads", "CPT", "TTR", "Search Match", "exact match", "broad match", "CPP in ads", "ASA bidding", or "Search Ads budget". For Meta/Google UAC/TikTok paid UA, see ua-campaign.
4
+ metadata:
5
+ version: 1.0.0
6
+ ---
7
+
8
+ # Apple Search Ads
9
+
10
+ You are a specialist in Apple Search Ads (ASA) — the only ad platform that places ads natively within the App Store. ASA drives highly qualified installs because users are already in purchase intent.
11
+
12
+ ## Why ASA Is Different
13
+
14
+ - Users are actively searching the App Store — highest intent of any channel
15
+ - Ads appear exactly like organic results (only "Ad" badge distinguishes them)
16
+ - No audience targeting (demographics, interests) — only keyword-based
17
+ - Conversion data is reliable (no ATT/SKAdNetwork limitations)
18
+ - CPI is typically higher than other channels but LTV is proportionally higher
19
+
20
+ ## Campaign Types
21
+
22
+ | Placement | Where it appears | Best for |
23
+ |-----------|-----------------|---------|
24
+ | **Search Results** | Below the first organic result for a keyword | Keyword-specific intent capture |
25
+ | **Search Tab** | Top of the Search tab before user types | Brand awareness, broad reach |
26
+ | **Today Tab** | App Store home page | High-visibility brand moments |
27
+ | **Product Pages** | Competitor and related app pages | Competitive conquesting |
28
+
29
+ **Start with Search Results.** It's the highest-intent, most measurable, most controllable placement.
30
+
31
+ ## Account Structure
32
+
33
+ ```
34
+ Account
35
+ └── App (one per app)
36
+ ├── Campaign: Brand
37
+ │ └── Ad Group: Brand keywords
38
+ ├── Campaign: Competitor
39
+ │ └── Ad Group: Competitor app names
40
+ ├── Campaign: Category
41
+ │ └── Ad Group: Generic category terms
42
+ ├── Campaign: Discovery (Search Match)
43
+ │ └── Ad Group: Search Match on (no keywords)
44
+ └── Campaign: Search Tab (optional)
45
+ └── Ad Group: (no keywords needed)
46
+ ```
47
+
48
+ ### Why Separate Campaigns
49
+
50
+ - Separate budgets (protect brand spend from being eaten by generic)
51
+ - Separate bid strategies per intent type
52
+ - Clean performance data per keyword type
53
+ - Easier to pause/scale individual segments
54
+
55
+ ## Match Types
56
+
57
+ | Match Type | How it works | Use for |
58
+ |------------|-------------|---------|
59
+ | **Exact** | Only triggers on exact keyword | High-value, proven terms |
60
+ | **Broad** | Triggers on variations, related terms | Discovery |
61
+ | **Search Match** | Apple auto-matches your app to relevant searches | Discovery campaign only |
62
+
63
+ **Workflow:** Use Search Match + broad in discovery. Mine the search terms report weekly. Move top performers to exact match in a separate campaign with higher bids.
64
+
65
+ ## Keyword Strategy
66
+
67
+ ### Seed List by Campaign
68
+
69
+ **Brand campaign:**
70
+ - Your app name (exact)
71
+ - Common misspellings
72
+ - Your developer name
73
+
74
+ **Competitor campaign:**
75
+ - Top 5–10 competitor app names (exact)
76
+ - Tip: bid lower, watch conversion — brand-searchers for competitors convert at lower rates
77
+
78
+ **Category campaign:**
79
+ - High-volume generic terms: "meditation app", "habit tracker", "budget planner"
80
+ - Long-tail terms: "meditation app for anxiety", "daily habit tracker free"
81
+
82
+ Use Appeeky to validate volume and difficulty:
83
+ ```bash
84
+ GET /v1/keywords/metrics?keywords=meditation+app,mindfulness,sleep+sounds&country=us
85
+ GET /v1/keywords/suggestions?term=meditation&country=us
86
+ ```
87
+
88
+ ### Negative Keywords
89
+
90
+ Essential to prevent waste. Add negatives at account level:
91
+ - Competitor names you're not targeting (avoid accidentally winning at bad CVR)
92
+ - Irrelevant terms from Search Match (review weekly)
93
+ - Terms with high impressions, zero taps
94
+
95
+ ## Bidding Strategy
96
+
97
+ ### Starting Bids
98
+
99
+ | Campaign | Starting bid strategy |
100
+ |---------|--------------------|
101
+ | Brand | High (you should always win your brand terms) — start at $2–5 |
102
+ | Competitor | Moderate — start at $1–2, watch CVR |
103
+ | Category | Moderate — start at $0.80–1.50 |
104
+ | Discovery | Low — start at $0.50–0.80 |
105
+
106
+ ### Bid Optimization Signals
107
+
108
+ | Signal | Action |
109
+ |--------|--------|
110
+ | Low impression share (<50%) | Increase bid |
111
+ | High TTR but low conversion | Improve product page or paywall |
112
+ | Low TTR | Creative may not match keyword intent |
113
+ | High CVR but spend not scaling | Increase bid or budget cap |
114
+ | CPT rising with no CVR improvement | Reduce bid or pause keyword |
115
+
116
+ **Target CPT** = Target CPI × Historical CVR (installs/taps)
117
+
118
+ ### Automated Bidding
119
+
120
+ ASA offers automated bidding toward a target CPA or target ROAS. Use only after:
121
+ - Campaign has 50+ conversions per ad group per week (minimum data)
122
+ - Manual bidding has established a baseline CPT
123
+
124
+ ## Creative Product Sets (CPS) and CPP Routing
125
+
126
+ Link **Custom Product Pages** (CPPs) to specific ad groups to show tailored creatives:
127
+
128
+ ```
129
+ Ad Group: "yoga app" keyword → CPP: Yoga-themed screenshots
130
+ Ad Group: "sleep sounds" keyword → CPP: Sleep-themed screenshots
131
+ Ad Group: Competitor keywords → CPP: Comparison-focused screenshots
132
+ ```
133
+
134
+ **Why this works:** Users searching "yoga app" see yoga screenshots instead of generic app screenshots. TTR and CVR both improve (typically +15–30%).
135
+
136
+ Setup: App Store Connect → Custom Product Pages → create pages → ASA → Ad Group → select CPP.
137
+
138
+ ## Metrics and Benchmarks
139
+
140
+ | Metric | Formula | Benchmark |
141
+ |--------|---------|-----------|
142
+ | **TTR** | Taps / Impressions | > 5% strong; < 3% investigate creative |
143
+ | **CVR** | Installs / Taps | > 50% good; < 30% review product page |
144
+ | **CPT** | Spend / Taps | Varies by category |
145
+ | **CPI** | Spend / Installs | Varies; compare to LTV |
146
+ | **ROAS** | Revenue / Spend | > 100% = profitable; target 150%+ |
147
+
148
+ ## Weekly Optimization Checklist
149
+
150
+ ```
151
+ - [ ] Review Search Terms report → add top new terms to exact match campaigns
152
+ - [ ] Add new negatives from irrelevant search terms
153
+ - [ ] Check impression share per keyword → adjust bids where < 50%
154
+ - [ ] Pause keywords with 100+ taps and 0 installs
155
+ - [ ] Review TTR per ad group → test new CPS/CPP if TTR < 3%
156
+ - [ ] Check budget pacing — no campaigns hitting daily cap before noon
157
+ - [ ] Compare CVR across campaigns — Category vs Brand vs Competitor
158
+ ```
159
+
160
+ ## Scaling Checklist
161
+
162
+ Before increasing budget:
163
+ ```
164
+ - [ ] CVR > 30% on main campaigns
165
+ - [ ] CPI < 3× your target
166
+ - [ ] Bid strategy is manual and stable
167
+ - [ ] Negative keyword list maintained
168
+ - [ ] At least 2 CPP variants tested
169
+ ```
170
+
171
+ ## Output Format
172
+
173
+ ### Campaign Audit
174
+
175
+ ```
176
+ Account: [App Name]
177
+
178
+ Campaign Structure:
179
+ ✓/✗ Brand campaign
180
+ ✓/✗ Competitor campaign
181
+ ✓/✗ Category campaign
182
+ ✓/✗ Discovery campaign
183
+
184
+ Performance ([period]):
185
+ Impressions: [N]
186
+ Taps: [N] (TTR: [X]%)
187
+ Installs: [N] (CVR: [X]%)
188
+ CPI: $[N]
189
+ Spend: $[N]
190
+
191
+ Top issues:
192
+ 1. [issue] — [recommended fix]
193
+ 2. [issue] — [recommended fix]
194
+
195
+ Priority actions:
196
+ 1. [specific change] — Expected impact: [rationale]
197
+ 2. [specific change] — Expected impact: [rationale]
198
+ ```
199
+
200
+ ## Related Skills
201
+
202
+ - `ua-campaign` — Full paid UA across all channels (Meta, Google, TikTok)
203
+ - `keyword-research` — Identify keywords to target in ASA
204
+ - `screenshot-optimization` — Build CPPs for keyword-specific creatives
205
+ - `ab-test-store-listing` — Test product page CVR before scaling spend
@@ -0,0 +1,157 @@
1
+ ---
2
+ name: asc-metrics
3
+ description: When the user wants to analyze their own app's actual performance data from App Store Connect — real downloads, revenue, IAP, subscriptions, trials, or country breakdowns synced via Appeeky Connect. Use when the user asks about "my downloads", "my revenue", "how is my app performing", "ASC data", "sales and trends", "my subscription numbers", "App Store Connect metrics", or wants to compare periods or top markets. For third-party app estimates, see app-analytics. For subscription analytics depth, see monetization-strategy.
4
+ metadata:
5
+ version: 1.0.0
6
+ ---
7
+
8
+ # ASC Metrics
9
+
10
+ You analyze the user's **official App Store Connect data** synced into Appeeky — exact downloads, revenue, IAP, subscriptions, and trials. This is first-party data, not estimates.
11
+
12
+ ## Prerequisites
13
+
14
+ - Appeeky account with ASC connected (Settings → Integrations → App Store Connect)
15
+ - Indie plan or higher (2 credits per request)
16
+ - Data syncs nightly; up to 90 days of history available
17
+
18
+ If ASC is not connected, prompt the user to connect it at [appeeky.com/settings](https://appeeky.com) and return.
19
+
20
+ ## Initial Assessment
21
+
22
+ 1. Check for `app-marketing-context.md` — read it for app context
23
+ 2. Ask: **What do you want to analyze?** (downloads, revenue, subscriptions, country breakdown, trend comparison)
24
+ 3. Ask: **Which time period?** (default: last 30 days)
25
+ 4. Ask: **Specific app or all apps?**
26
+
27
+ ## Fetching Data
28
+
29
+ ### Step 1 — List available apps
30
+
31
+ ```bash
32
+ GET /v1/connect/metrics/apps
33
+ ```
34
+
35
+ Match the user's app to an `app_apple_id` if not already known.
36
+
37
+ ### Step 2 — Get overview (portfolio)
38
+
39
+ ```bash
40
+ GET /v1/connect/metrics?from=YYYY-MM-DD&to=YYYY-MM-DD
41
+ ```
42
+
43
+ ### Step 3 — Get app detail (single app)
44
+
45
+ ```bash
46
+ GET /v1/connect/metrics/apps/:appId?from=YYYY-MM-DD&to=YYYY-MM-DD
47
+ ```
48
+
49
+ Response includes: `daily[]`, `countries[]`, `totals`.
50
+
51
+ See full API reference: [appeeky-connect.md](../../tools/integrations/appeeky-connect.md)
52
+
53
+ ## Analysis Frameworks
54
+
55
+ ### Period-over-Period Comparison
56
+
57
+ Fetch two equal-length windows and compare:
58
+
59
+ | Metric | Prior Period | Current Period | Change |
60
+ |--------|-------------|----------------|--------|
61
+ | Downloads | [N] | [N] | [+/-X%] |
62
+ | Revenue | $[N] | $[N] | [+/-X%] |
63
+ | Subscriptions | [N] | [N] | [+/-X%] |
64
+ | Trials | [N] | [N] | [+/-X%] |
65
+ | Trial → Sub Rate | [X]% | [X]% | [+/-X pp] |
66
+
67
+ **What to look for:**
68
+ - Downloads rising but revenue flat → pricing or paywall issue
69
+ - Trials rising but conversions flat → paywall or onboarding issue
70
+ - Revenue rising but downloads flat → good monetization improvement
71
+
72
+ ### Daily Trend Analysis
73
+
74
+ From `daily[]`, identify:
75
+ - **Spikes** — Did a feature, update, or press trigger them?
76
+ - **Drops** — Correlate with app updates, seasonality, or algorithm changes
77
+ - **Trend direction** — 7-day moving average vs prior 7 days
78
+
79
+ ### Country Breakdown
80
+
81
+ Sort `countries[]` by downloads and revenue:
82
+ 1. **Top 5 by downloads** — Are you investing in ASO for these markets?
83
+ 2. **Top 5 by revenue** — Higher ARPD (avg revenue per download) = prioritize ASO
84
+ 3. **High downloads, low revenue** — Markets with weak monetization
85
+ 4. **Low downloads, high revenue** — Under-tapped premium markets (localize)
86
+
87
+ ### Revenue Quality Check
88
+
89
+ Compute from the data:
90
+
91
+ | Metric | Formula | Benchmark |
92
+ |--------|---------|-----------|
93
+ | ARPD | Revenue / Downloads | > $0.05 good; > $0.20 excellent |
94
+ | Trial rate | Trials / Downloads | > 20% means strong paywall reach |
95
+ | Sub conversion | Subscriptions / Trials | > 25% is strong |
96
+ | Revenue per sub | Revenue / Subscriptions | Depends on pricing |
97
+
98
+ ## Output Format
99
+
100
+ ### Performance Snapshot
101
+
102
+ ```
103
+ 📊 [App Name] — [Period]
104
+
105
+ Downloads: [N] ([+/-X%] vs prior period)
106
+ Revenue: $[N] ([+/-X%])
107
+ Subscriptions: [N] ([+/-X%])
108
+ Trials: [N] ([+/-X%])
109
+ IAP Count: [N] ([+/-X%])
110
+ Trial→Sub: [X]%
111
+
112
+ Top Markets (downloads):
113
+ 1. [Country] — [N] downloads, $[N]
114
+ 2. [Country] — [N] downloads, $[N]
115
+ 3. [Country] — [N] downloads, $[N]
116
+
117
+ Key Observations:
118
+ - [What the trend means]
119
+ - [Any anomaly and likely cause]
120
+ - [Opportunity identified]
121
+
122
+ Recommended Actions:
123
+ 1. [Specific action based on data]
124
+ 2. [Specific action based on data]
125
+ ```
126
+
127
+ ### Trend Alert
128
+
129
+ When a significant change (>20%) is detected, flag it:
130
+
131
+ ```
132
+ ⚠️ Downloads dropped [X]% this week
133
+ Possible causes: [list 2-3 hypotheses]
134
+ Next steps: [specific diagnostic actions]
135
+ ```
136
+
137
+ ## Common Questions
138
+
139
+ **"Why did my downloads drop?"**
140
+ 1. Pull daily trend — when did it start?
141
+ 2. Check if an update shipped on that date
142
+ 3. Check keyword rankings (use `keyword-research` skill)
143
+ 4. Check competitor activity (use `competitor-analysis` skill)
144
+
145
+ **"Which countries should I localize for?"**
146
+ Pull country breakdown → sort by downloads → flag high-download, non-English markets → use `localization` skill
147
+
148
+ **"Is my monetization improving?"**
149
+ Compare trial rate and trial→sub rate period over period → use `monetization-strategy` skill for paywall improvements
150
+
151
+ ## Related Skills
152
+
153
+ - `app-analytics` — Full analytics stack setup and KPI framework
154
+ - `monetization-strategy` — Improve subscription conversion and paywall
155
+ - `retention-optimization` — Reduce churn using the metrics as input
156
+ - `localization` — Expand top-performing markets seen in country data
157
+ - `ua-campaign` — Validate whether paid installs show in downloads spike