DatriseAI-first ETL

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.

Incremental syncSchema-aware mapping43 destinations available

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.

ObjectLanding tableSync mode
campaign metricstwitter_x_ads_campaign_metricsAppend-only, incremental by timestamp
spendtwitter_x_ads_spendUpsert by primary key, incremental on updated-at
engagementtwitter_x_ads_engagementUpsert by primary key, incremental on updated-at
ad conversion performancetwitter_x_ads_ad_conversion_performanceUpsert 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.

APIX Ads API v12 (ads-api.x.com)
AuthenticationOAuth 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.
Paginationcursor — 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 limitpublished 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 cursorupdated_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.
WebhooksNo
Bulk exportYes — 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 detectableYes — 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.

Official API reference

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).

Compare this against every other documented API

Popular destinations for Twitter/X Ads

Choose a destination below to open the ready pipeline page.

  • A
    Airtable

    Relational spreadsheet destination for ops and go-to-market teams.

    View pipeline
  • A
    Amazon Athena

    Serverless SQL over S3 data lake tables.

    View pipeline
  • A
    Amazon DynamoDB

    Serverless key-value and document store on AWS.

    View pipeline
  • A
    Amazon QuickSight

    AWS serverless BI with SPICE and embedded analytics.

    View pipeline
  • A
    Amazon Redshift

    AWS petabyte-scale warehouse with Spectrum.

    View pipeline
  • A
    Amazon S3 Data Lake

    Object storage landing zone for parquet and snapshots.

    View pipeline
  • A
    Apache Superset

    Open-source BI for SQL exploration, charts, and dashboard publishing.

    View pipeline
  • A
    Azure Data Lake Storage

    ADLS Gen2 object storage for analytics workloads.

    View pipeline
  • A
    Azure 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.