Practical guide

How to connect Facebook Ads to BigQuery: Google's transfer, a connector or a script

How to connect Facebook Ads to BigQuery three ways: Google's transfer, a no-code connector or a script, with the limits and first-load checks for each.

Last materially reviewed 2026-10-24

Quick answerThere are three routes: Google's BigQuery Data Transfer Service for Facebook Ads, a no-code connector such as Windsor.ai, or a script on the Marketing API. Pick by refresh needs, number of ad accounts and who keeps the access tokens alive.

How to connect Facebook Ads to BigQuery: three routes

There are three ways to land Facebook Ads data in BigQuery. Google's own BigQuery Data Transfer Service has a Facebook Ads transfer that runs on a schedule. A no-code connector such as Windsor.ai, Coupler.io, Porter Metrics or Dataslayer builds the pipe for you. Or you can write a script against Meta's Marketing API. The right route depends on how often you need data, how many ad accounts you manage and who will keep the access tokens alive.

This guide was written from Google's documentation and the connector vendors' own pages, read on October 24, 2026. Windsor.ai's connector page says BigQuery has no built-in tool for importing Facebook Ads data, while Google's documentation describes a Facebook Ads transfer, so the first route is worth a look before you pay for a connector.

Route 1 setup steps: Google's Facebook Ads transfer

  • You need a Google Cloud project with BigQuery and a dataset. The BigQuery sandbox does not support the Data Transfer Service, so use a project with a billing account.
  • Create a Facebook developer app with the Business type and copy its app ID and app secret.
  • In the Cloud console, open Data transfers, create a Facebook Ads transfer, choose the dataset and schedule, copy the redirect URI shown beside the refresh token field into the app's valid OAuth redirect URIs, then authorize.
  • The token needs the ads_management, ads_read and business_management permissions, and creating the transfer calls for the BigQuery Admin role.
  • Limits in Google's documentation: a minimum interval of 24 hours, a fixed set of tables with no custom reports, a six-hour maximum run, and a long-lived user token that expires after 60 days. A system user token is the documented alternative.
  • The tables named in the documentation include AdInsights, AdInsightsActions, Ads, Campaigns and AdSets.

Route 2 setup steps: a no-code connector such as Windsor.ai

  • Prerequisites: a Facebook Business Manager account with management permissions and a Google Cloud account with BigQuery enabled. Windsor.ai's help article lists billing enabled on the project as a connection-test requirement.
  • Create a Windsor.ai account, add Facebook Ads as the data source, authorize it, select the ad accounts and choose the fields and filters.
  • Under Data Destinations choose BigQuery and add a destination task. Enter a task name, the authentication type (a Google account or a service account file), the project ID, the dataset ID and a table name. The table is created if it does not exist.
  • For a service account, the help article lists the BigQuery Data Editor and BigQuery Job User roles, and it describes a service account as the better fit for scheduled tasks because a personal login can expire.
  • Backfill is available on paid plans, schedule options start at Standard according to the help article, and the table is partitioned by date by default, with optional clustering.
  • The meter that matters is accounts: each ad account counts toward the plan total, as the pricing guide explains.

How other connectors handle BigQuery

  • Dataslayer applies monthly row limits to BigQuery, which its pricing FAQ calls an enterprise destination, but not to Looker Studio or Sheets: 5,000 rows on Starter, 100,000 on Advanced and 2 million on Pro.
  • Coupler.io counts data destinations by plan: 1 on Starter, 3 on Active and unlimited on Pro.
  • Funnel lists BigQuery under cloud destinations on its Business plan and gives warehouse destinations the largest weight in its capacity list.
  • Porter Metrics lists a Meta Ads connector for BigQuery. Read its pricing page for the per-account meter.
  • Supermetrics lists BigQuery with Enterprise. The comparison covers the differences.

Route 3: your own script

A script calls Meta's Marketing API with an access token that has the ads_read permission, then loads the results into a BigQuery table with a load job. It carries no connector fee, but you own pagination, rate limits, token renewal and schema changes. Windsor.ai's page walks through this manual route with a Graph API example and a Business-type app. It suits one or two accounts, a developer on hand and a case where the transfer's fixed tables do not fit.

Before you rely on it: BigQuery costs and the first-load test

  • BigQuery's pricing page gives a free tier of the first 10 GiB of storage and the first 1 TiB of query data processed each month.
  • The sandbox needs no credit card, but its tables and partitions expire after 60 days and it excludes the Data Transfer Service and streaming.
  • Partition tables by date and cluster by account or campaign to keep queries small. Windsor.ai's help article describes both options.
  • After the first load, open the dataset, refresh it, and compare spend and impressions for one date and one account against Ads Manager, in the same time zone.
Continue when useful

Next: What is Windsor.ai

What Windsor.ai is, how it moves ad and analytics data into Looker Studio, Sheets and BigQuery, which terms its plans use and when to skip it.

Open What is Windsor.ai →

Sources used for this page

These records support the facts and comparisons above. Merchant-controlled records are labelled so you can separate product claims from independent evidence.

  1. Google Cloud documentation, Load Facebook Ads data into BigQuery — Platform documentation · docs.cloud.google.com · Merchant-controlled · checked 2026-10-24
  2. Google Cloud documentation, Try BigQuery using the sandbox — Platform documentation · docs.cloud.google.com · Merchant-controlled · checked 2026-10-24
  3. Google Cloud BigQuery pricing page — Platform documentation · cloud.google.com · Merchant-controlled · checked 2026-10-24
  4. Windsor.ai Facebook Ads to BigQuery page — Merchant documentation · windsor.ai · Merchant-controlled · checked 2026-10-24
  5. Windsor.ai documentation, How to integrate data into Google BigQuery — Merchant documentation · windsor.ai · Merchant-controlled · checked 2026-10-24
  6. Windsor.ai pricing page — Merchant documentation · windsor.ai · Merchant-controlled · checked 2026-10-24
  7. Dataslayer pricing page — Alternative provider · dataslayer.ai · Publisher independence not verified · checked 2026-10-24
  8. Coupler.io pricing page — Alternative provider · coupler.io · Publisher independence not verified · checked 2026-10-24
  9. Funnel pricing page — Alternative provider · funnel.io · Publisher independence not verified · checked 2026-10-24
  10. Porter Metrics Meta Ads connector for BigQuery page — Alternative provider · portermetrics.com · Publisher independence not verified · checked 2026-10-24
  11. Supermetrics pricing page — Alternative provider · supermetrics.com · Publisher independence not verified · checked 2026-10-24