Best Way to Transfer Data from Facebook Ads to BigQuery

Facebook and Google BigQuery are both valid enough to allow businesses to track or analyze their ads and provide convenient reporting capabilities. So why are we talking about such a transfer? Why do companies need it? As usual, both solutions have their own pros and cons, and combining these services allows users to unlock more potential of each system.

For instance, the reports and analytics in Facebook Ads are very basic, but if you send the appropriate data to BigQuery, you’ll get robust data analytics abilities, like blending data with ad information from other sources and insightful cross-channel reports. You can also create an interactive dashboard by connecting BigQuery and BI tools.

This article is about integrating Facebook and Google BigQuery and how to do it smoothly and easily. We’ll go through the most common methods and then investigate such integration’s top benefits and challenges.

Table of Contents

  1. 3 Methods to send Facebook Ads data to Google BigQuery
  2. Manual transfer of Facebook Ads data to BigQuery
  3. Send Facebook Ads to BigQuery using API
  4. Connect Facebook Ads to BigQuery Automatically
  5. What’s the best method for transferring data from Facebook Ads to BigQuery?
  6. Conclusion

3 Methods to send Facebook Ads data to Google BigQuery

There are several methods to transfer Facebook Ads’ data to BigQuery. You can do it manually, using API or no-code solutions. Let’s consider each one’s capabilities. 

Note: You need Facebook Ads and Google BigQuery accounts to perform transfers using each method. If you still don’t have one, sign in to Google Cloud Console and create an account and project. 

Manual transfer

Manual transfer sounds simple, but in reality, it’s challenging to scale, may lead to data errors, and, as a result, waste your time. In short, you must manually export data from Facebook Ads Manager into a CSV file to the local storage and then upload it to BigQuery. This method may be ok for small businesses that perform this operation from time to time and have limited Facebook Ads data volumes.

Facebook Ads API

Compared to the manual method, Facebook Ads API is faster, allows operating with large data volumes, and is more reliable. Here you can:

  • Automate the Facebook Ads data transfer process.
  • Set up a schedule to update the data regularly.

This method is not suitable for non-tech users because coding skills are required.

Automated Transfer (No-code integration)

Automated transfer or no-code integration means automatically using the third-party data integration tool to send the Facebook Ads info to BigQuery. The term ‘automatically’ is the key one in this case. This method is simple and scalable, convenient, and doesn’t need additional coding skills. Sure, it may be costly depending on the solution selected, but for businesses operating large data volumes, such a choice saves time and money.

Now, let’s dive deeper into each method.

Manual transfer of Facebook Ads data to BigQuery

Follow the steps below to transfer Facebook Ads data into BigQuery manually.

Step 1: Export Data from Facebook Ads

  1. Log in to Facebook Ads Manager.
  2. Navigate to the Reports section or wherever you access detailed reporting.
  3. Customize the report to include all the data fields you need for your analysis in BigQuery.
  4. Click Export Table Data to export the report. Facebook typically allows you to export data in formats like CSV or Excel. Choose CSV for compatibility with BigQuery to load the file to the local device.
Google BigQuery Export Table Data

Step 2 (Optional): Prepare the Data 

Depending on your needs, you might have to preprocess or clean the data using a spreadsheet like Microsoft Excel. Ensure that the data types in the CSV file match those in your BigQuery table schema.

Step 3: Create a Dataset in BigQuery

  1. Go to the BigQuery Console
  2. Select your project and click Create Dataset on the right.
BigQuery create dataset
  1. Fill in the Dataset ID and set the data location and other options as needed.

Step 4: Create a Table in BigQuery

  1. In the newly created dataset, click + Create Table.
  1. Choose Upload under Create table from, and upload the CSV file exported from Facebook Ads.
  2. Specify the table name and select the appropriate options for your file format.
Create table in BigQuery

You can manually specify the schema or opt for BigQuery to detect it automatically if the CSV file includes a header row. Ensure the schema matches the data in the CSV. Click Create table.

Schema Google BigQuery

Step 5: Upload the Data

The data upload will begin as soon as you create the table. BigQuery will import the data from your CSV file into the new table.

