X Ads Connector to Azure Synapse
Own your X (Twitter) Ads data in Azure Synapse with OWOX Data Marts. Collect granular, analytics-ready X (Twitter) Ads data into Azure Synapse, control schema and refresh logic, and reuse the data across BI tools and AI Insights.
X Ads endpoints
10 X Ads endpoints you can import. Each lands in its own table in your warehouse.
Accounts
Advertising accounts — name, business, country, timezone, and approval status.
12 fieldsx_ads_accountsAd Performance
Daily ad performance by placement — impressions, clicks, spend, engagements, and social actions.
20 fieldsTime seriesx_ads_statsAd Performance by Country
Daily ad performance broken down by country — impressions, clicks, spend, engagements, and social actions.
21 fieldsTime seriesx_ads_stats_by_countryAll Cards
All card types with full creative details — type, title, destination URL, call to action, and media.
28 fieldsx_ads_cards_allCampaigns
Your campaigns — status, budget optimization, daily and total budget, and currency.
19 fieldsx_ads_campaignsCards
Website and app cards — type, URI, and components.
8 fieldsx_ads_cardsLine Items
Line items within campaigns — bid strategy, goal, product type, budget, and schedule.
33 fieldsx_ads_line_itemsPromoted Tweets
Tweets promoted as ads — status, approval, and links to their tweets and line items.
8 fieldsx_ads_promoted_tweetsTargeting Locations
Reference table of location IDs with names and country codes — join targeting_value with the country field in Ad Performance by Country.
4 fieldsx_ads_targeting_locationsTweets
Original tweets used as ad creatives — text, type, language, engagement counts, and card URI.
34 fieldsx_ads_tweets
X Ads data schema
Accounts 12 fields · x_ads_accounts
| Field | Type | Description |
|---|---|---|
name | STRING | The name of the account |
business_name | STRING | The business name associated with the account |
timezone | STRING | The timezone of the account |
timezone_switch_at | DATETIME | When the timezone was last switched |
country_code | STRING | The country code of the account (e.g. SI) |
id | STRING | The unique identifier for the account |
created_at | DATETIME | When the account was created |
updated_at | DATETIME | When the account was last updated |
industry_type | STRING | The industry type of the account |
business_id | STRING | The business identifier associated with the account |
approval_status | STRING | The approval status of the account (e.g. ACCEPTED) |
deleted | BOOLEAN | Whether the account is deleted |
Ad Performance 20 fields · x_ads_stats
| Field | Type | Description |
|---|---|---|
id | STRING | The unique identifier for the stats record. |
date | STRING | The date for which the statistics were collected. |
placement | STRING | The placement type (ALL_ON_TWITTER or PUBLISHER_NETWORK). |
impressions | INTEGER | Number of impressions. |
tweets_send | INTEGER | Number of tweets sent. |
billed_charge_local_micro | INTEGER | Billed amount in micros. |
qualified_impressions | INTEGER | Number of qualified impressions. |
follows | INTEGER | Number of follows. |
app_clicks | INTEGER | Number of app clicks. |
retweets | INTEGER | Number of retweets. |
unfollows | INTEGER | Number of unfollows. |
likes | INTEGER | Number of likes. |
engagements | INTEGER | Number of engagements. |
clicks | INTEGER | Number of clicks. |
card_engagements | INTEGER | Number of card engagements. |
poll_card_vote | INTEGER | Number of poll card votes. |
replies | INTEGER | Number of replies. |
url_clicks | INTEGER | Number of URL clicks. |
billed_engagements | INTEGER | Number of billed engagements. |
carousel_swipes | INTEGER | Number of carousel swipes. |
Ad Performance by Country 21 fields · x_ads_stats_by_country
| Field | Type | Description |
|---|---|---|
id | STRING | The unique identifier for the stats record. |
date | STRING | The date for which the statistics were collected. |
placement | STRING | The placement type (ALL_ON_TWITTER or PUBLISHER_NETWORK). |
country | STRING | Location ID from X Ads (hex string, e.g. 96683cc9126741d1). Join with the targeting_locations node to get the human-readable name and country code. |
impressions | INTEGER | Number of impressions. |
tweets_send | INTEGER | Number of tweets sent. |
billed_charge_local_micro | INTEGER | Billed amount in micros. |
qualified_impressions | INTEGER | Number of qualified impressions. |
follows | INTEGER | Number of follows. |
app_clicks | INTEGER | Number of app clicks. |
retweets | INTEGER | Number of retweets. |
unfollows | INTEGER | Number of unfollows. |
likes | INTEGER | Number of likes. |
engagements | INTEGER | Number of engagements. |
clicks | INTEGER | Number of clicks. |
card_engagements | INTEGER | Number of card engagements. |
poll_card_vote | INTEGER | Number of poll card votes. |
replies | INTEGER | Number of replies. |
url_clicks | INTEGER | Number of URL clicks. |
billed_engagements | INTEGER | Number of billed engagements. |
carousel_swipes | INTEGER | Number of carousel swipes. |
All Cards 28 fields · x_ads_cards_all
| Field | Type | Description |
|---|---|---|
id | STRING | The unique identifier for the card |
name | STRING | The name of the card |
card_type | STRING | Type of the card (e.g. IMAGE_APP_DOWNLOAD, VIDEO_WEBSITE) |
card_uri | STRING | URI of the card |
created_at | DATETIME | ISO-8601 timestamp when the card was created |
updated_at | DATETIME | ISO-8601 timestamp when the card was last updated |
deleted | BOOLEAN | Whether the card is deleted |
googleplay_app_id | STRING | Google Play application ID |
country_code | STRING | Country code associated with the app or destination |
wide_app_image | STRING | URL to the wide-aspect-ratio image used by the app card |
image_display_width | STRING | Width (in pixels) of the primary image displayed with the card |
image_display_height | STRING | Height (in pixels) of the primary image displayed with the card |
app_cta | STRING | Call-to-action used on the app card (e.g. INSTALL, OPEN) |
title | STRING | Title shown on the card |
website_url | STRING | Canonical website URL |
website_dest_url | STRING | Destination URL used for clicks |
website_display_url | STRING | Display URL shown on the card |
website_shortened_url | STRING | Shortened (t.co) URL placed in the card |
video_url | STRING | URL of the video file or VMAP |
video_hls_url | STRING | HLS streaming URL |
video_poster_url | STRING | Poster image displayed before video playback |
video_content_id | STRING | Internal content identifier of the video |
video_owner_id | STRING | User ID of the video owner |
content_duration_seconds | STRING | Video duration in seconds |
video_width | STRING | Original width of the video |
video_height | STRING | Original height of the video |
video_poster_width | STRING | Width of the video poster image |
video_poster_height | STRING | Height of the video poster image |
Campaigns 19 fields · x_ads_campaigns
| Field | Type | Description |
|---|---|---|
name | STRING | The name of the campaign |
budget_optimization | STRING | Budget optimization strategy (e.g. LINE_ITEM) |
reasons_not_servable | ARRAY | Reasons why the campaign is not servable |
servable | BOOLEAN | Whether the campaign is servable |
purchase_order_number | STRING | Purchase order number |
effective_status | STRING | Effective status of the campaign (e.g. PAUSED) |
daily_budget_amount_local_micro | INTEGER | Daily budget amount in micros (nullable) |
funding_instrument_id | STRING | ID of the funding instrument |
duration_in_days | INTEGER | Duration of the campaign in days (nullable) |
standard_delivery | BOOLEAN | Whether standard delivery is enabled (nullable) |
total_budget_amount_local_micro | INTEGER | Total budget amount in micros (nullable) |
id | STRING | The unique identifier for the campaign |
entity_status | STRING | Entity status of the campaign |
frequency_cap | INTEGER | Frequency cap (nullable) |
currency | STRING | Currency code (e.g. USD) |
created_at | DATETIME | Timestamp when the campaign was created |
updated_at | DATETIME | Timestamp when the campaign was last updated |
deleted | BOOLEAN | Whether the campaign is deleted |
account_id | STRING | ID of the account |
Cards 8 fields · x_ads_cards
| Field | Type | Description |
|---|---|---|
id | STRING | The unique identifier for the card. |
name | STRING | The name of the card. |
card_type | STRING | Type of the card. |
card_uri | STRING | URI of the card. |
created_at | DATETIME | When the card was created. |
updated_at | DATETIME | When the card was last updated. |
deleted | BOOLEAN | Whether the card is deleted. |
components | ARRAY | Card components including media and buttons. |
Line Items 33 fields · x_ads_line_items
| Field | Type | Description |
|---|---|---|
advertiser_user_id | STRING | ID of the advertiser user |
name | STRING | Name of the line item |
placements | ARRAY | List of placement targets (e.g. ALL_ON_TWITTER) |
start_time | DATETIME | Line item start time |
bid_amount_local_micro | INTEGER | Bid amount in micro-currency units |
advertiser_domain | STRING | Domain of the advertiser |
target_cpa_local_micro | INTEGER | Target CPA (cost per action) in micro-currency units |
primary_web_event_tag | STRING | Primary web event tag identifier |
goal | STRING | Line item goal/objective (e.g. APP_INSTALLS) |
daily_budget_amount_local_micro | INTEGER | Daily budget in micro-currency units |
product_type | STRING | Product type (e.g. PROMOTED_TWEETS) |
end_time | DATETIME | Line item end time (nullable) |
funding_instrument_id | STRING | ID of the funding instrument |
bid_strategy | STRING | Bidding strategy (e.g. AUTO) |
duration_in_days | INTEGER | Duration in days (nullable) |
standard_delivery | BOOLEAN | Whether standard delivery is enabled |
total_budget_amount_local_micro | INTEGER | Total budget in micro-currency units (nullable) |
objective | STRING | Campaign objective (duplicate of goal in some APIs) |
id | STRING | Unique identifier of the line item |
entity_status | STRING | Status of the line item (e.g. ACTIVE, PAUSED) |
automatic_tweet_promotion | BOOLEAN | Whether automatic tweet promotion is enabled |
frequency_cap | INTEGER | Frequency cap for ad serving |
android_app_store_identifier | STRING | Android app store identifier |
categories | ARRAY | Array of category labels |
currency | STRING | Currency code (e.g. USD) |
pay_by | STRING | Payment method (e.g. IMPRESSION) |
created_at | DATETIME | Timestamp when the line item was created |
ios_app_store_identifier | STRING | iOS app store identifier |
updated_at | DATETIME | Timestamp when the line item was last updated |
campaign_id | STRING | ID of the parent campaign |
creative_source | STRING | Source of the creative (e.g. MANUAL) |
audience_expansion | STRING | Audience expansion setting (e.g. EXPANDED) |
deleted | BOOLEAN | Whether the line item is marked as deleted |
Promoted Tweets 8 fields · x_ads_promoted_tweets
| Field | Type | Description |
|---|---|---|
line_item_id | STRING | ID of the parent line item |
id | STRING | Unique identifier for the promoted tweet |
entity_status | STRING | Status of the promoted tweet (e.g., ACTIVE, PAUSED) |
created_at | DATETIME | Timestamp when the promoted tweet was created |
updated_at | DATETIME | Timestamp when the promoted tweet was last updated |
approval_status | STRING | Approval status of the promoted tweet (e.g., ACCEPTED, REJECTED) |
tweet_id | STRING | ID of the original tweet |
deleted | BOOLEAN | Flag indicating whether the promoted tweet has been deleted |
Targeting Locations 4 fields · x_ads_targeting_locations
| Field | Type | Description |
|---|---|---|
targeting_value | STRING | Unique hex ID for this location (e.g. 96683cc9126741d1). Use this to join with the country field in stats_by_country. |
name | STRING | Human-readable location name (e.g. United States, California). |
location_type | STRING | Type of location: COUNTRIES, REGIONS, CITIES, METROS, or POSTAL_CODES. |
country_code | STRING | ISO 2-letter country code (e.g. US, DE, NL). |
Tweets 34 fields · x_ads_tweets
| Field | Type | Description |
|---|---|---|
coordinates | OBJECT | The geographic coordinates (latitude/longitude) of the tweet, if available. |
retweeted | BOOLEAN | Whether this tweet is a retweet of another tweet. |
name | STRING | A custom name or label for the tweet. |
conversation_settings | STRING | Who can reply or interact with the tweet (e.g. EVERYONE). |
source | STRING | HTML markup indicating the client or interface used to post the tweet. |
entities | OBJECT | Parsed entities in the tweet (mentions, hashtags, URLs, media, etc.). |
display_text_range | ARRAY | Start/end indices for which portion of the tweet text to display. |
favorite_count | INTEGER | Number of times the tweet has been liked. |
in_reply_to_status_id_str | STRING | ID (as string) of the tweet this one is replying to. |
geo | OBJECT | Deprecated geographic information, if present. |
id_str | STRING | The tweet’s unique identifier, as a string. |
scopes | OBJECT | Visibility scopes (e.g. { followers: false }). |
in_reply_to_user_id | INTEGER | Numeric ID of the user this tweet is replying to. |
truncated | BOOLEAN | Whether the tweet text has been truncated. |
retweet_count | INTEGER | Number of times this tweet has been retweeted. |
scheduled_status | STRING | Scheduled status (e.g. pending scheduling), if any. |
id | INTEGER | The tweet’s unique identifier, as a number. |
in_reply_to_status_id | INTEGER | Numeric ID of the tweet this one is replying to. |
possibly_sensitive | BOOLEAN | Whether the tweet may contain sensitive content. |
nullcast | BOOLEAN | Whether the tweet is nullcast (not shown on timeline). |
created_at | STRING | Creation timestamp of the tweet. |
place | OBJECT | Place (location) associated with the tweet, if any. |
scheduled_at | STRING | When the tweet was scheduled for posting. |
tweet_type | STRING | Type of tweet (e.g. PUBLISHED). |
favorited | BOOLEAN | Whether the authenticated user has liked the tweet. |
card_uri | STRING | URI of the associated Twitter Card. |
full_text | STRING | The full text content of the tweet. |
lang | STRING | Language code of the tweet (e.g. en). |
contributors | ARRAY | Array of contributors to the tweet, if any. |
in_reply_to_screen_name | STRING | Screen name of the user this tweet is replying to. |
in_reply_to_user_id_str | STRING | ID (as string) of the user this tweet is replying to. |
user | OBJECT | The user object of the author (contains id, id_str, etc.). |
tweet_id | STRING | Duplicate of id_str (the tweet’s ID as a string). |
extended_entities | OBJECT | Extended media entities (e.g. video variants, additional media info). |
Data Partner You Can Trust
users
175K
Executives and data analysts across 20+ industries
G2 rating
4.9★
“A trusted data analytics partner” — verified review
Customers
Every claim has a receipt.
Real things real customers said — each quote pinned to a specific claim, straight from the quotes database.
“AI, by the nature of the models, will hallucinate. And because of that, you need something which will create guardrails to ensure that there are no hallucinations, that you can trust your data.”
“We had six or seven different channels and no single source of truth — it was almost impossible, a lot of guesswork.”
“We regained time. And time is the one resource that never comes back.”


