Seasonal Apple Ads campaign: September, not Black Friday

Mykola Martynovets
Mykola Martynovets
7 min read
Seasonal Apple Ads campaign: September, not Black Friday

TL;DR:

  • The annual Apple Ads cost peak falls in September, not Black Friday weekend, and no bid undoes it — quarterly reporting is what hides it.
  • Each seasonal keyword bucket needs its own ad group and its own Custom Product Page, since one ad group can only serve one active ad and page.
  • The whole chain has to be proven before the peak — nothing about it can be built or read during Black Friday weekend itself.
  • Cut seasonal keywords on net ROAS against an evergreen baseline, before the peak, not after it.

September is the annual cost peak

September is the single most expensive month of the year for Apple Ads Search Results traffic — not the Black Friday run-up. Cost per tap (CPT) and cost per acquisition (CPA) peaked in September at $2.04 and $3.15, bottomed in April at $1.51 and $2.42, a 35% CPT gap (Apple Ads Benchmarks 2026).

MonthCPTCPA
Jan$1.65$2.65
Feb$1.66$2.64
Mar$1.61$2.53
Apr$1.51$2.42
May$1.65$2.64
Jun$1.61$2.52
Jul$1.68$2.64
Aug$1.83$2.87
Sep$2.04$3.15
Oct$1.93$3.00
Nov$1.88$2.87
Dec$1.91$2.90

Cost doesn't climb into Christmas — it peaks in September. Black Friday App Store traffic is expensive, just not the year's most.

Most teams report by quarter, which erases the pattern. Q3-to-Q4 CPT is +3.1% in 2025, nearly flat (Apple Ads Benchmarks 2026).

A second, public panel reads it so differently it calls this the year's best efficiency window. Neither reading contains September.

Over that same window, Search Results conversion rate (CR) moved +0.16 percentage points in 2025 — basically nothing — while cost per download rose about 30% (Apple Ads Benchmarks 2026). Conversion held, price moved.

Bids won't neutralize it — a bid sets what you pay for a tap, not how many become payers.

So the lever sits after the tap. Four jobs: semantics, structure, a matching Custom Product Page, and a matching paywall.

I work at Adapty, so this isn't a neutral take. The clicks below are on the surface I build this on every season.

Key point: The annual Apple Ads cost peak falls in September, not Black Friday weekend, and no bid undoes it — quarterly reporting is what hides it.

Build your seasonal Apple Ads campaign: semantics, structure, and the Custom Product Page

Seasonal intent has its own vocabulary, usually not the one you bid on in April. They're still ordinary exact-match keywords, just ones you haven't found yet.

Market Intelligence shows which keywords competitors bid on across dozens of countries — a proven list instead of paying a Discovery campaign to find it.

That's the Apple Ads campaign structure this chain needs. Its own campaign, not scattered ad groups.

  1. Create the campaign with the Search Results placement.
  2. Pick the type that matches intent: Generic, Competitor or Brand.
  3. One campaign per country — easier to optimize, easier to kill.
  4. Add ad groups, Search Match off; save that for discovery.

That way it pauses as a unit when the season ends and re-enables next year.

SKAG (one keyword per ad group) earns its keep on high-volume keywords; group the long tail by shared intent instead.

A Custom Product Page (CPP) is an alternate App Store page — different screenshots, different promo text — attached to one ad.

There's no keyword-level creative setting: bucket → ad group → its one active ad → that ad's CPP. A keyword-matched CPP delivers 22.9% more installs per impression than the default page (Apple Ads Benchmarks 2026).

Slots aren't the constraint. Apple doubled the limit to 70 pages per app in late 2025, up from 35 (Configure multiple product page versions).

Seasonal use is still rare — only a handful of Education apps had built a back-to-school CPP, one holding nearly all impression share on its exact term.

Set the pages up in App Store Connect. Run a CPP A/B test if you have two ideas worth comparing.

Key point: Each seasonal keyword bucket needs its own ad group and its own Custom Product Page, since one ad group can only serve one active ad and page.

The keyword-matched paywall and timing

The chain breaks at the last step for most accounts: seasonal keyword, seasonal page, generic paywall. Say the same thing, same words, all three. Turn the seasonal campaigns, ad groups or keywords into a segment built from Apple Ads attribution, then point it at its own keyword-matched paywall.

Within the same apps, Adapty's 2026 Apple Ads report measured this chain end to end: install-to-trial rose 41.5%, trial-to-paid rose 24.2%, payers per download rose 76%, and ROAS rose 48.4% at day 0, rising to 82.5% by day 92 — order of magnitude, not a precise multiplier (Apple Ads Benchmarks 2026).

The season sets the price. The chain decides how much of each download you keep.

You don't win the peak during the peak. Trial-to-paid needs several days of signal; a Black Friday weekend is short, and most short-trial cancellations land on install day.

You can still run the account live: pacing, budget caps, delivery drops. Just don't let an incomplete weekend cohort declare a winner.

The tracks run in parallel, not one after another:

  • Metadata and CPP — App Store review and reindexing (~10-week lead, the earliest deadline here); CPPs need approval too.
  • CPP testing — needs a source ad group 28+ days old with real traffic, or last year's campaign re-enabled early.
  • Paywall, then campaign — validate on live traffic, then launch early enough for day-7/day-30 reads before the peak.

These are my planning guidance, not fixed policy — only the CPP test's history requirement is a platform rule. September is for launching, not waiting for the "efficiency window" the quarterly numbers promised.

In a large, cross-vertical shopping-app dataset, peak-week installers also retained noticeably worse than off-peak cohorts. One more reason to judge seasonal keywords on retained revenue, not install-day volume.

Key point: The whole chain has to be proven before the peak — nothing about it can be built or read during Black Friday weekend itself.

What to measure

Measure net ROAS by keyword: subscription revenue after refunds and cancellations, against that keyword's spend, not installs or trials started. Read it per install cohort, seven and thirty days out.

Enough signal first — a handful of installs is noise, not a ROAS. Wait for a cohort of installs you'd defend out loud before judging any single keyword's performance.

Then a baseline: compare each seasonal keyword to evergreen keywords at the same mark. Seasonal traffic costs more, so the question is whether it pays back more.

Cut the worst keywords before the peak, not after. That only works if the campaign already launched in September — a keyword started in November has no thirty-day read to act on yet.

Want the plan for your own moment and market? A free Claude skill runs this workflow: tell it the moment, market and app.

It returns launch deadlines, a peak-budget estimate, a CPP-to-paywall plan, and an honest measurement verdict — build a seasonal Apple Ads campaign. It plans only, never touches a live account, and refuses to output a number it can't defend.

Key point: Cut seasonal keywords on net ROAS against an evergreen baseline, before the peak, not after it.

FAQ

Related articles

See how Adaptycan grow your app revenue