Step 6: Verify the Data Import

Once the upload is complete, run a simple query in BigQuery to ensure your data has been imported correctly.

Send Facebook Ads to BigQuery using API

To automate the transfer of Facebook Ads data to Google BigQuery via API, you must be familiar with API usage, Google Cloud services, and scripting languages like Python. It may sound a bit scary, but let’s start.

Note: To enable BigQuery API for your project, ensure you have the account with permission to create and manage BigQuery datasets and tables.

Step 1: Set Up Facebook Ads API

  1. Obtain an access token from Facebook for the Graph API. Create an app in the Facebook Developer portal, get an App ID and App Secret, and then use these to generate an access token.
  2. Ensure your access token has permission to access Ads data (ads_read).

Step 2: Set Up Google Cloud Project

  1. Create a Service Account.
  2. Download its key file. 

Step 3: Prepare Your Environment

  1. Choose a server or local environment where your script will run.
  2. Ensure you have libraries installed for making HTTP requests, like requests in Python, and for interacting with the BigQuery API (Google Cloud SDK or libraries like google-cloud-bigquery in Python).

Step 4: Fetch Data from Facebook Ads API

Determine what data you need from Facebook Ads. Consider including campaign performance metrics, audience insights, ad spending, conversion rates, etc. Knowing what you need will guide the extraction process.

Use Facebook Ads Manager

  • Go to your Facebook Ads Manager dashboard.
  • Select Reports to customize the type of data and metrics you’re interested in.
  • Once you’ve configured your report, you can download it in various formats (e.g., CSV, Excel) for further processing or integration.

Use Facebook Graph API for advanced or automated data needs

The Facebook Graph API allows for processing detailed ad performance data. This method is suitable for extracting large volumes of data or automating data extraction processes.

  • Ensure you have developer access to the Facebook app associated with the ad account.
  • Create an access token with permissions to access ads insights (ads_read).
  • Use the Graph API endpoint for ad insights, specifying the necessary fields and parameters. The API call might look like this:{ad-account-id}/insights?fields=impressions,clicks,spend&access_token={your-access-token}.
  • Process the API response, typically JSON, and extract the needed data.

Automate the data extraction process for recurring needs using scripts or data integration platforms to schedule and execute the data fetch regularly.

  • Write a Python script to fetch and process the data using the Facebook SDK or direct API calls.
  • Schedule the script to run at desired intervals using task schedulers (e.g., cron jobs in Linux, Task Scheduler in Windows).
  • Alternatively, use data integration services that support Facebook Ads and can automate data extraction and preparation.

Note: Remember Facebook’s API rate limits to avoid disrupting your access. Ensure your data handling practices comply with Facebook’s terms and data privacy regulations relevant to your region or industry.

Step 5: Prepare Data for BigQuery

Prepare your Facebook Ads data for Google BigQuery to ensure the data is clean, consistent, and structured for efficient querying and insightful analysis in BigQuery and data-driven decisions based on comprehensive advertising performance data. 

  1. Determine what information you need from your Facebook Ads for analysis in BigQuery. Standard metrics include impressions, clicks, conversions, and spending. Dimensions might include campaign ID, ad set details, demographics, and time of day.
  2. Ensure the data format aligns with BigQuery’s requirements. BigQuery supports CSV, JSON, and other formats, but CSV is often the most straightforward for tabular data like ad metrics. For CSV files, include headers in the first row and quote text fields that may contain commas or newlines. For JSON, structure your data as an array of objects, each representing a record.
  3. Clean your data to ensure accuracy. Remove any irrelevant or incomplete records and correct any discrepancies. This process might include aggregating data at the desired granularity (e.g., daily metrics), splitting columns if a single column contains multiple pieces of information (e.g., full names to first and last names), and ensuring data types match BigQuery requirements (e.g., converting string dates to DATE format).
  4. Create a schema that reflects your dataset. For each column in your dataset, define Name: The column name. Type: The data type (e.g., STRING, INTEGER, FLOAT, DATE). Mode: Whether the field can be null (NULLABLE), must have a value (REQUIRED), or can contain multiple values (REPEATED).
  5. Consider partitioning your table based on a date or timestamp column to improve query performance and manage costs more effectively. Use clustering to organize your data further based on frequently queried columns.
  6. Choose your upload method. You can upload data directly through the BigQuery UI, use the bq command-line tool, or automate uploads via the BigQuery API. Execute the upload. For CSV files, ensure you specify options like delimiter, encoding, and whether the file contains a header row. Make sure the file adheres to BigQuery’s JSON format requirements.
  7. After uploading, run test queries to check the integrity and accuracy of your data. Look for any import errors or mismatches in the schema. Adjust your preparation process as needed based on these findings to ensure reliable

