Google Ads (v2)
Last updated: 9/15/2026This integration is powered by Singer's Google Ads tap and certified by Stitch. Check out and contribute to the repo on GitHub.
For support, contact Support.
Google Ads integration summary
Stitch’s Google Ads integration replicates data using the Google Ads API (v24). Refer to the Schema section for a list of objects available for replication.
This integration replaces the Google Ads (Adwords) integration.
Note: To use the Ads API, an Ads account must be connected to a manager account.
Google Ads feature snapshot
A high-level look at Stitch's Google Ads (v2) integration, including release status, useful links, and the features supported in Stitch.
| STITCH | |||
| Release status |
Released on August 2, 2025 |
Supported by
|
|
|
Stitch plan
|
Standard |
API availability
|
Available
|
| Singer GitHub repository | |||
| REPLICATION SETTINGS | |||
|
Anchor Scheduling
|
Supported
|
Advanced Scheduling
|
Supported
|
|
Table-level reset
|
Unsupported
|
Configurable Replication Methods
|
Unsupported
|
| DATA SELECTION | |||
|
Table selection
|
Supported
|
Column selection
|
Supported
|
|
Select all
|
Unsupported
|
||
| TRANSPARENCY | |||
|
Extraction Logs
|
Supported
|
Loading Reports
|
Supported
|
Connecting Google Ads
Google Ads setup requirements
To set up Google Ads in Stitch, you need:
-
To pause any ad-blocking software. Ad blockers can interfere with pop-ups, which are used in Google authorization and may prevent authorization from successfully completing.
-
Access to the Google Ads data you want to replicate. Before beginning, verify that the user creating the integration has access to the reports you want to replicate.
-
To connect your Ads account to a manager account. This will ensure your account has access to the Ads API, thereby allowing Stitch to query for and extract data.
An manager account is an Ads account type that enables you to manage several Ads accounts under a single login. Think of manager accounts as trees: they can branch out to individual accounts or even other manager accounts. Read more about manager accounts here.
By default, regular advertiser accounts - that is, individual Ads accounts - don’t have access to the Ads API. To gain access, they must be linked to an manager account. If you don’t have an manager account, create one using these instructions and then link it to your Ads account by following these steps.
Step 1: Add Google Ads as a Stitch data source
- Sign into your Stitch account.
-
On the Stitch Dashboard page, click the Add Integration button.
-
Click the Google Ads icon.
-
Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.
For example, the name “Stitch Google Ads” would create a schema called
stitch_google_adsin the destination. Note: Schema names cannot be changed after you save the integration.
Step 2: Define the conversion window
The conversion window is the period of time after a customer clicks an ad that a conversion (ex: a purchase) is recorded in Google Ads.
You can configure the number of days in this window using in the Conversion Window field. The value can be any number between 1 and 30, 60 or 90. For more information about conversion windows, refer to the Google Ads documentation.
If you don’t enter a value, the conversion window is set to 30 days by default.
Step 3: Define the historical replication start date
The Sync Historical Data setting defines the starting date for your Google Ads integration. This means that data equal to or newer than this date will be replicated to your data warehouse.
Change this setting if you want to replicate data beyond Google Ads’s default setting of 30 days. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.
Step 4: Create a replication schedule
In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.
Google Ads integrations support the following replication scheduling methods:
-
Advanced Scheduling using Cron (Advanced or Premium plans only)
To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.
Step 5: Authorize Stitch & Select Google Ads Profiles
- Next, you’ll be prompted to log into your Google account and to approve Stitch’s access to your Google Ads data. Note: We will only ever read your data.
- Click Authorize to continue.
-
After your credentials are validated, you’ll be prompted to select the Google Ads profile(s) you want to connect to Stitch.
If you don’t see the profile(s) you want to connect, verify that you have completed the setup requirements.
-
When selecting profiles, keep the following in mind:
- You cannot select more than 1000 profiles per Google Ads integration. Selecting a large number of profiles can reduce performance, so it is recommended to select fewer profiles if possible. You can select more profiles by adding additional Google Ads integrations in your Stitch account.
- Selecting a subprofile will also select the parent, or top-level profile. If you de-select the top-level profile, you will be unable to select any subprofiles.
- If multiple profiles are selected, data for all the selected profiles will map to the same table in your destination. For example: If two profiles are selected and the
accountstable is tracked, account data for both profiles will be replicated into theaccountstable. This is applicable to every table selected in the next step. To distinguish different profiles, make sure to select thecustomer_idfield in your tables.
- When finished selecting profiles, click Continue.
Step 6: Set objects to replicate
Column selection and Google compatibility rules
Because of Google’s compatibility rules, some columns (metrics and segments) can’t be tracked together. As you select columns to track, incompatible fields will automatically be greyed out.
You can create additional Google Ads integrations if you need to track incompatible columns. The resulting table names will still be the same (ex: account_performance_report) but the data will reside in different schemas in your data warehouse.
Initial and historical replication jobs
After you finish setting up Google Ads, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.
For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.
Initial replication jobs with Anchor Scheduling
If using Anchor Scheduling, an initial replication job may not kick off immediately. This depends on the selected Replication Frequency and Anchor Time. Refer to the Anchor Scheduling documentation for more information.
Free historical data loads
The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.
Google Ads replication
There are two types of tables in Stitch’s Google Ads integration: Core Object and Report.
- Core Object tables contain foundational data that’s useful for analysis. These are the following tables:
accountsad_groupsadscampaignsaccessible_bidding_strategiesbidding_strategiescampaign_budgetscall_detailsad_group_criterioncampaign_criterioncampaign_labelscarrier_constantfeedfeed_itemlabelslanguage_constantmobile_app_category_constantmobile_device_constantoperating_system_verison_constanttopic_constantuser_interestuser_list
These tables are replicated using Full Table Replication.
- Report tables are the various Google Ads reports. The replication process for these tables is a bit unlike that of other tables:
- Extraction: Data is extracted using a Conversion Window. A Conversion Window is a period of time after a customer clicks an ad that a conversion (ex: a purchase) is recorded in Google Ads.
The Conversion Window can be configured when creating the integration and can be edited in the integration settings at any time.
- Loading: Data is loaded into your data warehouse using Upsert Replication.
Each part of the replication process for Report tables is explained below.
Report tables: Data extraction and conversion windows
For historical and full re-replications of Google Ads data, Stitch will query for and extract data newer than or equal to the date defined in the Start Date field in the Integration Settings page.
The Start Date, in conjunction with the Conversion Window, defines the minimum date Stitch should query for when extracting historical data. This is calculated as:
Start Date - Conversion Window = Minimum Extraction Date
Example
During the initial set up, the Start Date field is set to July 3, 2017, or 2017-07-03 00:00:00.
To account for the Conversion Window, Stitch would calculate the Minimum Extraction Date value as: 2017-07-03 00:00:00 - 30 days = 2017-06-03 00:00:00
If you were to write a SQL query using this date for the ad_performance_report table, it might look like this:
SELECT *
FROM google_ads.ad_performance_report
WHERE date >= '2017-06-03 00:00:00' /* Min. Extraction Date */
ORDER BY date
For ongoing replication jobs, Stitch will query for and extract data using the last saved maximum value in the table’s Replication Key column and the Conversion Window for the table.
Note: This applies to every replication job that takes place after the historical replication job.
Example
The last maximum saved Replication Key value for the ad_performance_report table is 2017-10-01 00:00:00.
To account for the Conversion Window of 30 days, we’d subtract this from the last maximum saved Replication Key value:
2017-10-01 00:00:00 - 30 days = 2017-09-01 00:00:00
In this case, Stitch would query for and extract data that is newer than or equal to 2017-09-01 00:00:00 and older than or equal to 2017-10-01 00:00:00.
If this were a SQL query, it might look like this:
SELECT *
FROM ad_performance_report
WHERE date >= '2017-09-01 00:00:00'
/* max Replication Key value - Conversion Window */
AND date <= '2017-10-01 00:00:00'
/* max Replication Key value from previous job */
ORDER BY date
Report tables: Edit report segments and attributes
In report tables, a Primary Key _sdc_record_hash is built using the segments and attributes selected when creating the report.
Modifying segments and attributes after the report is created and data has already been replicated may cause data quality issues. To avoid this, it is recommended to truncate your destination table before editing a report. You can then replicate the historical data from the updated report by resetting it from its Table Settings page.
Google Ads table reference
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 2 of this integration.
This is the latest version of the Google Ads integration.
Report tables: Values for money fields
When conducting analyses on Report tables, you might notice that values in money fields - like a cost field, for example - look higher than usual. This is because Google Ads’ API sends Stitch money data in micro currency units. Micro amounts always refer to your account’s local currency.
For example: The value of $2.25USD will be recorded as 2250000. To represent this value as 2.25 in a report, divide by one million: 2250000 / 1000000 = 2.25.
Report tables: Column selection and statistic aggregation
The dimension columns selected for replication in Report tables can impact how performance statistics are aggregated. Additionally, this can also affect the number of rows replicated and loaded into your destination.
For example: if date, customer_id, campaign_id, device, and impressions were selected, the impressions column would contain the total number of impressions for the device type for that date:
| date | customer_id | campaign_id | device | impressions |
|---|---|---|---|---|
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | DESKTOP | 4 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | HIGH_END_MOBILE | 3 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | TABLET | 3 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | UNKNOWN | 1 |
If the ad_network_type column were also selected, a row for every unique combination of device and ad_network_type would be created and impressions would be aggregated accordingly:
| date | customer_id | campaign_id | device | ad_network_type | impressions |
|---|---|---|---|---|---|
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | DESKTOP | YOUTUBE_SEARCH | 3 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | HIGH_END_MOBILE | YOUTUBE_SEARCH | 1 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | TABLET | YOUTUBE_SEARCH | 0 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | UNKNOWN | YOUTUBE_SEARCH | 0 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | DESKTOP | SEARCH | 1 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | HIGH_END_MOBILE | SEARCH | 2 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | TABLET | SEARCH | 3 |
| 2018-01-05 00:00:00 | 1585293495 | 240531207 | UNKNOWN | SEARCH | 1 |
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs > customers), while case is maintained in PostgreSQL destinations (CusTomERs > CusTomERs). Refer to the Loading Guide for your destination for more info.
accessible_bidding_strategies
The accessible_bidding_strategies table contains info about accessible bidding strategies in your Google Ads account.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
account_performance_report
The account_performance_report table contains all statistics aggregated by default at the account level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
accounts
The accounts table contains high-level info about the Google Ads account(s) you’ve connected to Stitch.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
ad_group_criterion
The ad_group_criterion table contains info about ad group criteria.
|
Full Table |
|
|
Primary Keys |
criterion_id ad_group_id |
| Useful links |
ad_group_performance_report
The ad_group_performance_report table contains all statistics aggregated at the ad group level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
ad_groups
The ad_groups table contains detailed info about your ad groups.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
ad_performance_report
The ad_performance_report table contains all statistics aggregated at the ad level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
ads
The ads table contains comprehensive info about ads in ad groups in your Google Ads account.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
age_range_performance_report
The age_range_performance_report table contains all Display Network and YouTube Network statistics aggregated by age range.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
assets
The assets table contains info about the assets such as images, videos, etc.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
The schema details are available in Google documentation.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
bidding_strategies
The bidding_strategies table contains info about bidding strategies in your Google Ads account.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
call_details
The call_details table contains info about call tracking of call-only ads or call extensions.
|
Full Table |
|
|
Primary Key |
resource_name |
| Useful links |
campaign_audience_performance_report
The campaign_audience_performance_report table contains all statistics aggregated by default at the campaign level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
campaign_budgets
The campaign_budgets table contains info about campaign budgets in your Google Ads account.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
campaign_criterion
The campaign_criterion table contains info about campaign criteria.
|
Full Table |
|
|
Primary Key |
criterion_id |
| Useful links |
campaign_labels
The campaign_labels table contains info about the relationship between campaigns and labels.
|
Full Table |
|
|
Primary Key |
resource_name |
| Useful links |
campaign_performance_report
The campaign_performance_report table contains all statistics aggregated by default at the campaign level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
campaigns
The campaigns table contains detailed info about your Google Ads campaigns.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
carrier_constant
The carrier_constant table contains info about carrier criteria that can be used in campaign targeting.
Note: In order to replicate this table, you must also set the campaign_criterion table to replicate.
|
Full Table |
|
|
campaign_criterion |
|
| Useful links |
click_performance_report
The click_performance_report table contains statistics aggregated at each click level, and includes both valid and invalid clicks.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
display_keyword_performance_report
The display_keyword_performance_report table contains all Display Network and YouTube Network statistics aggregated at the keyword level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
display_topics_performance_report
The display_topics_performance_report table contains all Display Network and YouTube Network statistics aggregated at the topic level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
expanded_landing_page_report
The expanded_landing_page_report table contains
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
gender_performance_report
The gender_performance_report table contains all statistics aggregated by gender.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
geo_performance_report
The geo_performance_report table contains all statistics aggregated at the country/territory level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
keywordless_query_report
The keywordless_query_report includes keywordless ads (dynamic search ads) statistics based on search terms.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
keywords_performance_report
The keywords_performance_report table contains all statistics aggregated at the keyword level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
labels
The labels table contains info about labels.
|
Full Table |
|
|
Primary Key |
id |
| Useful links |
landing_page_report
The landing_page_report table contains
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
language_constant
The language_constant table contains info about about languages.
Note: In order to replicate this table, you must also set the campaign_criterion table to replicate.
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion |
|
| Useful links |
mobile_app_category_constant
The mobile_app_category_constant table contains info about mobile application categories.
Note: In order to replicate this table, you must also set the following tables to replicate:
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion ad_group_criterion |
|
| Useful links |
mobile_device_constant
The mobile_device_constant table contains info about mobile devices.
Note: In order to replicate this table, you must also set the campaign_criterion table to replicate.
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion |
|
| Useful links |
operating_system_verison_constant
The operating_system_verison_constant table contains info about mobile operating system versions.
Note: In order to replicate this table, you must also set the campaign_criterion table to replicate.
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion |
|
| Useful links |
placement_performance_report
The placement_performance_report table contains
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
search_query_performance_report
The search_query_performance_report table contains all statistics aggregated at the search term level.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
shopping_performance_report
The shopping_performance_report table contains
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
topic_constant
The topic_constant table contains info about topics.
Note: In order to replicate this table, you must also set the following tables to replicate:
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion ad_group_criterion |
|
| Useful links |
user_interest
The user_interest table contains info about user interests to be targeted.
Note: In order to replicate this table, you must also set the following tables to replicate:
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion ad_group_criterion |
|
| Useful links |
user_list
The user_list table contains info about lists of user that can be targeted.
Note: In order to replicate this table, you must also set the following tables to replicate:
|
Full Table |
|
|
Primary Key |
id |
|
campaign_criterion ad_group_criterion |
|
| Useful links |
user_location_performance_report
The user_location_performance_report table contains
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |
video_performance_report
The video_performance_report table contains statistics for your account’s videos.
This is a Report table. See the Replication section for information on how data is replicated and loaded for this table.
|
Key-based Incremental |
|
|
Primary Key |
_sdc_record_hash |
|
Replication Key |
date |
| Useful links |