$npx -y skills add rshankras/claude-code-apple-skills --skill web-presenceThe discovery surfaces outside the App Store app — your apps.apple.com product page ranking on Google, an owned landing page with a Smart App Banner, and the deal-site ecosystem that auto-amplifies price drops. Use when building a landing page, improving Google visibility for an
| 1 | # Web Presence |
| 2 | |
| 3 | Every app has a public web page at `apps.apple.com` that ranks in Google — most developers never |
| 4 | work that surface. Pair it with an owned landing page and the deal-site ecosystem and the open |
| 5 | web becomes a free acquisition channel that compounds with everything on-store. |
| 6 | |
| 7 | ## When This Skill Activates |
| 8 | |
| 9 | - "Make my app findable on Google" / no results for the app's own name |
| 10 | - Building or reviewing a product landing page |
| 11 | - Planning a temporary price drop or sale |
| 12 | - The store-growth audit flags P6.6 (web presence) or P7.5 (deal sites) |
| 13 | |
| 14 | ## Surface 1: The apps.apple.com page is a Google citizen |
| 15 | |
| 16 | The store page's Google snippet draws from your **app name, subtitle, and description opening** |
| 17 | — one more reason the first description paragraph must be benefit-led plain language (see |
| 18 | `app-store/app-description-writer`). |
| 19 | |
| 20 | - ✅ Search your app's name + category terms on Google periodically; if the store page doesn't |
| 21 | rank for your own brand, something is wrong (usually a generic name — see `product/app-namer`). |
| 22 | - ✅ Ratings, price, and In-App Purchase labels appear in the snippet — per-storefront ratings |
| 23 | mechanics apply (`app-store/ratings-mechanics`). |
| 24 | - ❌ Treating the store URL as un-shareable internal plumbing. It's often your best-ranking page; |
| 25 | link to it from everywhere (with `?pt=` provider token for attribution where you need source data). |
| 26 | |
| 27 | ## Surface 2: An owned landing page + Smart App Banner |
| 28 | |
| 29 | One page, one job: convert a web visitor into a store visitor. |
| 30 | |
| 31 | - Structure: name + one-line promise → 2–3 screenshots or a short capture → social proof → |
| 32 | a prominent **Download on the App Store** badge (Apple's official artwork, linked with your |
| 33 | attribution token). |
| 34 | - **Smart App Banner** — one meta tag; Safari renders a native install/open banner: |
| 35 | |
| 36 | ```html |
| 37 | <meta name="apple-itunes-app" content="app-id=YOUR_APP_ID, app-argument=https://yourapp.com/from-web"> |
| 38 | ``` |
| 39 | |
| 40 | ✅ The banner shows **Open** for installed users — deep-linking into the app, down to specific |
| 41 | in-app content via `app-argument` — and **View** for everyone else, opening the App Store in |
| 42 | one tap. ❌ Custom "download our app" interstitials — the native banner already does this for free. |
| 43 | - **App Store Marketing Tools** (tools.applemediaservices.com) — use for referral links, QR |
| 44 | codes, and localized badge assets instead of hand-rolling them. |
| 45 | - The landing page is also where pre-launch waitlists live (TestFlight public link — see |
| 46 | `product/beta-testing`) and where press/link-in-bio traffic should land, because you can |
| 47 | measure it before it enters the store funnel. |
| 48 | - App Clips can front the landing page with an instant experience (`generators/app-clip`). |
| 49 | |
| 50 | ## Surface 3: The deal-site ecosystem |
| 51 | |
| 52 | Deal aggregators scrape App Store price drops automatically — no submission needed, just drop |
| 53 | the price. |
| 54 | |
| 55 | Price drop → aggregator listing → download spike → **chart climb** → organic downloads that |
| 56 | outlive the sale. Velocity is the product; the discounted revenue is the cost of the campaign. |
| 57 | |
| 58 | - ✅ Drop meaningfully (50%+ or free-for-a-day reads as a deal; 10% doesn't scrape well). |
| 59 | - ✅ Time drops to compound: with an in-app event, a seasonal moment, or the announced On-Sale |
| 60 | badge surface (see `generators/in-app-events`), and have the next release ready so climbers |
| 61 | land on a fresh listing. |
| 62 | - ✅ Prompt for ratings during the spike window — sale users rate too, and the count sticks |
| 63 | after prices recover. |
| 64 | - ❌ Permanent-discount theater (always "90% off") — scrapers and users both learn to ignore it, |
| 65 | and review teams notice manipulated anchor pricing. |
| 66 | - ❌ Dropping the price of a subscription app's *download* — use offer codes instead |
| 67 | (`generators/offer-codes-setup`). |
| 68 | |
| 69 | ## Output Format |
| 70 | |
| 71 | Audit report: |
| 72 | |
| 73 | ``` |
| 74 | Google: brand query rank · store-page snippet quality (name/subtitle/desc opener) |
| 75 | Landing page: live? banner tag? attribution token? waitlist path? |
| 76 | Deal readiness: pricing model compatible? last drop + result? next planned window? |
| 77 | ``` |
| 78 | |
| 79 | Each gap routed: copy fixes → `app-store/app-description-writer`; page build → this skill; |
| 80 | price-drop plan → this skill + `monetization` pricing. |
| 81 | |
| 82 | ## References |
| 83 | |
| 84 | - https://developer.apple.com/documentation/webkit/promoting-apps-with-smart-app-banners |
| 85 | - https://developer.apple.com/app-store/marketing/guidelines/ |
| 86 | - https://tools.applemediaservices.com/ (official badges & link builder) |
| 87 | - Related skills: `app-store/app-description-writer`, `generators/app-clip`, `product/beta-testing`, `generators/offer-codes-setup`, `growth/store-growth-a |