Issue with Missing Tables During Google Ads Data Backfill in BigQuery

Hello,

We are currently extracting Google Ads data into BigQuery. However, we encountered errors on certain scheduled dates, so we attempted a backfill. It seems that some tables were not populated for those dates.

Upon checking, we found that manually triggering the transfer (as described in this documentation) does not generate snapshots for some of the listed tables.

Is there any way to backfill these specific tables?

Thank you in advance.

Hi there, thanks for sharing your case. This type of issue is fairly common when working with the native Google Ads to BigQuery connector , especially when attempting a manual backfill.

A few key things to keep in mind:

Not all table types support manual backfill

The BigQuery Data Transfer Service for Google Ads doesn’t generate retroactive snapshots for certain tables, particularly those based on dynamic or segmented data (like ad_*_stats with detailed breakdowns).

Tables like ad_stats or ad_group_criteria_stats often require that the relevant data still be available via the Google Ads API at the time of the backfill , which isn’t always the case if the data is beyond the API’s retention window.

Manual trigger ≠ Guaranteed backfill

Even if you manually run a transfer job, it will only pull the data that’s still accessible through the API.
In some cases, Google restricts access to historical data , especially for reports involving custom fields or complex segmentation.

Alternative solution

If you’re hitting limitations with the native connector, a more flexible option would be to use a third-party solution like Windsor.ai.

It allows you to extract complete historical data directly from the Google Ads API, with granular control over tables, date ranges, and metrics. You can then send that data straight into BigQuery. Plus, it automatically handles retries and API errors that often cause native jobs to fail silently.

Recommendation:

Start by identifying which specific tables are incomplete, and check whether that data is still available through the Google Ads API. If it’s no longer accessible, using an external tool might be your best bet for filling in those gaps.

Hope this helps!