Google Ads Reporting and Discrepancies


Google Ads Resources


Available Compare By Dimensions for SANs

Self-Attributing Networks (SANs) do not always support all of the dimensions available in your Branch analytics. Please refer to the following table when using Compare by dimensions.

FacebookGoogleApple Search AdsSnap
Ad PartnerSupportedSupportedSupportedSupported
Secondary PublisherSupportedSupportedUnsupportedUnsupported
Ad Set NameSupportedUnsupportedSupportedSupported
Ad NameSupportedUnsupportedUnsupportedSupported
Creative NameSupportedUnsupportedUnsupportedUnsupported
Last Touch TypeUnsupportedUnsupportedUnsupportedUnsupported
Link IDUnsupportedUnsupportedUnsupportedUnsupported

Enabling and Segmenting View-Through Conversions in Reporting

By default, Google Ads includes View-Through Conversion counts in a separate column in reporting. If you have impression windows enabled in Branch, we can also attribute VTC installs and events (when there is not a matching click from another partner). Those will be grouped into the install and event counts, and can be segmented using the 'last attributed touch type' compare by in Branch reporting. You can manage settings to enable this attribution within the attribution settings tab of the Google AdWords partner management.


Not Yet Supported

Viewing click/impression/cost data in your Branch dashboard is not yet supported for App Engagement campaigns.

Cost Data

Branch provides the following cost metrics for this ad partner:

Analytics TagDescriptionUsed for
CostTotal cost (spend) for those dimensions (analytics tags, user data, time range), regardless of cost modelUnderstanding the total amount spent
eCPIcost / installsNormalizing spend per install, to understand the average price of an install across networks or over time
eCPCcost / clicksNormalizing spend per click, to understand the average price of an click across networks or over time
eCPMcost / (impressions / 1000)Normalizing spend per thousand impressions, to understand the average price of 1000 impressions across networks or over time
eCPAcost / purchases [includes web and app purchases]Normalizing spend per purchase, to understand the average price of a purchase across networks or over time
Return On Investment (ROI)(revenue-cost / cost) * 100Deriving return on investment, to understand the percentage "profit" made on ad spend
Return On Ad Spend (ROAS)(revenue / cost) * 100Deriving return on investment by understanding the percentage revenue multiple for a given unit of spend


Cost Data Translation

All cost data is ingested in local currency and then translated to USD on the dashboard using the exchange rate for that currency on the day the data is stored. In effect, this means the dashboard shows the amount that campaign cost converted to USD at the time it ran.

Branch Cost data not matching the Ad Partner dashboard

Please ensure that you've selected the same time zone in your Ad Partner's dashboard and your Branch dashboard.

CPI metric doesn't match between Ad Partner and Branch, although cost metric does

Branch's last-click attribution model can lead to differences in install counts for Branch vs self-attributing networks (SANs) that in turn cause differences in CPI metrics. Verify whether your cost and install metrics match the Ad Partner's dashboard. If there is an install discrepancy, it is likely legitimate and due to differences in install counts, where Branch's number is more accurate. If the discrepancy is very large, investigate causes of install discrepancies through the usual troubleshooting steps.

Cost, click and impression data is all missing

Generally, reauthenticating a partner and waiting 24 hours will re-enable cost data.

When you reauthenticate, double check that you have selected the correct accounts. We will only pull cost data for accounts that you select as part of the authentication process.

Cost, click and impression data for SANs are generally sourced from Partner APIs (unless Branch impression pixels or links are being intentionally used for attribution, for example, in web campaigns). When you enable a SAN, you authenticate with your provider. Branch uses this authentication to retrieve click, cost and impression data. If the authentication token expires (for example, if you reset your password, or the partner force resets your token), then you may not see click, impression or cost data. In this case, simply reauthenticate and that will refresh your token.

Cost data is missing or incorrect for certain "compare by" breakdowns

Downstream events, such as installs, should always have the full range of compare by options in the dashboard. However, clicks, impressions and cost data for SAN are often imported via Partner APIs. These APIs do not necessarily provide the same breakdowns for cost data that Branch supports with raw install events, so there may be cases where the Branch Dashboard cannot compare by the same dimensions for cost data vs install data.

Click Reporting

Universal App Campaigns (UAC) - Limited Campaign Information

