How to connect Facebook Ads to BigQuery with OWOX Data Marts
Facebook Ads to Google BigQuery in OWOX Data Marts takes five steps: create a Data Mart, choose the Facebook Ads connector, sign in with Facebook, pick the data, publish. Then add a trigger and it refreshes on its own.

If you rebuild the same Facebook Ads export every week, the fix is to stop exporting. Load the data into Google BigQuery once, keep it refreshing on a schedule, and write your SQL against a table that is always there.
In OWOX Data Marts that takes five steps and no developer app: you sign in with Facebook, choose what to load, and publish. This guide walks through them on OWOX Cloud, with screenshots from the product.
What you need
- An OWOX Cloud account. Sign up if you do not have one.
- A Google BigQuery storage in OWOX Data Marts. Add it under Storages, or create it while you set up the Data Mart. More on Google BigQuery as a storage.
- A Facebook user with access to the ad account, as Admin, Advertiser or Analyst. Without that role Meta returns empty results or a permission error.
- The numeric ad account ID. Find it in Meta Ads Manager under Account Overview, and leave out the
act_prefix.
Step 1: Create the Data Mart
Click New Data Mart, give it a title, choose your Google BigQuery storage and click Create Data Mart. If you have no storage yet, pick Create new storage in the same dropdown.

OWOX Data Marts
See your first report built in real time. 15 minutes.
- Connect your data warehouse
- Pick your metrics
- Get a live Google Sheets report
In the time it takes to write a ticket. Then imagine never writing that ticket again.
Book a DemoWe'll use your actual use case
Step 2: Choose the Facebook Ads connector
Step 2: Choose the Facebook Ads connector
On the Data Setup tab, set Input Source to Connector and click Setup Connector. Choose Facebook Ads in the list and click Next.

Step 3: Sign in with Facebook
Click Continue with Facebook and sign in with the Facebook user that can see the ad account. There is no Meta app to create and no token to copy.

After the sign-in the button reads Authenticated as and your name. Enter the Account ID. To load several ad accounts into one Data Mart, separate the IDs with commas or semicolons; the Facebook user must have access to each one.

OWOX renews the Facebook authorization on its own while Meta keeps the grant valid. If the user later loses access to the ad account or revokes the app, sign in again here.
If you would rather use your own Meta app, choose Manually instead and paste an Access Token, App ID and App Secret. The credentials guide shows how to create them. Most people do not need it.
Step 4: Choose what to load
Pick the data you want. Ad Insights is the one for performance reporting: daily impressions, clicks, spend and conversions for each ad. Each Data Mart loads one of these, so create another Data Mart for each extra one, such as Ad Creatives or Ad Account.

Keep the default fields or add more. The key fields stay selected.

Name the dataset and the table. Both are created on the first run if they do not exist yet.

Click Save.
Step 5: Publish and run
Click Publish & Run Data Mart. The first run loads data from the first day of the previous month and can take a few minutes.

The Data Mart is now published. To load older history, use Manual Run on the same screen and choose the dates.

Run History shows every run and its status.

Step 6: Keep it fresh
Open Triggers, add a trigger, choose Connector Run and set how often it runs: daily at a time and time zone you pick, weekdays, hourly or every few hours. Click Create trigger.

From here the table updates on its own.

What to do with the data
The table is raw Facebook Ads data, one row per ad per day. Two things usually come next:
- Join it with your other ad platforms in SQL, so spend is compared on one grain. The unified ad report guide shows that query.
- Publish it where people read it. The same Data Mart can feed a Google Sheets report, Slack or email, so the number in the sheet matches the number in BigQuery.
OWOX Data Marts loads the data and publishes what you build on it. The SQL that turns it into metrics stays yours.
Other ways to get Facebook Ads data into BigQuery
Other ways to get Facebook Ads data into BigQuery
This connector is one of three routes. Which one fits depends on how often you need the data and who will look after it.
| Way | Effort | Stays current | Fits |
|---|---|---|---|
| Export a report from Meta Ads Manager and upload the file | minutes, every time | no | a one-off look |
| BigQuery Data Transfer Service, which lists Facebook Ads among its sources | a form in the Google Cloud console | on a schedule | teams that want Google’s fixed schema and load only into BigQuery |
| A connector, as described above | about ten minutes | on a schedule | teams that choose their own fields or load several ad platforms the same way |
For the file route, how to upload data to BigQuery covers the upload. All the loading routes are compared in loading data into BigQuery.
Instagram ads, Page insights and public data
Instagram ads, Page insights and public data
Instagram ads are in the same data. Instagram placements are bought through the same Meta ad account as Facebook placements, and the Marketing API reports them together. To see Instagram on its own, split performance by placement. There is no separate “Instagram Ads to BigQuery” connection to set up.
Organic data is not. Facebook Page insights, Instagram insights such as followers and reach of posts, and public data about other pages come from different Meta APIs. This connector reads the Marketing API, which covers ads, so it does not import them. If you need those, check the list of data sources, or request one on GitHub.
Not on BigQuery?
The same connector loads into the other warehouses OWOX Data Marts supports: Snowflake, AWS Redshift, AWS Athena and Databricks.
OWOX Data Marts is also open source. If you run it yourself, connect Facebook with the manual credentials described in Step 3.
Turn your data into decisions.
Governed data marts give you the clean foundation ML needs to actually work.
- No AI hallucinations
- Analyst-governed definitions
- Every number traces to SQL
Frequently Asked Questions
Do I need a Meta developer app to connect Facebook Ads?
No. On OWOX Cloud you click Continue with Facebook and sign in with a Facebook user who can access the ad account. A Meta app, access token, App ID and App Secret are only needed if you choose to connect manually, for example on a self-managed install.
Which Facebook Ads data can I load into BigQuery?
Each Data Mart loads one kind of data. Ad Insights gives daily impressions, clicks, spend and conversions for each ad; other options include Ad Account, Ads, Ad Creatives and breakdowns by age and gender. You keep the default fields or choose your own.
How often does the Facebook Ads data refresh?
As often as you set it. Add a Connector Run trigger on the Data Mart and choose daily at a set time, weekdays, hourly or every few hours. The first run loads from the first day of the previous month; use Manual Run to load older dates.
Can I load several ad accounts into one table?
Yes. Enter the numeric account IDs separated by commas or semicolons, without the act_ prefix. The Facebook user you signed in with must have access to every account in the list.
Does it load Facebook Page insights?
No. The connector loads Facebook Ads data: ad accounts, ads, creatives and their performance. Organic Page insights are not part of it.
Is the Facebook Ads connector free?
The connector is open source and free when you run OWOX Data Marts yourself. OWOX Cloud has its own pricing. Google BigQuery bills you for storage and queries in your own project.