Step 6: Upload Data to BigQuery

  1. Use the service account key file to authenticate your script with Google Cloud.
  2. Initialize a BigQuery client using the Google Cloud library in the script.
  3. Create Dataset and Table if they don’t already exist, using the BigQuery client.
  4. Use the client to upload your formatted data to the BigQuery table. You can stream the data directly or upload a file.

Step 7: Automate and Schedule

  1. Use tools like Google Cloud Scheduler and Cloud Functions to automate data fetching and uploading. 
  2. Schedule the script to run at regular intervals that match your reporting needs.

Here is a simplified example to illustrate part of the process. It assumes you have google-cloud-bigquery and requests libraries installed.

code for BigQuery import

Note: This is just a guide and example. Real-world implementations require securely handling authentication, managing API rate limits, dealing with data transformation complexities, and handling errors from both the Facebook API and BigQuery API.

Connect Facebook Ads to BigQuery Automatically

Automatically connecting Facebook Ads to BigQuery is the easiest and least time-consuming way to save costs and keep you calm. Such a method is also called no-code integration. Let’s consider how to do it using Skyvia – a no-code, cloud-based data integration platform supporting 180+ sources and destinations, including Facebook Ads and Google BigQuery. Here are the scenarios supported:

  • Data import and export from Facebook Ads to CSV files.
  • Replication of Facebook Ads data to relational databases or data warehouses.
  • Synchronization of Facebook Ads data with other cloud apps and relational databases.

The solution’s user-friendly UI allows data transfer from Facebook Ads to BigQuery in just a few steps. The guide below shows how easy it is.

find ideal pricing plan

The Step-by-Step Guide on how to connect Facebook Ads and Google BigQuery

You first need to connect with Facebook Ads and Google BigQuery.

  1. Click + Create New in the Skyvia top menu and select Connection in the list on the left.
  1. Select the connector or type keywords in the search filter.
select connector
  1. Click Sign in with Facebook, enter your credentials (Access Token), and click Create Connection.
Facebook connector by Skyvia
  1. Enter your Facebook credentials and click Log In.
Login Facebook
  1. Specify the Ad Account Id. You can find the Ad Account Id in your Facebook Ads Manager. The Ad Account Id value is located above the search and filter bar, in the account dropdown menu, or in the page URL.
Facebook Campaigns

In the same way, you have to create the BigQuery connector. Go here for more details.

Note: You must provide your Google Cloud credentials and a service account key file for authentication. 

When the connections are set up, you can start the integration.

  1. In the Skyvia dashboard, click +Create New in the top menu, navigate to the Integration section, and select the appropriate scenario. For instance, you can choose Import to move data from Facebook Ads to BigQuery.
  1. For the source, select Source Type – Data Source – Facebook Ads.
  2. Choose Google BigQuery as the Target (don’t forget to create a new dataset in BigQuery where the Facebook Ads data will be stored).
  3. Create a task and select the specific ad data (e.g., ad performance metrics, click-through rates, costs, etc.) you wish to transfer to BigQuery. Map the data fields from Facebook Ads to the corresponding fields in your BigQuery dataset. Skyvia offers automatic mapping, but you can customize the mappings based on your needs.

Note: All data from Facebook Ads are immediately available here, without special preparation, and it is straightforward to manage them. You can configure special logic in a few clicks, filter data, add special conditions, etc.

