---
title: "X Ads (Twitter Ads) to BigQuery with OWOX Data Marts"
canonical: "https://www.owox.com/blog/articles/free-x-ads-to-bigquery-connector"
updated: "2026-11-13"
---

# How to connect X Ads (Twitter Ads) to BigQuery with OWOX Data Marts

X Ads to Google BigQuery in OWOX Data Marts: get four keys from an X developer app with Ads API access, create a Data Mart, choose the X Ads connector, enter the keys, pick the data and publish. Then add a trigger and it refreshes on its own.

[Data Integration](/blog/topics/data-integration) · Updated October 26, 2026 · [Vadym Kramarenko](/team/vadym-kramarenko) · 6 min read

![How to connect X Ads (Twitter Ads) to BigQuery with OWOX Data Marts](https://cdn.owox.com/www/content-marketing-article/free-x-ads-to-bigquery-connector/thumbnail/1-hxmqn0.png/public)

X Ads (formerly Twitter Ads) keeps campaign numbers inside its own Ads Manager. To put them next to your other channels you need them in Google BigQuery, loaded on a schedule.

[OWOX Data Marts](https://www.owox.com/app-signup) does the loading: you create a Data Mart, enter your X credentials once, choose what to load, and publish. Nothing to install. This guide walks through it on OWOX Cloud.

X has no one-click sign-in for its Ads API. You need a developer app, Ads API access that X approves by hand, and four keys. That is Step 1, and it is the longest part.

## What you need

*   **An OWOX Cloud account.** [Sign up](https://www.owox.com/app-signup) 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](/data-storages/google-bigquery).
*   **An X account that runs the ads**, to create the developer app and authorize it.
*   **Postman or a similar tool** for two API requests in Step 1.
*   **The ad account ID.** It is in the address bar of ads.x.com: in `https://ads.x.com/campaign_form/18ce55in6wt/campaign/new` the ID is `18ce55in6wt`.

## Step 1: Get your X Ads credentials

You will leave this step with four values: a Consumer Key, a Consumer Secret, an Access Token and an Access Token Secret. The first two identify your developer app; the second two prove the app may read your ad account. The [credentials guide](https://docs.owox.com/packages/connectors/src/sources/xads/credentials/) in the OWOX docs shows every screen.

**Create a developer app.** Go to the [X Developer Console](https://console.x.com/) and sign in with the X account that runs your ads. Click **Start Building** and create a project: any name, with the use case **Exploring the API**. On the **Apps** page, choose the Free tier and click **Create App**, give it a name such as OWOX Ads Connector, and click **Create New Client Application**. X shows the **Consumer Key** and **Secret Key** once: copy both into a password manager.

**Request Ads API access.** A developer app does not include the Ads API; you ask for it with the [Ads API access form](https://docs.x.com/forms/ads-api-access). The form asks for the App ID: the number next to the **ACTIVE** badge on the app’s page. Describe the data the connector needs, analytics, campaign management and creatives, which is Standard access. For example: “We are advertisers connecting to the X Ads API to access campaign analytics, campaign management and ad creative data for reporting and optimization. The data will be imported via the OWOX Data Marts platform.” X reviews requests within three business days. Wait for the approval email before you go on.

If you lost the keys from the first step, open the app’s **Keys & Tokens** tab and click **Regenerate** under **OAuth 1.0 Keys**. That invalidates the old pair.

**Get a temporary token.** In Postman, make a **POST** request to `https://api.x.com/oauth/request_token`. On the **Authorization** tab choose **OAuth 1.0**, with:

*   **Signature Method:** HMAC-SHA1
*   **Consumer Key:** your Consumer Key
*   **Consumer Secret:** the Secret Key

Click **Send**. The response is one line, `oauth_token=...&oauth_token_secret=...&oauth_callback_confirmed=true`. Keep the `oauth_token` and `oauth_token_secret` values.

**Authorize the app.** Open `https://api.x.com/oauth/authorize?oauth_token=` followed by your `oauth_token` in the browser and click **Authorize app**. X shows a numeric PIN; copy it. The temporary token expires quickly, so do the next request right away.

**Exchange it for the permanent tokens.** In a new Postman tab, make a **POST** request to `https://api.x.com/oauth/access_token`, again with **OAuth 1.0**:

*   **Consumer Key** and **Consumer Secret:** as before
*   **Access Token:** the temporary `oauth_token`
*   **Access Token Secret:** the temporary `oauth_token_secret`
*   **Verifier:** the PIN

Click **Send**. In the response, `oauth_token` is your **Access Token** and `oauth_token_secret` is your **Access Token Secret**. These two are permanent.

Keep all four values private: anyone holding them can read the ad account.

## Step 2: 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.

![The Create Data Mart form in OWOX Data Marts with a title and a Google BigQuery storage selected](https://cdn.owox.com/www/content-marketing-article/free-x-ads-to-bigquery-connector/screens/1.png/public)

## Step 3: Choose the X Ads connector and enter the credentials

On the **Data Setup** tab, set **Input Source** to **Connector** and click **Setup Connector**. Choose **X Ads** in the list and click **Next**.

Fill in the settings:

*   **Consumer Key** and **Consumer Secret**: from the Keys and Tokens tab of your X app.
*   **Access Token** and **Access Token Secret**: the permanent tokens from the last Postman response.
*   **Account ID**: the ad account to load. Separate several accounts with commas.

![The X Ads connector settings in OWOX Data Marts with the Consumer Key, Consumer Secret, Access Token, Access Token Secret and Account ID fields, step 2 of 5](https://cdn.owox.com/www/content-marketing-article/free-x-ads-to-bigquery-connector/screens/2.png/public)

The rest sits under **Advanced settings** and is optional for a first run.

## Step 4: Choose what to load

Pick the data you want. **Ad Performance** is the one for reporting: daily impressions, clicks, spend and engagements. Campaigns, line items and promoted tweets carry the names and settings. Each Data Mart loads one of them, so create another Data Mart for each extra one.

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.

![A draft X Ads Data Mart in OWOX Data Marts with the Publish & Run Data Mart button](https://cdn.owox.com/www/content-marketing-article/free-x-ads-to-bigquery-connector/screens/3.png/public)

To load older history, use **Manual Run** on the same screen and choose the dates. **Run History** shows every run and its status.

![The Manual Run dialog in OWOX Data Marts with Backfill (custom period) selected and empty Start Date and End Date fields](https://cdn.owox.com/www/content-marketing-article/free-x-ads-to-bigquery-connector/screens/5.png/public)

![The Run History tab of an X Ads Data Mart in OWOX Data Marts with a successful manual connector run](https://cdn.owox.com/www/content-marketing-article/free-x-ads-to-bigquery-connector/screens/4.png/public)

## 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 X Ads data, at the grain of the data you chose. 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](/blog/articles/unified-ad-report-google-sheets) shows that query.
*   **Publish it where people read it.** The same Data Mart can feed a [destination](/data-destinations) such as a [Google Sheets report](/blog/articles/free-x-ads-to-google-sheets-connector), 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.

## Not on BigQuery?

The same connector loads into the other [data storages](/data-storages) OWOX Data Marts supports: [Snowflake](/connectors/free-x-ads-connector-to-snowflake), [AWS Redshift](/connectors/free-x-ads-connector-to-aws-redshift), [AWS Athena](/connectors/free-x-ads-connector-to-aws-athena) and [Databricks](/connectors/free-x-ads-connector-to-databricks).

OWOX Data Marts is also [open source](https://github.com/OWOX/owox-data-marts). If you run it yourself, the X credentials from Step 1 work the same way.

## FAQ

## Frequently Asked Questions

Can I change the date range that is loaded?

Yes. The first run loads data from the first day of the previous month. For older data, open Manual Run, choose Backfill and set the start and end dates.

How often does the X Ads data refresh?

As often as the trigger you add on the Triggers tab: daily at a time you choose, on weekdays, hourly or every few hours. You can also start a run by hand at any time with Manual Run.

Do I need coding skills to connect X Ads to BigQuery?

No code, but two API requests. The setup in OWOX Data Marts is point and click. Getting the X access tokens takes two requests in a tool such as Postman, described in Step 1.

Is the X Ads (Twitter Ads) to BigQuery connector free?

The connector is open source and free to run yourself with the open-source edition of OWOX Data Marts. You pay Google for BigQuery storage and queries. The same connector is available on OWOX Cloud, where there is no server to maintain.

What data can I import from Twitter Ads to BigQuery using this connector?

You choose the endpoint and the fields in the data mart. The Ad Performance endpoint loads into the x\_ads\_stats table with metrics such as impressions, clicks and billed spend. The X Ads connector exposes no conversion fields, so conversions come from another source if you need them.

## Who wrote this

![Vadym Kramarenko](https://cdn.owox.com/www/webflow/6798e703afdf787334941cde_Vadym-Kramarenko.png/public)

[Vadym Kramarenko](/team/vadym-kramarenko) Growth Marketing Manager

Vadym Kramarenko is a Growth Marketing Manager at OWOX, where he drives user acquisition and product-led growth strategies. He hosts the OWOX podcast, interviewing analytics professionals about data-driven marketing, attribution, and reporting best practices. Vadym specializes in turning complex analytics concepts into practical, actionable marketing frameworks.

[LinkedIn](https://www.linkedin.com/in/vadim-kramarenko/) · [All articles](/team/vadym-kramarenko)

[Data Integration](/blog/topics/data-integration)

## Related articles

[Data Integration · How to Connect Facebook Ads to Google Sheets with OWOX Data Marts · September 30, 2026](/blog/articles/free-facebook-ads-connector-to-google-sheets)

[Google BigQuery · How to Connect BigQuery to Google Sheets: Three Ways · October 6, 2026](/blog/articles/bigquery-reports-in-google-sheets)

[Data Integration · CRM and Digital Marketing Data Integration: A Practical Guide · September 30, 2026](/blog/articles/crm-and-online-data-integration-guide)

[See all articles →](/blog/articles)

## Links

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Data Integration](https://www.owox.com/blog/topics/data-integration) — /blog/topics/data-integration.md
- [Vadym Kramarenko](https://www.owox.com/team/vadym-kramarenko) — /team/vadym-kramarenko.md
- [OWOX Data Marts](https://www.owox.com/app-signup)
- [Google BigQuery as a storage](https://www.owox.com/data-storages/google-bigquery) — /data-storages/google-bigquery.md
- [credentials guide](https://docs.owox.com/packages/connectors/src/sources/xads/credentials)
- [unified ad report guide](https://www.owox.com/blog/articles/unified-ad-report-google-sheets) — /blog/articles/unified-ad-report-google-sheets.md
- [destination](https://www.owox.com/data-destinations) — /data-destinations.md
- [Google Sheets report](https://www.owox.com/blog/articles/free-x-ads-to-google-sheets-connector) — /blog/articles/free-x-ads-to-google-sheets-connector.md
- [data storages](https://www.owox.com/data-storages) — /data-storages.md
- [Snowflake](https://www.owox.com/connectors/free-x-ads-connector-to-snowflake) — /connectors/free-x-ads-connector-to-snowflake.md
- [AWS Redshift](https://www.owox.com/connectors/free-x-ads-connector-to-aws-redshift) — /connectors/free-x-ads-connector-to-aws-redshift.md
- [AWS Athena](https://www.owox.com/connectors/free-x-ads-connector-to-aws-athena) — /connectors/free-x-ads-connector-to-aws-athena.md
- [Databricks](https://www.owox.com/connectors/free-x-ads-connector-to-databricks) — /connectors/free-x-ads-connector-to-databricks.md
- [Data Integration · How to Connect Facebook Ads to Google Sheets with OWOX Data Marts · September 30,…](https://www.owox.com/blog/articles/free-facebook-ads-connector-to-google-sheets) — /blog/articles/free-facebook-ads-connector-to-google-sheets.md
- [Google BigQuery · How to Connect BigQuery to Google Sheets: Three Ways · October 6, 2026](https://www.owox.com/blog/articles/bigquery-reports-in-google-sheets) — /blog/articles/bigquery-reports-in-google-sheets.md
- [Data Integration · CRM and Digital Marketing Data Integration: A Practical Guide · September 30,…](https://www.owox.com/blog/articles/crm-and-online-data-integration-guide) — /blog/articles/crm-and-online-data-integration-guide.md
- [See all articles →](https://www.owox.com/blog/articles) — /blog/articles.md
