Source connector
X Ads connector
X Ads integration for databases, warehouses and BI tools
Ad performance source for X campaign analytics. Datrise captures Twitter/X Ads entities such as campaign metrics, spend, engagement, and ad conversion performance, then lands normalized and typed models for warehouse reporting, attribution, and AI workflows.
The X Ads API v12 (ads-api.x.com) authenticates with OAuth 1.0a, incremental runs key on updated_at, and X Ads caps calls at published per-window caps: 450 writes/minute, 10,000 core entity reads and 2,000 other account reads per 15 minutes at the ad-account level, 250 synchronous analytics requests and 5 global reads per 15 minutes at the user-token level, plus a limit of 100 concurrent asynchronous stats jobs per ad account.
Of the 4 objects, 3 sync as upserts keyed on the primary key and 1 as append-only streams, so each incremental run moves only what changed since the last watermark. Every object lands in its own table (for example `twitter_x_ads_campaign_metrics`) with a schema derived from the X Ads API rather than a flattened CSV, in any of the 43 supported destinations.
Datrise is in early access: pick a destination below to open the X Ads pipeline page, and join the waitlist to get the X Ads connector (Ads) with guided onboarding.
What Twitter/X Ads data Datrise extracts
Each object lands in its own typed table. Sync mode is derived from the object: history-style objects append, everything else upserts.
| Object | Landing table | Sync mode |
|---|---|---|
| campaign metrics | twitter_x_ads_campaign_metrics | Append-only, incremental by timestamp |
| spend | twitter_x_ads_spend | Upsert by primary key, incremental on updated-at |
| engagement | twitter_x_ads_engagement | Upsert by primary key, incremental on updated-at |
| ad conversion performance | twitter_x_ads_ad_conversion_performance | Upsert by primary key, incremental on updated-at |
Twitter/X Ads API: setup facts for the connector
Verified against the vendor documentation on 2026-09-14. Unknown values are left blank rather than guessed.
| API | X Ads API v12 (ads-api.x.com) |
|---|---|
| Authentication | OAuth 1.0a — The Ads API is OAuth 1.0a only: every HTTPS call to ads-api.x.com must carry an OAuth 1.0a signed Authorization header built from the app's consumer key/secret plus a user access token/secret for a user with advertising access, and the vendor documents no OAuth 2.0 or app-only bearer path for these endpoints. |
| Pagination | cursor — Collection GETs return an opaque `next_cursor` that you pass back as `cursor`, with `count` defaulting to 200 and capped at 1000, and `next_cursor` comes back null on the last page. |
| Rate limit | published per-window caps: 450 writes/minute, 10,000 core entity reads and 2,000 other account reads per 15 minutes at the ad-account level, 250 synchronous analytics requests and 5 global reads per 15 minutes at the user-token level, plus a limit of 100 concurrent asynchronous stats jobs per ad account |
| Incremental cursor | updated_at — Campaign-management entities carry `created_at` and `updated_at` and `sort_by` accepts `updated_at-desc` on campaigns, line items, promoted tweets and cards, but no updated-since query filter is documented, so incremental sync means paging newest-modified-first until you reach the last synced timestamp; analytics is windowed by `start_time`/`end_time` instead. |
| Webhooks | No |
| Bulk export | Yes — Asynchronous analytics jobs (POST stats/jobs/accounts/:account_id, poll GET stats/jobs/accounts/:account_id, then download the generated data file from the returned URL) |
| Deletes detectable | Yes — GET accounts, campaigns, line_items and funding_instruments accept `with_deleted` (default false) to include deleted results, and every entity carries a `deleted` boolean, so removals surface as flagged records rather than ids that silently disappear. |
What bites when replicating Twitter/X Ads
- Analytics requests accept at most 20 entity IDs each and cap the window at 7 days synchronously or 90 days asynchronously (45 days once you add segmentation), so an account-wide backfill fans out into many stats jobs rather than one call.
- Metrics are only finalized 24 hours after the fact and spend is generally final within 3 days, so a daily sync has to re-pull the trailing days instead of treating the first read of a date as settled.
- Entity endpoints publish no updated-since filter, so the only documented change-detection path is `sort_by=updated_at-desc` with cursor paging at `count` up to 1000, and every sync still walks the collection from the newest record.
- A standard developer app does not reach these endpoints: each app has to be approved through the Ads API Access Form, and only the Standard Access level covers Analytics, Campaign Management, Creatives and Custom Audiences (Conversion Only stops at the conversion endpoints).
Popular destinations for Twitter/X Ads
Choose a destination below to open the ready pipeline page.
- AAirtable
Relational spreadsheet destination for ops and go-to-market teams.
View pipeline - AAmazon Athena
Serverless SQL over S3 data lake tables.
View pipeline - AAmazon DynamoDB
Serverless key-value and document store on AWS.
View pipeline - AAmazon QuickSight
AWS serverless BI with SPICE and embedded analytics.
View pipeline - AAmazon Redshift
AWS petabyte-scale warehouse with Spectrum.
View pipeline - AAmazon S3 Data Lake
Object storage landing zone for parquet and snapshots.
View pipeline - AApache Superset
Open-source BI for SQL exploration, charts, and dashboard publishing.
View pipeline - AAzure Data Lake Storage
ADLS Gen2 object storage for analytics workloads.
View pipeline - AAzure Synapse
Microsoft analytics workspace with SQL pools.
View pipeline
Twitter/X Ads connector FAQ
- What X Ads data does the connector extract?
- 4 objects: campaign metrics, spend, engagement and ad conversion performance. Each lands in its own table with types preserved; history-style objects (1: campaign metrics) load as append-only streams.
- Is the X Ads integration incremental?
- Yes. After the initial full load, every run reads only records changed since the last watermark (updated-at or event timestamp) and applies an upsert or an append depending on the object.
- Where can I load X Ads data?
- Into 43 destinations: relational databases, cloud warehouses, data lakes, spreadsheets and BI tools. Each X Ads → destination pair has its own page with the object-to-table mapping.
Related Ads sources
Other sources in the same category, each with its own connector page.
Early access
Launch your Twitter/X Ads pipeline with guided onboarding
Join the waitlist to get priority access for Twitter/X Ads integrations with guided setup, schema-aware mapping, and production-grade incremental sync.