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're searching for something specific. But Apple only tells you about installs and estimated conversions. It doesn't 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'll see real CAC and real ROAS per keyword, per campaign, and per territory.
Prerequisites
| Requirement | Status | Setup link |
|---|---|---|
| Grometrics mobile SDK | Required | iOS SDK |
| RevenueCat connected | Required for revenue attribution | RevenueCat setup |
| Identity linking | Required for RevenueCat matching | Identity docs |
| Apple Search Ads account | Required | ads.apple.com |
| AdServices framework | Required in app binary | Apple docs |
Steps
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.
- Open your Xcode project.
- Select your app target -> General -> Frameworks, Libraries, and Embedded Content.
- Confirm AdServices.framework is listed, or add it if missing.
- No code changes are needed. The Grometrics SDK handles the attribution token request.
Automatic AdServices token capture currently applies only to the native iOS SDK. React Native and Flutter integrations need their own platform bridge before they can send Apple attribution data.
Connect Apple Search Ads in Grometrics
Open Settings -> Integrations, find Apple Search Ads under Ad Platforms, and start the connect flow.
- Copy the Grometrics public key into Apple Ads, then paste the Client ID, Team ID, and Key ID Apple gives you.
- Select your organization if you have multiple Apple Search Ads organizations.
- Choose the historical import range. New spend data syncs automatically once daily.
- Click Save & Sync.
Spend data starts importing immediately. Historical backfill completes within a few minutes depending on the selected date range.
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 the Apple Search Ads connector imports
| Data | Granularity | Why it matters |
|---|---|---|
| Campaign spend | Daily | Calculates CAC and ROAS against RevenueCat revenue |
| Keyword spend and performance | Daily | Shows which Apple Search Ads keywords create paying customers |
| Impressions, taps, installs | Daily | Separates install volume from paid-customer quality |
| Campaign structure: ad groups and keywords | On change | Keeps Campaigns and Attribution grouped like Apple Ads |
| Creative set performance | Daily | Compares creative performance against downstream revenue |
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.
Apple Search Ads revenue 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. The result is Apple Search Ads revenue attribution: not just which campaigns installed users, but which campaigns created trials, purchases, renewals, refunds, CAC, and ROAS.
| Step | What happens |
|---|---|
| 1 | User taps an Apple Search Ad for keyword [competitor-app]. |
| 2 | User installs the app from the App Store. |
| 3 | SDK captures the AdServices attribution token on first launch. |
| 4 | Backend resolves the token to campaign, ad group, and keyword. |
| 5 | User moves through onboarding, reaches paywall, and starts a trial. |
| 6 | RevenueCat fires TRIAL_STARTED, then INITIAL_PURCHASE. |
| 7 | Grometrics links the purchase back to the keyword via visitor identity. |
The result: [competitor-app] → $420 revenue, 8 sales, $17.75 CAC, 3.0x ROAS.
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
| Limit | What it means |
|---|---|
| Attribution window | Apple'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 limits | Users 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 keywords | Auto-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 lag | Spend 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.
| Question | Answer |
|---|---|
| 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?