Skip to main content

Google Ads Source

Connect Google Ads as a source to sync your account structure and performance reporting from one Google Ads account into your data warehouse. Account-structure objects (campaigns, ad groups, ads, keywords, budgets, and more) re-read in full on each sync, while date-segmented performance reports sync incrementally on a daily cursor.

For an overview of capabilities and use cases, see the Google Ads connector page. To run pipelines natively inside Snowflake, see Snowflake Native ETL.

Prerequisites

Before you begin, ensure you have:

  • A Google Ads account with reporting data, and its 10-digit customer ID (with or without dashes, for example 123-456-7890) -- shown in the top corner of the Google Ads UI
  • A Google account that can open that Google Ads account (read access is sufficient)
  • No Google Ads API developer token -- Supaflow supplies and manages the developer token for you, so you do not apply for, paste, or renew one

Supported Objects

The connector syncs 21 account-structure objects on full refresh and 21 performance reports incrementally on a daily date cursor. Each object becomes a separate table in your destination.

Account Structure

ObjectSync ModeDescription
AccountsFull RefreshAccount-level settings for the customer ID you sync.
Campaigns, Campaign budgetsFull RefreshCampaign configuration and the budgets assigned to them.
Ad groups, AdsFull RefreshAd groups and the ads within them.
Ad group criteria, Campaign criteriaFull RefreshKeyword and criteria targeting at the ad-group and campaign level.
Labels, Campaign labelsFull RefreshLabels defined on the account and their associations to campaigns.
Bidding strategies, Accessible bidding strategiesFull RefreshPortfolio bidding strategies owned by and shared with the account.
Assets, Call detailsFull RefreshCreative assets and call-reporting details.
User lists, User interestsFull RefreshAudience lists and interest categories.
Reference constants (6 tables)Full RefreshCarriers, languages, mobile app categories, mobile devices, operating system versions, and topics used as lookup dimensions.

Performance Reports

ReportSync ModeDescription
Account, Campaign, Ad group, Ad performanceIncrementalSpend, impression, click, and conversion metrics at each level, segmented by date.
Keywords, Search query, Keywordless queryIncrementalKeyword and search-term performance, including queries matched without keywords.
Click performanceIncrementalClick-level performance keyed by Google click ID and date.
Age range, GenderIncrementalDemographic breakdowns of performance.
Geo, User locationIncrementalGeographic-view and user-location breakdowns.
Campaign audience, Ad group audienceIncrementalAudience-segment breakdowns at the campaign and ad-group level.
Display keyword, Display topics, PlacementIncrementalDisplay-network keyword, topic, and placement breakdowns.
Shopping performanceIncrementalShopping product performance, segmented by campaign and ad group.
Video performanceIncrementalVideo performance, segmented by campaign and ad group.
Landing page, Expanded landing pageIncrementalLanding-page performance, segmented by campaign and ad group.

Not Yet Supported

This connector does not sync:

  • Individual conversion action records, conversion upload summaries, and conversion adjustments (aggregate conversion metrics, including conversions and conversion value, are included in the performance reports)
  • Ad extension and asset performance reports
  • Smart campaign reports
  • Lead form submission data
  • Audience insights and market insights
  • Any write or change operations (the connector is read-only)

Contact us with the reports or objects you need -- expansion is prioritized by customer demand.

Incremental Sync

Performance reports sync incrementally on a daily date cursor; account-structure objects re-read in full on each sync. On each run, the connector reads each report from the prior cursor through yesterday and advances the cursor, so partially processed current-day data is not landed.

Two behaviors are worth knowing:

  • Conversion-window lookback. Google restates conversion metrics for up to about 30 days after the click date. By default, each sync re-reads a trailing 30-day window so those restated conversions land on the already-synced days. Lower the Conversion Window Lookback to re-read fewer days, or raise it (up to 90 days) if conversions in your account keep changing beyond 30 days.
  • First-sync window. When Start Date is left blank, the initial backfill of performance reports defaults to a rolling 2-year window. Set Start Date explicitly for a different starting point. One exception: the click performance report is limited to the most recent 90 days, because Google only exposes click data for that window -- an earlier Start Date does not extend it.

Authentication

The connector authenticates with Google sign-in. You connect a Google account that can open your Google Ads account; Supaflow stores the resulting refresh token and refreshes the access token before each sync. Unlike most Google Ads integrations, you do not apply for or supply a Google Ads API developer token -- Supaflow provides and manages it.

Connect your Google account

  1. Click Authorize in the Supaflow source wizard.
  2. Sign in with a Google account that can open the Google Ads account you want to sync.
  3. Approve the access request. Supaflow stores the refresh token.

Google's consent screen grants the Google Ads API scope (Google does not offer a read-only Google Ads scope). Supaflow only performs read queries through the Reporting API -- it never creates, edits, or pauses anything in your account.

