BigQuery Data Transfer Service (DTS) can ingest data from SaaS applications, cloud storage, and other Google Cloud services automatically, but its true power lies in its ability to replicate entire datasets without you writing a single line of SQL.

Let’s say you want to get your Google Ads data into BigQuery for more complex analysis. You head over to the Google Cloud Console, navigate to BigQuery, and then to "Data transfers." You click "Create Transfer," select "Google Ads" as the source, and then you’re presented with a configuration screen.

Here’s where the magic happens:

  • Data Source: You choose "Google Ads."
  • Transfer Config Name: Give it a descriptive name, like google_ads_daily_ingest.
  • Schedule: You can set it to run daily, weekly, or monthly. For most ad data, daily is ideal. You can even specify a time.
  • Destination Settings: This is crucial. You specify your BigQuery project, dataset, and the table prefix. DTS will create tables like googleAds_campaign_stats_YYYYMMDD for daily data.
  • Data Source Details: Here, you authenticate with your Google Ads account. DTS handles the OAuth flow for you. You then select which reports you want to transfer (e.g., ad_group_performance_report, campaign_performance_report).

Once configured, DTS takes over. It will:

  1. Periodically poll the Google Ads API: It checks for new data based on your schedule.
  2. Extract the data: It retrieves the specified reports.
  3. Transform (minimally): It formats the data into a schema BigQuery understands.
  4. Load into BigQuery: It inserts the data into your designated tables.

This isn’t just about getting data in; it’s about keeping it synchronized. If you have a daily report that runs at 3 AM, DTS can be configured to pull that data starting at 4 AM, ensuring you have the latest information available for your morning dashboards.

The internal mechanism is a managed service that leverages Google’s internal infrastructure for scheduling, authentication, and data movement. It abstracts away the complexities of API authentication, pagination, rate limiting, and schema evolution, which are common pain points when building custom data ingestion pipelines. You’re essentially renting Google’s expertise in data integration for these specific sources.

What most people don’t realize is that DTS also handles schema drift gracefully for many sources. If Google Ads adds a new field to a report, DTS will often detect it and automatically add the new column to your BigQuery table on the next run, preventing transfer failures due to mismatched schemas. You don’t need to manually alter your tables every time the source API updates.

The next step is to explore custom data sources using the Transfer Service API for even more tailored ingestion workflows.

Want structured learning?

Take the full Bigquery course →