Apple Search Ads

Connect Apple Search Ads to import spend data, keyword performance, and campaign structure. Combined with RevenueCat, this gives you keyword-level revenue attribution: real ROAS per keyword, not Apple's install estimates.

Last updated June 2026

Overview

Apple Search Ads drives installs from App Store search results. Users are high-intent: they are searching for something specific. But Apple only tells you about installs and estimated conversions. It does not know which installs turned into paying customers.

Grometrics bridges that gap. Connect Apple Search Ads and RevenueCat, and every purchase is traced back through the onboarding funnel to the keyword that drove the install. You will see real CAC and real ROAS per keyword, per campaign, and per territory. Use the keyword attribution guide when you are ready to interpret the numbers.

Prerequisites

RequirementStatusSetup link
Grometrics mobile SDKRequirediOS SDK
RevenueCat connectedRequired for revenue attributionRevenueCat setup
Identity linkingRequired for RevenueCat matchingIdentity docs
Apple Search Ads accountRequiredads.apple.com
AdServices frameworkRequired in app binaryApple docs

Setup links: iOS SDK, RevenueCat setup, and Identity docs.

Steps

1

Enable AdServices in your app

The Grometrics iOS SDK automatically calls the Apple Ads Attribution API on first launch if the AdServices framework is linked. Confirm it is included in your Xcode project.

  1. Open your Xcode project.
  2. Select your app target -> General -> Frameworks, Libraries, and Embedded Content.
  3. Confirm AdServices.framework is listed, or add it if missing.
  4. No code changes are needed. The Grometrics SDK handles the attribution token request.

If you are using React Native or Flutter, the Grometrics SDK wrapper handles this automatically on iOS builds.

2

Connect Apple Search Ads in Grometrics

Open Settings -> Integrations, find Apple Search Ads under Ad Platforms, and start the connect flow.

  1. Authorize read-only access via Apple's OAuth flow.
  2. Select your organization if you have multiple Apple Search Ads organizations.
  3. Choose sync frequency and historical import range.
  4. Click Save & Sync.

Spend data starts importing immediately. Historical backfill completes within a few minutes depending on the selected date range.

3

Verify the connection

After connecting, check that the Settings -> Integrations card shows connected status, Attribution shows Apple Search Ads as a paid source with spend, CAC, and ROAS, and Campaigns shows auto-imported Apple Search Ads campaigns with synced spend.

If attribution data is not appearing for individual installs, confirm that AdServices.framework is linked and the current Grometrics SDK is installed.

What gets imported

DataGranularityUpdate frequency
Campaign spendDailyEvery sync, 6h default
Keyword spend and performanceDailyEvery sync
Impressions, taps, installsDailyEvery sync
Campaign structure: ad groups and keywordsOn changeEvery sync
Creative set performanceDailyEvery sync

Data lag

Apple Search Ads reporting data is typically 24-48 hours behind. Today's spend may not appear until tomorrow or the day after. Revenue from RevenueCat is real-time, so you may see revenue attributed to Apple Search Ads before the corresponding spend data arrives.

Keyword attribution

When both Apple Search Ads and RevenueCat are connected, Grometrics attributes revenue to specific keywords and connects acquisition to the install-to-trial funnel.

StepWhat happens
1User taps an Apple Search Ad for keyword [competitor-app].
2User installs the app from the App Store.
3SDK captures the AdServices attribution token on first launch.
4Backend resolves the token to campaign, ad group, and keyword.
5User moves through onboarding, reaches paywall, and starts a trial.
6RevenueCat fires TRIAL_STARTED, then INITIAL_PURCHASE.
7Grometrics links the purchase back to the keyword via visitor identity.

The result: [competitor-app] -> $420 revenue, 8 sales, $17.75 CAC, 3.0x ROAS.

What happens next

Use the install-to-trial funnel to diagnose the path from first app open to trial start. Install-to-trial funnel

Territory-level reporting

Most Apple Search Ads users split campaigns by territory tier: Tier 1 for US, Tier 2 for UK/CA/JP, and Tier 3 for ROW. Grometrics preserves the storefront country from the Apple API and groups campaigns accordingly. Filter Campaigns or Attribution by territory to compare ROAS across tiers.

Limitations

LimitWhat it means
Attribution windowApple's AdServices token is only available on first launch within 24 hours of the ad tap. If the user does not open the app within 24 hours, keyword-level attribution falls back to campaign-level only.
LAT and consent limitsUsers with Limit Ad Tracking enabled on older iOS versions, or users who deny ATT consent, may not return keyword-level attribution. Grometrics can still capture campaign-level Apple Search Ads installs.
Search Match keywordsAuto-discovered keywords from Search Match campaigns are imported but attributed as the campaign's Search Match ad group. Apple does not expose the actual search query for Search Match taps.
Spend data lagSpend is delayed 24-48 hours. Revenue appears in real time, so ROAS may shift as spend data catches up.

FAQ

For competitor keyword analysis, open Campaigns → Keyword Performance after the sync finishes.

QuestionAnswer
Can I see which competitor keywords drive the most revenue?Yes. Campaigns → Keyword Performance shows every keyword with spend, revenue, ROAS, and CAC. Sort by revenue or ROAS to find your best-performing competitor terms.
How is this different from Apple's campaign reporting?Apple tells you installs and estimated CPA. Grometrics tells you actual paying customers and real CAC because it connects to RevenueCat, not Apple's conversion model.
Do I need RevenueCat for this to work?Spend import works without RevenueCat. Keyword-level revenue attribution requires RevenueCat or another connected payment provider so Grometrics knows which installs became paying customers.
What about Apple Search Ads Basic vs Advanced?Grometrics supports Apple Search Ads Advanced, the API-based version with keyword-level control. Apple Search Ads Basic does not expose an API, so spend data must be entered manually via Campaigns.

Was this page helpful?