agentsclimarketplace

Ios app growth marketing

Skill Emasoft/emasoft-complete-ios-app-authoring/skills/ios-app-growth-marketing

Grow an iOS/iPadOS app: paid UA and ad attribution under ATT (SKAdNetwork v4, AdAttributionKit, AppsFlyer/Adjust/Branch/Singular, Apple Search Ads, Meta/TikTok/Google), subscription pricing and paywall price display (StoreKit 2 + RevenueCat), PPP territory pricing, CRO, launch (Product Hunt, App Store featuring), referral/viral loops (K-factor), retention/churn/LTV, marketing psychology. Use when: "market my app", "grow my app", "user acquisition", "paid ads", "ROAS", "CAC", "ATT", "SKAdNetwork", "conversion value", "MMP", "Apple Search Ads", "pricing strategy", "paywall", "free trial", "PPP pricing", "referral program", "launch strategy", "retention", "churn", "LTV".From its SKILL.md

Install
npx -y skills add Emasoft/emasoft-complete-ios-app-authoring --skill ios-app-growth-marketing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

17.7 KB, as published. Nobody here has run it

iOS App Growth & Marketing

End-to-end growth engineering for iOS/iPadOS apps. This skill covers the four pillars of app growth and the iOS-native plumbing each one depends on:

  1. Acquisition — paid UA, ad-attribution measurement under ATT (the iOS-specific part most generic marketing advice gets wrong).
  2. Monetization — subscription/IAP pricing strategy, StoreKit 2 + RevenueCat paywall pricing display, purchasing-power-parity territory pricing.
  3. Activation & retention — onboarding-to-paywall flow, CRO, referral/viral loops, churn reduction.
  4. Strategy — launch sequencing, growth-tactic selection, marketing psychology, competitor positioning.