Permissions

  • The Google account needs read access to the Google Ads account. A standard, read-only, or admin Google Ads user all work; read-only is sufficient.
  • Manager (MCC) accounts: if the account you sync sits under a manager account, Supaflow resolves the manager account automatically. You do not configure a login or manager customer ID -- enter only the customer ID of the account you want to report on.

Configuration

In Supaflow, create a new Google Ads source with these settings.

Authentication

Customer ID*

The 10-digit Google Ads customer ID of the account to sync, with or without dashes. Shown in the top corner of the Google Ads UI.
Example: 123-456-7890


Sync Settings (Optional)

Start Date

Earliest date to backfill performance reports from on the initial sync, in YYYY-MM-DD form. Applied only on the first sync of each report; later runs advance from the saved cursor.
Example: 2024-06-01
Default: empty -- the initial sync backfills a rolling 2-year window (730 days). The click performance report is the exception: Google only exposes click data for the last 90 days, so it backfills at most 90 days regardless of Start Date.


Advanced Settings (Optional)

Conversion Window Lookback

Seconds to re-read from the prior cursor on each performance-report sync, so restated conversions land on already-synced days. Google restates conversion metrics for up to about 30 days after the click date.
Common values:

  • 2592000 - 30 days (default).
  • 604800 - 7 days, for a shorter trailing window.
  • 7776000 - 90 days, the maximum.

Range: 0 to 7776000
Default: 2592000 (30 days)

Schema Refresh Interval

Interval in minutes for schema metadata refresh.
Options:

  • 0 - Refresh schema before every pipeline execution.
  • -1 - Disable automatic schema refresh.
  • Positive value - Refresh interval in minutes (e.g., 60 = hourly, 1440 = daily).

Default: 60


Test & Save

After authorizing your Google account and entering the customer ID, click Test & Save to verify your connection and save the source.

Rate Limiting

Google applies rate limits and quotas to the Google Ads API per developer token and per account. Supaflow handles transient rate limiting automatically with retry and backoff, but very large initial backfills or many parallel pipelines on the same account may take longer or need off-peak scheduling. See Google's Google Ads API quota documentation for current limits.

If you run into quota errors, narrow the report set you sync, shorten the Conversion Window Lookback, or schedule large initial backfills off-peak.

Schema Evolution

The account-structure and performance-report schemas are statically authored, with a fixed column list per object. Their columns do not change unless the connector is updated.

  • Field selection -- deselect report fields you do not need in the source schema, and the connector requests only the fields you keep, plus the columns required to identify each row and drive incremental sync
  • New fields added to the Google Ads API appear after a connector update, not automatically
  • New objects added in a connector update appear in schema selection after the next schema refresh
  • Removed or renamed source fields are handled per your pipeline's schema-evolution settings

Troubleshooting

Authentication failed

Problem:

  • A "reconnect this datasource" warning, or an authentication error on Test & Save

Solutions:

  1. Reconnect via Authorize in the source wizard. The refresh token may have been revoked in your Google Account permissions, or the connected Google account may have lost access to the Google Ads account.
  2. Confirm the Google account you authorized can still open the Google Ads account in the Google Ads UI.

Developer token or account access denied

Problem:

  • An error mentioning the developer token is not approved, or permission denied for the account

Solutions:

  1. Supaflow manages the developer token, so this usually means the connected Google account cannot reach the requested customer ID. Confirm the account opens in the Google Ads UI for that login.
  2. If you reach the account only through a manager (MCC) account, sign in with a Google login that can see it; Supaflow resolves the manager account automatically.
  3. Newly created Google Ads accounts can take time before the API returns data. Confirm the account has run campaigns and has reporting data.

Wrong customer ID

Problem:

  • "Customer not found", or no data after a successful save

Solutions:

  1. Use the 10-digit customer ID of the account you want to sync (with or without dashes), shown in the top corner of the Google Ads UI.
  2. Do not use the manager account ID unless that manager account is itself the account you want to report on.

Reports sync but tables are empty or sparse

Problem:

  • Performance reports complete, but tables have fewer rows than expected

Solutions:

  1. Performance reports return rows only for dates with activity. Confirm the account has impressions, clicks, or conversions in the date range.
  2. The most recent day can be sparse while Google finishes processing it, and recent conversions continue to be restated -- the Conversion Window Lookback re-reads those days on later syncs.
  3. Set Start Date earlier if you need history beyond the default 2-year backfill.

A Google Ads report or object you need is missing

Problem:

  • You need individual conversion records, ad extension or asset reports, smart campaign reports, lead form data, or audience insights

Solutions:

  1. The connector syncs account structure and core performance reports today. Aggregate conversion metrics (conversions, conversion value) are already included in the performance reports, but individual conversion action records and conversion adjustments, ad-extension and asset performance reports, smart campaign reports, lead form data, and audience and market insights are not exposed yet.
  2. Contact support with the report or object you need -- expansion is prioritized by customer demand.

Support

Need help? Contact us at support@supa-flow.io