Apple Ad Repository

Apple App Store Ad Repository API

App Store ads from Apple's Ad Repository by developer or app name, with placement, screenshots and video, the legal name that paid, and which targeting was used.

Coverage
App Store ads in 25 EU countries, over the last 90 days, 180 days or year. Without a country, the search goes through the countries one page at a time, largest markets first.
Price
1 credit per ad. 1 credit per delivered ad. A live search page costs at most 5 credits, however many ads it returns. Ads last shown more than 12 months ago cost double. Empty, cached and failed results are free.
Status
Apple publishes no active flag. status is unknown; use last_shown and our last_seen_by_us.

Find ads by

  • Developer name (advertiser=…)
  • Developer id (advertiser=apple:{id})
  • App name (q=…)
  • Domain (domain=…): the brand name, matched to a developer
  • Ad id (GET /v1/ads/apple:{id})
  • Our archive (source=history)

Filters

  • country: one of the 25 countries
  • from / to: Apple offers the last 90 days, 180 days or year; AdLib picks the window that covers from
  • format: image or video, applied to each page, so pages can come back shorter

What you get for each ad

The same fields as every other platform, in one schema. What Apple App Store publishes is filled in; what it does not stays null.

Ad and advertiser

id
apple:<ad id>
advertiser.name, advertiser.id
The developer; the id is set on developer searches
first_shown, last_shown
First and last day shown
countries
The country of the ad record
extra.app_id, extra.app_name, extra.legal_name
The promoted app and the developer's legal name

Creative

creatives[].headline
The app name
creatives[].text
The app's subtitle
creatives[].landing_url
The app on apps.apple.com
formats
image or video
placements
app_store_search_results, app_store_search_tab, app_store_today_tab or app_store_product_page
extra.ad_format
Apple's own ad format

Only for ads shown in the EU

Published under the Digital Services Act; see EU reach.

  • eu_data.payer: the developer's legal name
  • eu_data.targeting.other.refinements_used: which targeting refinements were used (age, gender, location, customer_type)
  • Every ad in the repository was shown in the EU

What Apple App Store does not publish

  • Impressions, reach and spend: all null
  • The values of the targeting: only whether age, gender, location or customer type was used
  • An active flag: status is always unknown

Try it

App Store ads for the app Duolingo in Germany, with placement and screenshots.

Media: The ad's screenshots and video. Images are copied to media.adlibapi.com under stable URLs, and videos are archived for advertisers on a watchlist.

curl "https://api.adlibapi.com/v1/search?platform=apple&q=Duolingo&country=DE" \
  -H "X-API-Key: $ADLIB_API_KEY"

What to do with it

  • See where a competing app buys App Store placements: search results, Today tab or product pages.
  • Compare an app's App Store ads with its Google Play ads from platform=play.

Limits

  • Date ranges are Apple's presets: the last 90 days, 180 days or year.
  • library_url points to the repository's start page, not to the single ad.
  • Name and domain searches pick the best matching developer or app; use the developer id for an exact search.

Questions

Does Apple have an ad library for App Store ads?
Yes, the Ad Repository, for App Store ads shown in the EU. AdLib returns it through a REST API in the same schema as the other platforms.
Can I see impressions or spend for App Store ads?
No. The repository gives the ad, its placement, dates, the legal name that paid and which targeting refinements were used. Impressions, reach and spend stay null.
How do I see a competitor's App Store ads?
Search with platform=apple and the developer name, developer id or app name. Put the developer on a watchlist to get alerts on new ads.

Read more

Other platforms

Questions about Apple App Store data? [email protected]