Import by Skyvia
  1. Decide if you want the data transfer to occur immediately or on a schedule. Skyvia allows you to set up a recurring schedule for automatic data updates.
  2. Save the integration package.
  3. If immediate data transfer is needed, execute the package manually, or wait for the scheduled run if you’ve set one up.

Note: Use Skyvia’s monitoring tools to check the status of your data integration tasks. If necessary, adjust your mappings or schedule based on the initial results to ensure your data is accurately and efficiently transferred as needed.

automate data routine


Enhanced Data Analysis and Insights

Combining Facebook Ads data with other data sources in BigQuery allows for comprehensive analytics. You can derive more nuanced insights into ad performance, customer behavior, and ROI across multiple channels.

Historical Data

By acquiring all raw data within the DWH, you can be sure that historical data won’t be leaked, lost, or sampled. You can retrieve them into the report anytime.

Real-time Decision Making

By automating data flows into BigQuery, businesses can analyze data in near real-time. This timely access supports quicker, more informed decisions regarding ad adjustments and marketing strategies.


BigQuery’s infrastructure supports seamlessly scaling from small datasets to petabytes of data. As your advertising efforts and data grow, BigQuery can accommodate this growth without significant re-architecture.

Advanced-Data Processing Capabilities

BigQuery offers powerful data processing features, including machine learning models directly within the platform for sophisticated analysis like predictive modeling and customer segmentation based on ad data.

Automation and Efficiency

Automating data transfer from Facebook Ads to BigQuery reduces manual efforts and errors associated with data handling, increasing operational efficiency.


Complexity of Integration

Setting up a reliable and automated pipeline from Facebook Ads to BigQuery can be technically complex, requiring knowledge of APIs, data formats, and possibly third-party integration tools.

Data Consistency and Quality

Ensuring that the data transferred retains its integrity and is correctly formatted for analysis in BigQuery can be challenging. Discrepancies or errors in data can lead to inaccurate analytics.

Cost Management

BigQuery charges for data storage, streaming inserts, and queries. High volumes of ad data and frequent querying without optimization can lead to unexpected costs.

Compliance and Privacy

Transferring and analyzing personal data from Facebook Ads necessitates adherence to data protection regulations (e.g., GDPR, CCPA). Ensuring compliance adds another layer of complexity.

Dependency on External Platforms

Any changes in Facebook’s API for BigQuery’s features may require adjustments to the integration pipeline. Maintaining the pipeline is about keeping up with updates and modifications from both platforms.

Data Latency

While near real-time analysis is a goal, latency issues can be based on the data transfer method and processing, affecting timely decision-making.

What’s the best method for transferring data from Facebook Ads to BigQuery?

Choosing the best method for transferring data from Facebook Ads to BigQuery depends on data volume, frequency of updates, technical expertise, and specific business needs. 

Here’s a comparison table of the most valuable methods to help identify the best approach for your situation.

Feature/AspectManual Export/ImportCustom Integration (APIs)Third-party ETL Tools
Technical Skill RequiredLowHighLow
Real-time Data TransferNoYesDepends on the tool
Initial Setup ComplexityLowHighLow
Maintenance EffortHigh (for repeated use)MediumLow
CostFreeVariable (development cost)Subscription-based
Data Transformation CapabilitiesManualManual or Automated (coding required)Automated (tool-dependent)
Best for Use CasesOne-time or infrequent transfersHigh-volume, real-time analyticsRegular syncs without heavy coding


In real business, the best tool for integrating Facebook Ads data into Google BigQuery varies by each company’s specific needs, technical capabilities, budget, and strategic goals. Third-party ETL tools often provide a good balance between ease of use and functionality for many businesses. At the same time, organizations with specific needs and the capacity to build custom integrations might opt for API-based solutions. And, of course, you can select your own scenario. But remember that all your steps must be simple and not to confuse the user.

Nata Kuznetsova
Nata Kuznetsova
Nata Kuznetsova is a seasoned writer with nearly two decades of experience in technical documentation and user support. With a strong background in IT, she offers valuable insights into data integration, backup solutions, software, and technology trends.



Skyvia podcast