Scope boundary. This skill is about growing an app that already exists. It does not cover App Store listing optimization (keywords, screenshots, title/subtitle — that's the app-store-optimization / ASO skill), the release/submission mechanics (asc CLI, TestFlight, build upload — that's app-store-release), or App Review compliance checks (that's app-review-preflight). When a request is purely ASO, release, or review, delegate. This skill owns demand generation, attribution measurement, pricing, CRO, and viral/retention loops.


Decision tree — route to the right reference

What does the user need?
│
├─ "Installs going Organic / attribution missing / ATT prompt / SKAN / AdAttributionKit
│   / conversion value / Meta AEM / MMP setup / IDFA / postback receiver / dual-call"
│   └─→ references/attribution-and-att.md
│       The iOS-native acquisition-measurement layer. SDK init order, ATT 4-state
│       handling, SKAdNetwork v4 + AdAttributionKit (incl. iOS 18 PostbackUpdate +
│       server-side postback receiver), per-channel measurement, MMP troubleshooting.
│
├─ "TikTok SDK / TikTokBusinessSDK / disableSKAdNetworkSupport / tiktokAppId / SKAN owner"
│   └─→ references/tiktok-channel.md
│       Business-SDK-vs-OpenSDK trap, SKAN-ownership decision matrix, init order,
│       hybrid event_id dedup, Events API S2S.
│
├─ "Meta AEM greyed-out / extinfo / ATE verification error / CAPI app events / CUID"
│   └─→ references/meta-attribution.md
│       7-prereq AEM checklist, ATE 5-cause list, the extinfo 16-position array.
│
├─ "Apple Search Ads / ASA / CPT / keyword bids / campaign structure / Search Terms / CPP"
│   └─→ references/apple-search-ads.md
│       Readiness gate, CPT-by-category, bid formula, CPP routing, 2025-26 changes.
│
├─ "In-App Events / Today tab event / event card / live event / challenge"
│   └─→ references/in-app-events.md   (free discovery + no-opt-in re-engagement push)
│
├─ "App Clip / instant experience / SKOverlay / App Clip card / 3-5x conversion"
│   └─→ references/app-clips-growth.md
│
├─ "Benchmarks / retention bands / D1/D7/D30 / cohort analysis / LTV by market / churn"
│   └─→ references/metrics-benchmarks.md
│       Per-category Poor/Avg/Good/Excellent bands, cohorts, sourced 2026 sub data.
│
├─ "Rating prompt / requestReview / star rating / pre-prompt survey / rating reset"
│   └─→ references/ratings-and-reviews.md
│
├─ "Paid ads / ROAS / CPA / campaign structure / ad creative / audiences / retargeting"
│   └─→ references/paid-acquisition.md
│       Platform selection, campaign structure, ad copy/creative frameworks,
│       audience targeting, optimization levers, blended-CAC accounting.
│
├─ "Pricing / subscription tiers / freemium / free trial / willingness to pay /
│   value metric / price increase / Van Westendorp / MaxDiff / unit economics"
│   └─→ references/monetization-and-pricing.md
│       Value-based pricing, research methods, tier structure, freemium vs trial,
│       app subscription unit economics, when/how to raise prices.
│
├─ "Paywall price display / RevenueCat / StoreKit price / currency / trial copy /
│   savings badge / hardcoded $ / per-month equivalent"
│   └─→ references/paywall-pricing-display.md
│       The hard rule: prices come from StoreKit/RevenueCat, never Swift literals.
│       Locale-correct price formatting, derived savings %, trial labels.
│
├─ "PPP / purchasing power parity / per-territory pricing / regional pricing /
│   price import / storefront equalization"
│   └─→ references/ppp-territory-pricing.md
│       `asc` CLI flows for subscription + IAP territory pricing via CSV import.
│
├─ "Onboarding / questionnaire flow / activation / CRO / paywall conversion /
│   permission priming / signup flow"
│   └─→ references/onboarding-and-cro.md
│       The 14-screen high-converting onboarding framework, permission priming,
│       paywall placement, CRO levers.
│
├─ "Launch / Product Hunt / go-to-market / waitlist / early access / feature announcement"
│   └─→ references/launch-strategy.md
│       ORB channel framework, 5-phase launch, Product Hunt playbook, ongoing launches.
│
├─ "Referral / affiliate / viral loop / refer-a-friend / K-factor / word of mouth"
│   └─→ references/referral-and-viral.md
│       Referral loop design, incentive sizing, viral-coefficient modeling, fraud.
│
├─ "Marketing psychology / mental models / cognitive bias / persuasion / why people buy"
│   └─→ references/marketing-psychology.md
│       70+ mental models mapped to app marketing applications.
│
├─ "Marketing ideas / growth ideas / how to market / tactics / ways to promote"
│   └─→ references/growth-tactics-library.md
│       140 growth tactics organized by category, stage, budget, timeline.
│
└─ "Competitor pages / vs pages / alternatives / comparison landing pages"
    └─→ references/competitor-pages.md
        Four comparison-page formats, centralized competitor data, SEO + schema.

Read the relevant reference(s) before answering. Each is self-contained.


The iOS growth equation (read this first)

App growth compounds three multipliers. Optimize the constraint, not your favorite lever (Theory of Constraints — see references/marketing-psychology.md):

Growth = Installs × Activation × (Monetization − Churn) × Virality

         └ acquisition ┘ └ onboarding ┘ └ pricing ┘    └ referral ┘
         attribution      CRO            StoreKit/RC     K-factor
         tells you which
         installs actually
         work

Why attribution comes first. On iOS post-14.5, if your install measurement is broken, every downstream optimization is flying blind — you can't tell which campaign, creative, or channel produced a paying user, so you scale the wrong spend. The #1 iOS-specific growth bug is "installs going Organic": a marketing SDK fires its install event before the user answers the ATT prompt, so the install is sealed with a zero IDFA and can never be re-attributed. Fix measurement (references/attribution-and-att.md) before scaling acquisition.


Core iOS attribution model (post iOS 14.5, current through iOS 26)

Three layers run simultaneously. A healthy stack wires all three; if only one is connected you lose 30-70% of attribution coverage.

┌─────────────────────────────────────────────────────────────────┐
│ Layer 1 — Deterministic (IDFA)                                   │
│   Requires ATT .authorized (~25-50% opt-in, varies by category)  │
│   → full user-level events to AppsFlyer / Adjust / Branch        │
├─────────────────────────────────────────────────────────────────┤
│ Layer 2 — SKAdNetwork v4 + AdAttributionKit (iOS 17.4+)          │
│   Privacy-preserving, no IDFA, Apple-mediated postbacks 24-48h   │
│   Conversion values: fine 0-63 OR coarse low/medium/high         │
│   Apple evaluates SKAN + AAK together; one impression wins       │
├─────────────────────────────────────────────────────────────────┤
│ Layer 3 — Probabilistic / modeled (MMP-side, where Apple allows) │
│   Statistical modeling for non-consented users                   │
└─────────────────────────────────────────────────────────────────┘

The two production failures that account for most iOS attribution loss:

  1. ATT wait-scope trap — the MMP's wait API (waitForATTUserAuthorization, attConsentWaitingInterval, enableFirstSessionDelay()) only queues that SDK's events. Backend/CAPI sends, direct Meta/TikTok SDK calls, and events fired before the wait is configured still leak with zero IDFA.
  2. Silent consent-denied paths — marketing SDKs early-return without logging when ATT is denied; the dashboard quietly drops 50% of events.

Full diagnosis and code: references/attribution-and-att.md.


Monetization quick rules (apps live and die on subscription economics)

  • Never hardcode a price in Swift. Prices come from StoreKit (via RevenueCat). A hardcoded $2.50/mo label that drifts from the real charge is an App Review 3.1.2 violation and a refund storm. Full rule: references/paywall-pricing-display.md.
  • Price the value, not the cost. Set price between the next-best alternative and the customer's perceived value; cost is a floor. Use Van Westendorp / MaxDiff to find the range. See references/monetization-and-pricing.md.
  • Model before you ship — pricing is a one-way door. Once a tier is live and purchased, you can't materially raise it without grandfathering chaos. Verify P95/P99 cost-of-service stays below price after Apple's 15%/30% cut.
  • Use PPP for international. Lower-income storefronts get stronger discounts via asc subscriptions pricing prices import (CSV, dry-run first). See references/ppp-territory-pricing.md.
  • Onboarding sells the paywall. A 14-screen questionnaire onboarding that surfaces the user's pain, mirrors it back, primes permissions, and lets them use the core mechanic before the paywall converts dramatically better than a cold paywall. See references/onboarding-and-cro.md.

Operating sequence for any growth task

  1. Identify the pillar (acquisition / monetization / activation / strategy) and route via the decision tree.
  2. Gather context the reference lists (product, stage, budget, current metrics — ARPU, CAC, conversion, churn, opt-in rate). Ask if not provided.
  3. For audits (e.g. "is our attribution healthy?", "is our pricing right?"): produce a scored PASS / WARNING / FAIL per check, citing the exact code call site (file:line) in the user's project when fixing.
  4. For new setups: walk the reference's checklist step by step, gating on each prerequisite.
  5. Always reason about second-order effects (a flash sale trains discount waiting; a loose referral reward attracts fraud) — references/marketing-psychology.md catalogs the traps.

Per-channel acquisition quick reference (iOS)

ChanneliOS measurement mechanismATT dependencyKey SDK
Apple Search Ads (ASA)AdServices token + AAK/SKANNot IDFA-dependentAdServices API / MMP
Apple Search Ads — keyword strategy— (delegate to ASO/ASA skill)——
Google App CampaignsSKAdNetwork + Firebase eventsRequired for user-levelFirebase + Google Ads
Meta App InstallAEM + SKAN + SDK/CAPI app eventsAuthorized → IDFA-level signalMeta SDK / CAPI / MMP
TikTok App InstallSKAN + SDK/S2S eventsRequired for user-levelTikTok SDK / MMP
Snap App InstallSKANRequiredSnap SDK / MMP
Branch/Adjust/AppsFlyer/Singular (MMP)Aggregator across all above + IDFARequired for user-levelTheir SDK

What this skill deliberately does NOT do

  • App Store listing / keyword optimization (ASO) → delegate to the app-store-optimization skill.
  • Build upload / TestFlight / asc release flow / submission → delegate to app-store-release.
  • App Review compliance / privacy-manifest deep audit → delegate to app-review-preflight.
  • Web/SPA attribution → use a web-analytics skill.
  • Android-only attribution / Privacy Sandbox → Android parity notes only.
  • Writing the StoreKit/RevenueCat purchase engine → this skill covers pricing strategy and price display; the transaction code (Transaction listener, entitlement gating) belongs to a StoreKit implementation skill.

References

FileCovers
references/attribution-and-att.mdATT timing, 4-state consent gating, SKAdNetwork v4 + AdAttributionKit conversion values (incl. iOS 18 PostbackUpdate, AAK server-side postback receiver, SKAN→AAK dual-call regression), per-channel measurement, MMP troubleshooting, pre-launch checklist
references/tiktok-channel.mdTikTok Business SDK (vs OpenSDK), SKAN-ownership decision matrix, init order, tiktokAppId/appId, hybrid event_id dedup, Events API S2S
references/meta-attribution.mdMeta AEM 7-prereq checklist, "AEM greyed-out" causes, ATE 5-cause list, CUID timing, Conversions API extinfo 16-position positional array
references/apple-search-ads.mdASA readiness gate, CPT-by-category, Target CPT = CPI × CVR, bid-signal table, CPP routing (+15-30%), KPI ranges, budget tiers, 2025-26 product changes
references/in-app-events.mdIn-App Event card specs/limits, indexed-search names, no-opt-in re-engagement push, algorithmic eligibility
references/app-clips-growth.mdApp Clips as a discovery→install funnel (3-5×), 15 MB cap, SKOverlay-after-value handoff, card limits
references/metrics-benchmarks.mdPer-category Poor/Avg/Good/Excellent bands, formulas, cohort analysis (3 types + 7 mistakes), sourced 2026 subscription benchmarks
references/ratings-and-reviews.mdrequestReview 3/365 limit, when-to-ask table, pre-prompt survey filter (+0.3-0.8★), per-version reset tradeoff, recovery campaign
references/paid-acquisition.mdPlatform selection, campaign structure, ad copy/creative, audience targeting, optimization, retargeting, blended CAC
references/monetization-and-pricing.mdValue-based pricing, Van Westendorp/MaxDiff, value metrics, tier structure, freemium vs trial, app unit economics, price increases
references/paywall-pricing-display.mdStoreKit/RevenueCat as price source of truth, locale formatting, derived savings/trial labels, banned Swift literals
references/ppp-territory-pricing.mdasc CLI subscription + IAP territory pricing via CSV import, PPP strategy patterns
references/onboarding-and-cro.md14-screen questionnaire onboarding framework, permission priming, paywall placement, CRO levers
references/launch-strategy.mdORB channel framework, 5-phase launch, Product Hunt, ongoing launches
references/referral-and-viral.mdReferral loop design, incentive sizing, K-factor modeling, fraud prevention, tools
references/marketing-psychology.md70+ mental models mapped to app marketing applications, pricing psychology
references/growth-tactics-library.md140 growth tactics by category / stage / budget / timeline
references/competitor-pages.md4 comparison-page formats, centralized competitor data, SEO + schema

Scripts

  • scripts/diagnose-att.sh [project-root] — static-analysis pass for iOS marketing + ATT health (CI-friendly, read-only, no network). Flags the init-order no-op (wait config after start()), the capture-protection silent-defer ATT bug, ungated marketing-event call sites, and inventories AppsFlyer/Adjust/Branch/Singular/Meta/TikTok/Firebase/AdMob. Run it as the mechanical first pass of an "is our attribution healthy?" audit, then read references/attribution-and-att.md for the fixes.

Keep looking

Skills are one crate of 626,194. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.