Apple publishes every ad it runs in the EU. That includes App Store search ads. So you can read the exact creatives a rival app is paying to run right now, sorted by how long each one has stayed live. No spy tool subscription, no scraping, no login. Here is the method.
Why this data exists
The EU Digital Services Act requires large platforms to keep a public ad repository. Apple's went live in 2025. Every App Store ad shown in an EU or UK storefront lands there: the app, the placement, the headline, the countries, and the first and last dates it was seen.
That last part is the useful part. An ad a competitor has kept live for months is an ad that pays for itself. Nobody keeps funding a creative that loses money. So longevity is the closest free proxy you have for "this angle converts in our category." You are reading your rival's A/B test results after the fact.
The manual way
- Open the Apple Ad Repository at
adrepository.apple.com. - Search the app or developer name. Apple returns an entity ID.
- Query that ID for ads. You get back one record per creative, per country, per date window.
- Read the
firstImpressionDateandlastImpressionDateon each record. The gap is how long that ad has run.
The catch: Apple fragments one creative into dozens of records, one per country and per reporting window, and caps each query at about 50 rows. A heavy advertiser returns hundreds of near-duplicate rows across markets. To get a clean picture you have to fetch every country, dedupe by creative, and stitch each creative's records back into one first-to-last span. That is a spreadsheet afternoon per competitor.
The one-minute way
Recao does the fetch, dedupe, and longevity math for you. Type an app's name at recao.app. You get every rival creative ranked by survival time, free, no signup. Same public data, sorted the way you actually need it.
A worked example: Vinted
Here is what the method returns for Vinted, the secondhand marketplace, pulled from the Apple Ad Repository across nine major EU markets. All figures are for the data window ending 8 July 2026.
- Vinted was running 14 distinct App Store creatives, and every single one had been live for 30 days or more. No churn, no short tests left in the set. A mature account.
- Its longest-running creative had been live 243 days, first seen 31 October 2025 and still running in early July 2026. In a channel where most advertisers rotate creative every few weeks, a 243-day survivor is a loud signal: that headline works, leave it alone.
- Every one of the 14 ran in App Store search results, the post-search placement, not the browse tab. Vinted is buying intent, not discovery.
- The same creative concept was localized into seven languages, and the lead angle changed by market. English, Italian, Swedish and German markets led on breadth ("Fashion, tech, home & more"). French, Dutch and Spanish markets led on the seller side and on saving money ("Sell and buy easily", "Sell and save on pre-loved"). Same app, two different value propositions, split by geography.
That last point is the one you cannot get from guessing. Vinted decided the pitch that wins in Paris is not the pitch that wins in Stockholm, and they have run both long enough to know. If you compete with them in France, you now know the winning French angle leads with selling, not shopping. You did not run a single test to learn it.
What to do with it
Pull your three closest competitors. Sort their ads by survival time. The creatives at the top, the ones running past 60 or 90 days, are the angles your category has already validated with real money. Write your first ads against those, not against a blank page. Then check back monthly: Apple refreshes the repository, so a new long-runner appearing is your rival finding a new winner.
Start with one competitor now at recao.app. Free, no account, results in about a minute.
Method note: figures above are computed from Apple's public Ad Repository (DSA Article 39), data window ending 8 July 2026. "Days running" is the span from a creative's first to last recorded impression across all markets. Longevity is a proxy for performance, not a measured conversion rate.