Overview
Google Ads is Google's advertising platform for running campaigns across Google Search, YouTube, Display, Shopping, Discovery, Performance Max, and App Campaigns. Branch's Google Ads integration tracks attribution for installs and post-install events, imports cost data, and supports SKAdNetwork (SKAN) for iOS.
Google is a self-attributing network (SAN), which means Google runs its own attribution and reports results back to Branch via API rather than receiving traditional postbacks from Branch.
For more information about integrating ad partners in general, visit our Ad Partner Integration Guide.
This guide covers Google Ads (formerly Google AdWords). If you're integrating Google Marketing Platform (Display & Video 360, Campaign Manager 360, or Search Ads 360), see the Google Marketing Platform guide instead.
Note: this guide is for new Branch
Please note that this guide is about integrating Google Ads in the new Branch experience. For information on Google Ads in legacy Branch, visit our legacy guide.
Partner capabilities
Capability | Details |
|---|---|
Company type | Self-attributing network (SAN) |
Deep linking | Supported, varies by campaign type: |
Attribution | Click-through attribution, View-through attribution (with SKAdNetwork on iOS) |
Ad campaign types | App Campaigns (installs and engagement), Search, Display, Discovery, Video, Shopping, Performance Max |
Supported platforms | iOS, Android, Web |
Cost ingestion support | Supported (via API) |
Pricing models | CPC, CPM, CPA |
Engagement Builder Ad Partner Integration |
Before you begin
To set up the Google Ads integration, you need:
Branch's Performance product enabled for your Branch account. Contact your Branch account manager or visit https://branch.io/pricing.
A Branch account with access to Configuration > Ad Partners and admin permissions to enable and configure integrations.
A Google Ads account with admin access.
Enable Google Ads
Setting up Google Ads in Branch requires three steps:
In Google Ads: Create a Link ID for each app and platform you want to track.
In Branch: Sign in to Google AdWords and paste the Link IDs into Account Settings.
(Optional) In Branch: Enable SAN API-Driven Deferred Deep Linking for App Campaigns.
Create Link IDs in Google Ads
In Google Ads, create a separate Link ID for each app and each platform you want to track with Branch. An app that runs on both iOS and Android needs two Link IDs — one for each platform.
Sign in to your Google Ads account.
Select Tools in the sidebar, then select Data manager.
Scroll to Popular products and select Third-party app analytics.
Select Create link ID.
In the App analytics provider dropdown, select Branch.
Select your mobile app's platform (iOS or Android).
Find and select your app.
Complete the link configuration.
Copy the Link ID. You'll need it later.
Repeat for additional apps or platforms.
Managing campaigns across multiple Google Ads accounts
If you run campaigns for the same app from multiple Google Ads accounts, you have three options:
Cross-account conversion tracking: Set up a Link ID at the MCC (manager account) level. Then in MCC > Settings > Sub-account settings > Google Ads Conversion account, set the sub-accounts' Conversion Account to This Manager. See Google's cross-account conversion tracking documentation for details.
Share a single Link ID: Share one Link ID with another Google Ads account. Only the account that owns the Link ID can share it.
Connect only the owning account: Connect just the account that owns the Link ID.
Connect Google Ads to Branch
In Branch, navigate to Configuration > Ad Partners > Google AdWords.
Select Connect with Google AdWords and sign in with Google.
Follow Connect with OAuth in the general Ad Partner Integration Guide for the full sign-in flow.
Select the Google Ads accounts you want to connect.
In Account Settings, paste your Link IDs into the AdWords Link ID section. Numbers and letters only (no spaces or other characters).
iOS Link ID: Paste the Link ID you created for your iOS app.
Android Link ID: Paste the Link ID you created for your Android app.
Select Save.
Important: Add every Google Ads account you want SKAN data for during sign-in. If you only add one account, you'll only receive SKAN data for that account.
Caution: reusing Google Ads accounts
Connecting the same Google Ads account to multiple Branch apps (for example, your Live and Test apps) causes authentication and reporting issues. Use a distinct Google Ads account per Branch app.
Enable SAN API-Driven Deferred Deep Linking (optional)
To enable SAN API-Driven Deferred Deep Linking for Google App Campaigns, toggle on the feature in Account Settings:
On the Google AdWords page, go to Account Settings.
Under SAN API-Driven Deferred Deep Linking, toggle Enable SAN API-Driven DDL to on.
When enabled, Branch leverages Google's APIs to retrieve deferred deep link data at install time so users who install your app from a Google App Campaign land on the right in-app content.
Campaign support
Google Ads supports several campaign types, each with different attribution mechanisms in Branch:
Campaign type | Conversion support | Attribution mechanism | Deep linking support |
|---|---|---|---|
App Campaigns for installs (ACi) | Installs and in-app events | Google Ads API | SAN API-Driven Deferred Deep Linking |
App Campaigns for engagement (ACe) | Opens and in-app events | Google Ads API | Universal Links, App Links, URI Scheme |
Display, Discovery, Video, Shopping | Opens and in-app events | Branch Ad Link or Google Ads API | Universal Links, App Links, URI Scheme |
Search | Opens and in-app events | Branch Ad Link or Google Ads API | Universal Links, App Links, URI Scheme |
Performance Max | Web events and in-app events | Branch Ad Link or Google Ads API | Universal Links, App Links, URI Scheme |
Branch Ad Links are required for web event attribution. Google Ads API attribution is always considered for app events, even when Branch Ad Links are used.
Caution: Final URL vs Tracking Template
Google's destination mismatch policy disapproves ads when the Final URL contains a redirect. Because Branch Links redirect users before routing them to the destination, place the Branch Link in the Tracking Template field instead. This enables parallel tracking and preserves attribution for web-based campaigns. See Google's destination requirements policy for the official guidance.
Google Ads campaign identifiers
Google Ads uses several identifiers for web-to-app attribution and attribution without device IDs. Branch ingests these identifiers and forwards them in Google Ads postbacks so Google can use them for campaign optimization.
Identifier | Definition | Operating system | Used for | Campaigns |
|---|---|---|---|---|
| An aggregate click URL parameter forwarded back to Google on conversion events for iOS 14.5+ users who haven't opted into app tracking. | iOS only | Re-engagements only | Search, Shopping, Performance Max, iOS ACi, Display, YouTube |
| A unique click URL parameter that identifies the campaign and other click attributes for ad tracking and campaign attribution. | iOS and Android | Re-engagements only | App Engagement via all Google Ads campaigns |
| A unique click URL parameter sourced from Google Play referrer at install time. Used for Android users opted out of ads personalization. | Android only | Installs only | App Install via all Google Ads campaigns |
Note: gBraid allowlist required for iOS
To use gBraid attribution on iOS, contact your Google Account Manager and request that your app be added to the gBraid allowlist. Make sure your app uses the latest Branch iOS SDK for gBraid handling.
Set up Branch Ad Links for web-based campaigns
Web-based campaigns (Display, Search, Discovery, Video, Shopping, Performance Max) use a Branch Ad Link in the campaign's Tracking Template to attribute clicks and deep link users into your app when installed. Before setting these up:
Enable Parallel Tracking in Google Ads.
Implement the Branch Web SDK to track web events. Google doesn't ingest web events from Branch — it only uses web events tracked through its own web trackers.
In Branch, create a Branch Ad Link with Google AdWords as the ad partner (see Branch Ad Links for the full creation flow). Use the table below to pick the right Branch Ad Link type, then paste the link's Click Tracking Link into your Google Ads campaign's Tracking Template field.
Google campaign type | Branch Ad Link type | Link placement |
|---|---|---|
Display, Discovery, Video, Shopping, Performance Max | Cross-Platform Display | Campaign or ad-level Tracking Template |
Search | Cross-Platform Search | Campaign or ad-level Tracking Template, or Final URL |
Important: If you place a Branch Ad Link in the Final URL of a Search ad, replace lpurl={lpurl} with %24fallback_url={lpurl} in your link to preserve the fallback URL routing.
For web-only campaigns (no app conversion tracking), add the ~campaign and ~campaign_id tags to your Branch Ad Link. See the SAN Web Tracking guide for additional setup details.
Configure attribution
To configure attribution windows, select the Attribution windows tab on the Google Ads page.
Note that windows that differ from Google's recommendations may cause discrepancies when comparing Branch and Google reporting.
Attribution type | Default | Google's recommendation |
|---|---|---|
Click to conversion event | 90 days | 90 days |
Click to install | 30 days | 30 days |
Click to start session | 90 days | 90 days |
Household measurement window | 2 days | — |
Impression to conversion event | 1 day | 1 day |
Impression to install | 1 day | 1 day |
Impression to start session | 1 day | 1 day |
Tip: view-through conversions
Google Ads reports View-Through Conversions (VTC) in a separate column by default. If you enable impression windows in Branch, Branch attributes VTC installs and events to Google Ads when there's no matching click from another partner. VTC-attributed activity is grouped into your install and event counts in Branch and can be segmented by Last attributed touch type.
Configure events
To configure event mappings, select the Event config tab on the Google Ads page.
Follow Configure events in the general Ad Partner Integration Guide for the event mapping flow. The full Branch-to-Google event name reference is in Data mappings below.
Regardless of campaign type, Branch forwards in-app events to Google Ads for campaign optimization and receives attribution data back for reporting in Branch.
Import events to Google Ads
After configuring event mappings in Branch, import your app conversion events into Google Ads so Google can use them for campaign optimization.
Caution: trigger events in your app before importing
For Google Ads to recognize newly created conversions, activate your app and trigger the relevant in-app actions at least once. New conversions take up to 6 hours to queue and process. Once queued, the conversion status shifts from "No recent conversion" to "Recording conversion."
Important: For first_open event conversions, enable the account default setting for your conversion goal so the conversion is tracked in your reporting. See Google's conversion goals documentation for the configuration steps.
Verify your data
After your integration is connected and events are flowing, you can verify data is reaching Google Ads and Branch:
In Branch Liveview: confirm that events from your app appear in real time. This is the fastest way to confirm SDK events are firing.
In Branch Analysis dashboards: review attributed installs, events, and cost data where
Ad Partner Name = Google AdWords.In Google Ads Conversion table: navigate to Segment > Conversions > Conversion name to see the breakdown of conversions for a campaign.
In Google Ads campaign reports: confirm that the events you imported in Branch appear in your campaign reporting.
Google privacy frameworks
SKAdNetwork
Google handles SKAN differently from most ad partners. Google does not forward individual SKAN postbacks to Branch. Instead, Google collects and validates postbacks internally and shares aggregate data with Branch through the Google Ads API.
Supported campaign types for SKAN data:
Google campaign type | SKAN data shared with Branch |
|---|---|
App Campaigns (for installs) | ✅ |
App Campaigns for engagement | ❌ |
All other campaign types | ❌ |
Data dimensions available via the Google Ads API:
Parameter | Shared by Google |
|---|---|
Download/Install | ✅ |
Reinstall | ✅ |
Conversion Value | ✅ |
Campaign Name | ✅ |
Campaign ID | ✅ |
SKAdNetwork Campaign ID | ❌ |
Postback Sequence Index (SKAN 4.0+) | ✅ |
Coarse Conversion Value (SKAN 4.0+) | ✅ |
Unlike some other SANs, Google does not require you to paste a conversion value schema URL into Google Ads. Branch's SKAN setup for Google is fully handled by the OAuth connection.
To see Google Ad’s SKAN data in the new Branch experience, use the SKAN or Unified + SKAN data source for Analysis dashboards and set Ad Partner Name = Google AdWords.
Data mappings
Campaign data
Note: advertising partner name value
The
~advertising_partner_namefield populates as Google AdWords for Google Ads traffic. UseAd Partner Name = Google AdWordswhen filtering in Branch dashboards or exports.
Branch field | Google field | Definition | Possible values |
|---|---|---|---|
| — | Branch's internal identifier for the ad partner. |
|
|
| Numeric ID of the campaign that produced the ad event. Guaranteed unique. | Google Ads campaign ID |
|
| Advertiser-defined campaign name. Not guaranteed unique. | Google Ads campaign name |
|
| Type of ad that produced the event. Used to distinguish between inventory types. |
|
|
| Google Ads advertising network where the event occurred. |
|
|
| User's country code. | Two-letter country code |
|
| Subtype of the Google Ads advertising network. Possible values vary by primary network type. |
|
|
| Type of campaign that produced the event. |
|
|
| Advertiser-defined ad group name. | Google Ads ad group name |
|
| Numeric ID of the ad group. | Google Ads ad group ID |
|
| Numeric ID of the creative ad unit. Only provided when | Google Ads creative ID |
|
| Search keyword associated with the event. Only provided when | Google Ads keyword |
Event names
Branch event | Google event |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Custom |
|
Event metadata
Branch SDK field | Google Ads field | Description |
|---|---|---|
|
| ID of the item referenced in an app event. Represented as the SKU (for example, |
|
| Date when the event started, in |
|
| Date when the event ended, in |
|
| Vertical ID from Google's list of verticals used for targeting or excluding placement categories. |
|
| Location associated with the event. Use the Google Place ID for the associated item (for example, |
|
| Origin of the feed. Values: |
|
| The term searched for (for example, |
|
| Three-character ISO 4217 currency code (for example, |
|
| Monetary value of the conversion event, in float format. |
Valuetrack parameters for Branch Ad Links
Branch automatically captures Google Ads Valuetrack parameters on Branch Ad Links and maps Google's campaignid and network parameters to Branch's Campaign and Channel tags. Leave those Branch tags blank to enable dynamic mapping.
Valuetrack parameter | Returns |
|---|---|
| The ad's campaign ID. |
| The ad's ad group ID. |
| The matching keyword for Search Network, or the matching content for Display Network. Returns blank for Dynamic Search ads. |
| The content site or matching placement criteria where the ad was clicked. |
| Where the click came from: |
| The Final URL of the ad link clicked. |
See Google's Valuetrack reference for additional parameters you can append.
Data limitations
Be aware of the following Google-specific data behaviors in Branch:
iOS Search and YouTube installs not reported: As of July 2019, Google stopped sending iOS install attributions from Search inventory and YouTube inventory to any MMP, including Branch. You can still view these attributions in Google Ads, but they won't appear in Branch reports.
UAC clicks aggregated only: For App Campaigns (UAC), Branch reports clicks in aggregate via Google's reporting API. Individual UAC clicks don't appear in Branch Liveview, webhooks, or exports. Reporting on UAC clicks updates every 3 hours.
UAC compare-by limitations: Some Branch dashboard dimensions (Ad Name, Creative Name, Keyword, Link ID, Tags) aren't available for UAC campaigns because Google's reporting API doesn't supply them. Non-UAC campaigns like Search support the full set.
Conversion date mismatch: Google reports conversions by click date; Branch reports by conversion date. For events that occur days after the click, Google and Branch totals for the same day can diverge by design.
24-hour Google reporting delay: Google Ads can delay reporting by up to 24 hours. Measure campaigns in a trailing manner.
60-day purge: Branch purges last-attributed Google Ads data after 60 days.
Troubleshooting
Branch and Google numbers don't match
Some discrepancy is expected — typically around 5% from time zone differences and attribution window timing. Larger gaps usually point to one of these:
Attribution window mismatch: Make sure your Branch attribution windows align with what you've configured in Google Ads.
Click date vs. conversion date: Google attributes by click date; Branch by conversion date. For events that occur days after the click, daily totals will differ even though cumulative totals match over time.
Missing imported events: In Google Ads, confirm you've imported every Branch event you want to see in Google reporting.
Reporting delay: Google can delay reporting up to 24 hours. Compare trailing periods, not real-time.
See Common sources of SAN reporting discrepancies for the full list.
Google Ads are getting disapproved for destination mismatch
Google's destination mismatch policy disapproves ads when the Final URL redirects. Branch Links redirect users on the way to the destination, so they fail Google's check when used in the Final URL field.
Move the Branch Link to the Tracking Template field instead. Parallel tracking is supported there, and attribution for web-based campaigns continues to work. See Google's destination requirements for the policy details.
Video or Cross-Platform ad is disapproved
For Video campaigns, ads can be disapproved if the Branch Link doesn't redirect to Google Play or the App Store when clicked on desktop. Confirm that Deepviews are disabled on the Branch Link and that desktop redirects point to the App Store or Play Store.
For Cross-Platform campaigns, ads can be disapproved if the Branch Link doesn't redirect to the Final destination URL specified in the ad. Confirm that the Branch Link redirects to the Final URL specified in your ad. To preserve install tracking, also confirm that Deepviews are disabled and that iOS and Android redirects point to the App Store and Play Store respectively.
No Ad Set Name or Ad Name in Branch reports for UAC campaigns
Google Ads doesn't pass Ad Set Name or Ad Name to MMPs for App Campaigns (UAC). Only Ad Group ID is available for non-UAC campaigns on conversions. This is a Google data limitation, not a Branch configuration issue.
For traffic flowing through Branch Links rather than the SAN connector (some Search traffic, for example), you can use ~ad_set_name directly on the Branch Link to populate this value.
SKAN data in Branch looks delayed
Google's SKAN reporting uses the Google ad interaction date (the click date) rather than the Branch ingestion date. This produces a delay similar to cost data on traditional SAN install campaigns. Allow 24–48 hours after implementation before troubleshooting further.
Missing conversions in Google Ads
If conversions are flowing in Branch but not appearing in Google Ads, confirm that all the Branch events you want to track are imported in Google Ads. See Google's event import documentation for the import steps in the Google Ads UI.
If you're missing iOS conversions specifically, check whether the missing traffic came from Search or YouTube inventory. Google doesn't report iOS installs from those sources to any MMP.
Additional resources
For more on Google Ads and Branch, see the Google Ads FAQ and Google Ads discrepancies guides.