These campaign parameters are not supported by UAC and will not be available in reports:

Google parameterBranch parameter

Google Adwords Valuetrack Parameters

Branch utilizes Google's Valuetrack parameters to collect more detailed information on the source of an ad click. Furthermore, we dynamically map Adword's campaign id and network parameters to a Branch link's campaign analytics Campaign and Channel tags respectively. Leave these tags blank to have them dynamically mapped.

See below for a table of Valuetrack parameters collected by default through Branch's Ad links and refer to the table in Google's Valuetrack docs{:target="_blank"} for more parameters to append.

Default Valuetrack Parameters on Branch Ad linksWhat it returns
\{campaignid\}The ad's campaign ID
\{adgroupid\}The ad's ad group ID
\{keyword\}For the Search Network: the keyword from your account that matches the search query, unless you are using a Dynamic Search ad, which returns a blank value. For the Display Network: the keyword from your account that matches the content.
\{placement\}The content site where your ad was clicked (for keyword-targeted campaigns), or the matching placement targeting criteria for the site where your ad was clicked (for placement-targeted campaigns)
\{network\}Where the click came from: "g" for Google search, "s" for a search partner, or "d" for the Display Network
\{lpurl\}The final URL of the ad link clicked

Universal App Campaigns (UAC)

  • As links are not accepted into the Google Ads UAC UI, we will only report on clicks in aggregate (via Google's reporting API)
  • Individual UAC clicks will not appear in Branch's liveview dashboard, webhooks, or exports
  • 'Unique' UAC data cannot be viewed on the ads analytics dashboard (Non-UACs, like regular Search campaigns, will report on clicks in all Branch dashboards)
  • Reporting on UAC clicks is done every 3 hours
  • Branch only reports on clicks from an Google Ads campaign that led to an install or app engagement

My click data is missing or duplicated for my web campaign

A: Click data for web campaigns is available with full breakdowns, but there are specific requirements for setting up web campaigns. Please see the SAN Web Tracking guide for more information on setting up web campaigns.


My campaign is reporting a number of conversions much higher than the number of conversions shown in the conversion table in Google Ads

A: When viewing a campaign, it shows the sum of all conversion events that apply to it. To view by conversion, navigate to Segment > Conversions > Conversion name, in order to clearly see the breakdown of your campaign's conversions.

Google Ads Conversion SegmentGoogle Ads Conversion Segment

Post-install events are attributed to Google Ads in the Branch dashboard but are not appearing in Google Ads

A: Ensure that, in the Google Ads dashboard, you have imported all Branch events that you want to see in Google Ads.

I'm seeing a discrepancy between conversion counts in Branch and Google Ads

A: While we should always expect around a 5% discrepancy due to time zone differences and the like, if you are seeing significant discrepancies, it could be an indication of a broader problem.

The first thing to do is to make sure you have enabled the Use Ad Partner Attribution Windows setting for Google Ads. Go to Link Settings, and navigate down to the Attribution Windows section. Here, you should set the attribution window for click to install, click to session start, and click to conversion event to be 30, 90, and 90 days respectively. This aligns with Google's default attribution windows, but if you'd like to make them shorter, feel free.

Another source of discrepancies is the fact that attribution is based upon click time in Google Ads, whereas it is based upon conversion time in the Branch dashboard. This isn't a discrepancy per se, but will sometimes show different numbers in the two dashboards. This usually does not affect install numbers (because install usually happens same day as click) but will especially have impact on downstream events, where events can sometimes occur and be attributed up to 90 days after click.

Google will send attribution data for almost every app conversion that they count on their end, with the exception of iOS Search traffic within UAC, and they also do not currently confirm standalone (outside of UAC) YouTube TrueView conversions to Branch (TrueView conversion support is in development).

Finally, Google Ads can delay reporting up to 24 hours. It's best to measure campaigns in a trailing manner.

My UAC data looks misaligned when I compare by certain filters

A: Google installs should have the full range of compare by options in the dashboard. However, clicks, impressions and cost data for UAC are imported via the Google Ads Reporting API, as noted above. The Google Ads Reporting API does not necessarily provide the same breakdowns that Branch can create with raw install events, so there may be cases where the Branch Dashboard cannot compare by the same dimensions for clicks vs installs.

Updated 3 months ago

Google Ads Reporting and Discrepancies

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.