Google Ads
Amplitude Academy
Integrate Google Ads to analyze your marketing data in Amplitude
Learn how to integrate Google Ads as a data source for analyzing marketing performance alongside product usage in Amplitude.
Get startedAmplitude's Google Ads integration lets you import your Google Ads spend, click, and impression data for analysis in Amplitude.
Prerequisites
To set up, you need the following:
- Google Ads Customer ID of the ad account you want to connect to.
- If you don't have direct access to the account, the Google Ads Manager ID that you authorized access on, which can view this ad account.
Considerations
- This source imports campaign level metrics from Google Ads. It doesn't import other types of data such as experiments or user level identifiers. Amplitude ingests metrics at the ad level and doesn't tie them to individual users.
- Amplitude imports Google Ads data once per day, always for the previous calendar day, using a batch ingestion process. The data appears in Amplitude as a dedicated event called
Daily Ad Metrics, which includes properties such asad_metrics.impressions,ad_metrics.clicks,ad_group_id, andcampaign_id. - The
Daily Ad Metricsevent also includes user properties such asutm_source,utm_medium,utm_campaign,utm_content, andutm_term. Campaign analysis often uses these fields and calculations like Customer Acquisition Cost (CAC) and Return on Ad Spend (ROAS). - Google Ads doesn't automatically populate UTM parameters. To ensure these fields appear in Amplitude, customers must manually add UTM parameters to their ad URLs using either tracking templates or the Final URL Suffix. Auto tagging, such as using gclid, doesn't populate UTM fields. Some campaign types such as Performance Max may not allow URL level control. This means UTM values may not consistently appear in those cases.
- To calculate CAC and ROAS correctly, UTM parameters must appear on both the Daily Ad Metrics event and on downstream conversion events such as Sign Up or Purchase. These metrics depend on shared fields, such as
utm_campaign, that link ad spend to user behavior. - Amplitude's Browser SDK v2 and other SDKs usually capture UTM parameters automatically at the beginning of a user session. However, if your setup uses server side tracking, custom routing, or a single page application, you may need to manually map UTM values as user properties to ensure consistency.
- If your project uses Schema enforcement, allow the
Daily Ad Metricsevent and its properties. Otherwise, ingestion may silently block the data. - Google Ads collects data at the ad level rather than the user level. As a result,
Daily Ad Metricsevents aren't associated with individual users and may appear as standalone events in user streams. These are best used for campaign level reporting, not for user level funnels or behavioral analysis. - You can't import data directly from a Google Ads Manager Account (MCC). While you can provide an MCC ID to authorize access to a specific Customer ID, Amplitude only imports data from the specified account and not from the MCC or other accounts linked to it.
- You can connect multiple Google Ads customer accounts (not MCCs) to a single Amplitude project. There's no limit on the number of ad accounts you can connect. Although all campaign data is grouped under the same
Daily Ad Metricsevent, thead_account_idproperty is available on new events as of May 9, 2025 and lets you filter and analyze performance by account.
Amplitude setup
In Amplitude, navigate to Data Sources, then find Google Ads in the I want to import data into Amplitude tab.
- Log in to Google and grant Amplitude permission in the consent form.
- Enter the Google Ads Customer ID for the ad account you want to import data from.
- If you don't have direct access to the account, enter the Manager ID that you authorized access on, which can view this ad account. Otherwise, leave the field blank.
- Optional. Import past data for a given period.
Analyze your data
After Amplitude imports your Google Ads data, you can analyze campaign performance using Amplitude's built-in Ad Performance dashboard. This dashboard is available under Marketing Analytics > Ad Performance and displays key metrics such as impressions, clicks, CTR, CPC, CAC, and ad spend. You can break down performance by UTM parameters including UTM Source, UTM Campaign, UTM Medium, UTM Content, and UTM Term. The metrics refresh daily and you can filter them by campaign or time period to help you track trends and optimize ad spend.
For a full list of available advertising metrics and how they work, refer to the Advertising metrics and properties reference.
Supported properties
| Property Name | Type | Description | Availability |
|---|---|---|---|
ad_metrics.clicks | Event Property | Number of clicks on the ad. | Always. |
ad_metrics.impressions | Event Property | Number of times the ad appeared. | Always. |
ad_metrics.conversions | Event Property | Number of conversions attributed to the ad. | Always. |
ad_metrics.cost | Event Property | Total cost associated with the ad. | Always. |
ad_name | Event Property | Name of the ad. | Varies by campaign type. |
ad_id | Event Property | Unique ID of the ad. | Varies. |
ad_group_name | Event Property | Name of the ad group. | Varies. |
ad_group_id | Event Property | Unique ID of the ad group. | Varies. |
campaign_name | Event Property | Name of the campaign. | Varies. |
campaign_id | Event Property | Unique ID of the campaign. | Varies. |
ad_account_id | Event Property | Unique identifier for the connected Google Ads account. | Available for new events only. |
utm_source | User Property | Source that referred the user. | Only if manually tagged. |
utm_medium | User Property | Advertising or marketing medium. | Only if manually tagged. |
utm_campaign | User Property | Campaign name from UTM tracking. | Only if manually tagged. |
utm_content | User Property | Ad content or variation from UTM tracking. | Only if manually tagged. |
utm_term | User Property | Search term or keyword from UTM tracking. | Only if manually tagged. |
add_account_idapplies to all newly ingested events as of May 9, 2025. It isn't added to already ingested data.- To view historical trends by account, create a new project and re-import data from the ad source using a backfill.
- Campaign-level properties like
campaign_idstill exist and are helpful for performance analysis, butad_account_idenables cross-account breakdowns within a single Amplitude project.
Troubleshooting
If you encounter issues with your implementation, keep the following in mind.
Insufficient permissions
Amplitude's Google Ads Import integration requires that your Google Ads Manager account has administrator privileges. This level of permission lets Amplitude add and remove users from specific user lists in Google Ads.
For more information, refer to About access levels in your Google Ads Account in Google's documentation.
Import job ingests no data
- Unplanned data: check if you reject unplanned events in your Schema settings. If you reject unplanned data, Amplitude doesn't store the event or its properties.
- Matching users: check if your users have corresponding accounts in Amplitude and Google Ads. Google Ads import tries to match users between platforms based on the key-value pairs you selected. If your import job doesn't find any corresponding values, it fails.
Daily ad metric discrepancies
Google Ads may update advertising metrics several days after the original interaction. This can happen for several reasons, including delayed conversion attribution or the removal of invalid traffic. For instance, a user may click on an ad today but complete a conversion a few days later, which Google then attributes retroactively. Google may later exclude clicks it detects as fraudulent or non-human, resulting in lower reported impressions or spend. These updates can affect key metrics such as conversions, cost, and impressions.
Amplitude imports Google Ads data once per day, and always for the previous calendar day. Because Amplitude schedules this import as a daily batch, the data isn't available in real time and you can't use it for hour-by-hour analysis. If Google revises campaign data after Amplitude's import has completed, those changes don't reflect automatically.
This behavior is important to consider when analyzing campaign performance, particularly when reviewing short-term trends, diagnosing anomalies, or comparing metrics across tools. Data that appears accurate at the time of import may shift days later because of these retrospective updates in Google Ads.
For more information, review About data freshness in Google's documentation.
Ad events don't map to Users
Google Ads doesn't export user-level identifiers such as device ID, email address, or user ID. As a result, Amplitude doesn't link Daily Ad Metrics events to real user profiles and doesn't associate them with known users across other product events.
While these events may appear in a user stream with a synthetic identifier (such as a Google Ads device ID), this doesn't mean successful identity resolution. Amplitude treats the events as standalone entries, and they aren't suitable for user-level reporting.
Daily Ad Metrics events are best used for campaign-level analysis. Don't use them in funnels, cohort definitions, or behavioral journeys that rely on user identity.
These events may appear as standalone events in user streams with only campaign-level context.
Was this helpful?