Documentation

Apple Search Ads

Attribute iOS installs to the Apple Search Ads ad group, keyword, and country that produced them. Attribution itself runs through the SDK with no app code changes; the API connection adds live spend, taps, and impressions to the dashboard.

Requirements

  • The AppSprint SDK installed in your iOS, React Native, Flutter, or Expo app. The SDK collects the AdServices attribution token automatically.
  • An Apple Search Ads account with an API role that can read reporting data. API Account Manager is recommended for setup.
  • Your App Store ID (the numeric ID at the end of your App Store URL).
  • Users on iOS 14.3 or later. AdServices attribution is unavailable on older iOS versions.
Available metrics and definitions
MetricDefinition
SpendApple Search Ads spend over the selected window.
InstallsInstalls Apple reports over the selected window.
CPICost per install. Spend divided by Apple-reported installs.
ImpressionsTimes the ad was shown, reported by Apple.
TapsAd taps, reported by Apple.
TTRTap-through rate. Taps divided by impressions.
CRConversion rate. Installs divided by taps.
ROASReturn on ad spend. Attributed revenue divided by spend.
RevenueRevenue from in-app events attributed to this Apple Search Ads row.
Attribution data attached to each install

Every install AppSprint attributes to Apple Search Ads carries these fields, resolved from the AdServices attribution token. Human-readable ad group and keyword names aren't included in Apple's AdServices response. Raw install attribution keeps stable Apple IDs; reporting views can enrich names from Apple's reporting API when available.

FieldDescription
orgIdCampaign Group that owns the attribution record.
campaignIdApple Search Ads record that produced the install.
adGroupIdAd group within that Apple Search Ads record.
adIdAd assignment ID, when Apple includes ad-level attribution.
keywordIdKeyword that triggered the ad. Apple returns the numeric ID; Search Match installs may not include one.
countryOrRegionUser's country or region as reported by Apple.
conversionTypeWhether the install was a fresh download or a redownload.
claimTypeWhether Apple attributed the install to a tap or view.
clickDateTap-through timestamp when Apple includes one.
impressionDateView-through timestamp when Apple includes one.
supplyPlacementApple Ads supply placement for the attributed interaction.

Open the connection form in AppSprint

In AppSprint, open your app and go to Integrations → Apple Search Ads. Click Set up. AppSprint displays a public key. Keep this tab open — you'll paste the key into Apple in the next step.

Generate the API certificate in Apple Search Ads

The three IDs come from one certificate

Client ID, Team ID, and Key ID are all issued by the same Apple Search Ads API certificate. Regenerating the certificate rotates all three.
  1. In Apple Search Ads, go to Settings → API and click Create API Certificate.
  2. Paste the public key from the AppSprint dashboard and confirm.
  3. Apple displays three values. Copy each one: Client ID, Team ID, and Key ID.

You don't need to copy a Campaign Group ID. AppSprint discovers every Campaign Group the certificate can see, and your App Store ID narrows the results back to this app.

Finish the connection in AppSprint

  1. Paste the Client ID, Team ID, and Key ID into the AppSprint form.
  2. Enter your App Store ID (the numeric ID at the end of your App Store URL).
  3. Save. AppSprint validates the credentials against Apple immediately by listing the Campaign Groups the certificate can see. Errors point at the value to re-check.

Attribution works without app code

The iOS, React Native, Flutter, and Expo SDKs collect Apple's AdServices token automatically when you call configure(). No extra code required.

Troubleshooting

ProblemWhat to try
Connection rejectedApple's response usually points at one of the three IDs. Re-open the Search Ads UI, copy each value (Client ID, Team ID, Key ID) again, and confirm the API certificate hasn't been rotated.
Dashboard can't load data from AppleMost causes are transient. Apple rate-limits and occasionally returns 5xx errors. Refresh in a few seconds. If it keeps failing, re-run the connect form to refresh access.
Missing App Store ID bannerA Campaign Group can hold several apps. AppSprint uses the App Store ID to scope the list. Open the connection form and paste the numeric ID from your App Store URL.
An install came back as organicEither Apple didn't find a matching ad interaction in its window, the device is on iOS older than 14.3, or no valid AdServices token reached AppSprint within Apple's 24-hour token TTL.