Search specific term/phrase surrounded by double quotes. e.g. “deep linking”
Exclude records that contain a specific term prefixed with a minus. e.g. Android -Firebase

Enable Apple Search Ads

Integrate Branch in your Apple Search Ads campaigns to enable robust attribution.


In order to enable Apple Search Ads, you need to have completed the following:

  1. Created a Branch Dashboard.
  2. Enabled Universal Ads for your Branch account.
    1. Contact your Branch account manager or visit
  3. Have a mobile developer prepared to implement the Apple Search Ads token.
  4. Admin access to your Apple Search Ads account.

Enable Apple Search Ads

1. Configure Token

You have to choose one of the following options for retrieving the Apple Search Ads Token to get started with enabling Apple Search Ads with Branch:

  • via SDK
  • via Server-to-Server (S2S)



For either methods, be sure to import the AdServices Framework to leverage the Apple Search Ads Attribution API.

Configure Token via SDK

Implement the latest version of the Branch iOS SDK.

The Branch SDK will automatically retrieve a token on your behalf. Branch servers will use that token to call the Apple Search Ads Attribution API.

Configure Token via Server-to-Server

For S2S integrations, you will need to retrieve the new token and send it to Branch on the install as apple_attribution_token. This is necessary only if you are integrating Branch through an S2S connection.

  1. Import AdServices.framework
  2. Request attribution token. This should be available from Apple within 50ms.
    func appleAttributionToken() -> String? {
            if #available(iOS 14.3, *) {
                return try? AAAttribution.attributionToken()
            return nil
    + (NSString *)appleAttributionToken {
    #if !TARGET_OS_TV
        if (@available(iOS 14.3, *)) {
            NSError *error;
            NSString *appleAttributionToken = [AAAttribution attributionTokenWithError:&error];
            if (!error) {
                return appleAttributionToken;
        return nil;
  3. The token has a 24-hour time-to-live, so send it to Branch within that time to use it for attribution.

2. Connect Apple Search Ads in Branch

In the Branch Dashboard under Ads > Partner Management, find/search for Apple Search Ads. If you're already logged into the Branch Dashboard, you can also click here to go there directly.

Click the Sign in With Apple button to complete the authentication. You'll also be able to select your organization here.

Click the Save & Enable button after authentication.

Afterward, you should see a successful integration status:

3. Configure Attribution Windows

After authenticating your Apple Search Ads account with Branch, navigate to the Attribution Windows tab to set windows by attribution type.

You have full freedom to choose your attribution windows; however, it may cause discrepancies between the Branch and Apple Search Adswhen comparing.

Apple's Recommended Attribution Windows:

Attribution TypeWindow
click to session start1 day
click to install7 days
click to conversion event30 days

4. Launch Apple Search Ads Campaigns

You've now completed the setup steps! Now you can start running campaigns to see data flowing into Branch.


Agency-Managed Campaigns

5. Verify Data in Branch

You can go to the Ads Analytics page to view your Apple Search Ads performance in the Branch Dashboard.

All performance registered from Apple Search Ads will automatically be tagged with the Channel: Apple App Store and the Ad Partner: Apple Search Ads. The campaign will be set to the Campaign Name you've configured in the Apple Search Ads dashboard.


More on Reporting and Analytics

For more details on Apple Search Ads reporting and analytics, view our guide here.

Advanced & Troubleshooting

Install discrepancies when compared with Apple Search Ads dashboard

There are a few possible causes of discrepancies with Apple Search Ads. Due to the low customizability of Apple Search Ads' attribution settings, discrepancies are often higher on Apple Search Ads than other platforms, even though performance may be solid and reporting may be working as expected. The best way to attempt reconciliation with ASA installs and Branch is to look at 'New Download' counts, but subtract the percentage of LAT on users found by grouping LAT on/off in reporting. This will give an estimate of new downloads with LAT off, while Branch reports first opens from those downloads.

  • Time zones - Ensure your Apple Search Ads time zone (in Settings > Overview > Account Information ) matches your Branch Dashboard time zone (visible under Account Settings).
  • Limit Ad Tracking (LAT) On - Apple Search Ads doesn't report installs to third parties if the user has Limit Ad Tracking. However, the Apple Search Ads dashboard shows all installs by default, regardless of limit ad tracking state. If the newer framework is properly set up, attribution will still be provided for LAT-on or ATT opted-out users and this will not be a source of discrepancy, but if the new framework is not set up properly this may still cause a difference in numbers.
  • Attribution Windows - Apple Search Ads attributes all installs within 30 days of an Apple Search Ads click to itself. Branch's default click to install attribution window is 7 days. You can modify Branch's click to install window. You can modify your Apple Search Ads attribution windows in Branch.
  • Last-click attribution - Apple Search Ads attributes all installs within 30 days of an Apple Search Ads click to itself. Branch will attribute to the last click within its attribution windows, which can often be a different source than Apple Search Ads.
  • Reinstalls - Apple Search Ads' dashboard shows reinstalls as conversions in its default view, but Branch calls these installs "REINSTALLS." In the Apple dashboard, select New Downloads or Redownloads in the column selector to align data.
  • Attribution API timeouts or delays - Apple Search Ads Attribution API can be slow to respond. Although customers can edit the timeout, the default Branch timeout in the code above is just over 1 second. If Apple Search Ads responds after this timeout, Branch will not attribute the install to Apple Search Ads.
  • Opens vs. installs - Branch considers the first open to be the install. Apple Search Ads considers the time that the user downloaded the app to be an install. This can cause discrepancies in counts and date of install.

Adding deep linking to Apple Search Ads

Since this integration doesn't utilize Branch Links, options for deep linking are limited. We'll pass back the value you use for campaign in the Apple Search Ads dashboard. Since this value is controlled by you, you can put anything there, but it will reflect on the Branch dashboard. We will track installs regularly.

You can retrieve this parameter in the app to be used for deep linking.

Installs or conversion events appearing without keywords in Branch Dashboard

There are Keyword and Search Match match sources for Apple Search Ads. The Search Match feature automatically matches your ad to relevant user searches on the App Store, rather than a rubric of preassigned keywords. Installs attributed to Search Matches do not have keywords associated with them. Search Match can be enabled & disabled at the Ad Group level in the Apple Search Ads dashboard.

Using TestFlight app or Developer App

If you are using the new ASA framework and are debugging or testing your app using the TestFlight app or developer app, Apple Search Ads returns dummy values of test campaign data with Campaign ID as 1234567890 which will be visible in the Branch Dashboard. Please ensure to filter it out when looking at your ASA attributed campaign data in the Dashboard.


If you ever need to restart your integration with Apple Search Ads, you must do so by clicking the Reset Settings cog button in the Apple Search Ads settings in the Branch Dashboard. Clicking the Disable button at the bottom will not reset your integration.

Apple Search Ads Re-Authenticate