Impressions, clicks, CTR: reading your cross-promo stats
The dashboard rolls every tracked event into three numbers — impressions, clicks, and CTR (clicks ÷ impressions). Here is how to read them without fooling yourself.
Benchmarks: what "good" looks like
Cross-promo CTR runs far above paid display because the audience is warm. Rough bands we see:
| Placement | Typical CTR |
|---|---|
| Settings / more-apps screen | 1–3% |
| Empty states | 2–5% |
| Post-action interstitial moment | 3–8% |
Below 0.5% usually means a placement problem (the ad is invisible or irrelevant), not a creative problem.
The three levers
1. Placement beats creative. Moving the same creative from a buried settings row to an empty state routinely triples CTR. Exhaust placement ideas before rewriting copy.
2. Weight is a budget. Campaign weight controls the share of serving. Give a new app a high
weight for its launch fortnight, then settle it back. Pausing a campaign is instant — status
paused stops serving on the next request.
3. Match the moment. A photo-editing app promoted inside a to-do list converts worse than a focus timer would. Locale targeting on creatives matters too: a localized title reliably beats an English fallback in non-English markets.
Group by day vs by campaign
Use by day to catch regressions — a CTR cliff on the day of a release means the placement broke or a creative asset 404s. Use by campaign to compare apps against each other and reallocate weights monthly.
Watch for these artifacts
- Impression inflation. Firing the impression ping when the screen loads instead of when the ad is actually visible halves your apparent CTR. Fire on visibility.
- Missing creative IDs. Tracking calls without
creative_idstill count, but you lose the ability to compare creatives inside one campaign. - Small denominators. A 40% CTR on 5 impressions is noise. Judge nothing under a few thousand impressions.