Ask TikTok Ads Questions in ChatGPT
Ask TikTok Ads questions in ChatGPT using OWOX Data Marts. Collect TikTok Ads data into a governed data mart, then get answers in ChatGPT via OWOX's MCP server — every number traces back to analyst-written SQL.
TikTok Ads endpoints
7 TikTok Ads endpoints you can import. Each lands in its own table in your warehouse.
Ad Groups
Ad groups within your campaigns — bid strategy, optimization goal, placement, and targeting schedule.
45 fieldstiktok_ads_ad_groupsAd Performance
Daily ad performance — impressions, clicks, spend, conversions, video views, and engagement.
39 fieldsTime seriestiktok_ads_ad_insightsAd Performance by Country
Daily ad performance broken down by country — impressions, clicks, spend, conversions, and video views.
40 fieldsTime seriestiktok_ads_ad_insights_by_countryAds
Individual ads — creative type, format, call to action, status, and links to their campaigns and ad groups.
46 fieldstiktok_ads_adsAdvertiser Account
Advertiser account — name, company, and currency.
4 fieldstiktok_ads_advertiserCampaigns
Your campaigns — objective, type, status, budget, and schedule.
34 fieldstiktok_ads_campaignsCustom Audiences
Custom audiences — type, size, validity status, and expiration.
9 fieldstiktok_ads_audiences
TikTok Ads data schema
Ad Groups 45 fields · tiktok_ads_ad_groups
| Field | Type | Description |
|---|---|---|
adgroup_id | STRING | Ad Group ID |
adgroup_name | STRING | Ad Group Name |
advertiser_id | STRING | Advertiser ID |
campaign_id | STRING | Campaign ID |
campaign_name | STRING | Campaign Name |
operation_status | STRING | Operation Status |
budget | NUMBER | Ad Group Budget |
budget_mode | STRING | Budget Mode (BUDGET_MODE_DAY or BUDGET_MODE_TOTAL) |
bid_type | STRING | Bidding Type |
bid_price | NUMBER | Bid Price |
optimization_goal | STRING | Optimization Goal |
optimization_event | STRING | Optimization Event |
app_id | STRING | ID of the app being promoted |
app_type | STRING | Type of app |
audience_type | STRING | Type of audience |
audience_ids | ARRAY | List of audience IDs |
excluded_audience_ids | ARRAY | List of excluded audience IDs |
gender | STRING | Target gender |
age_groups | ARRAY | Target age groups |
languages | ARRAY | Target languages |
location_ids | ARRAY | Target location IDs |
interest_category_ids | ARRAY | Interest category IDs |
placements | ARRAY | Ad placements |
placement_type | STRING | Type of placement |
schedule_start_time | DATETIME | Schedule Start Time |
schedule_end_time | DATETIME | Schedule End Time |
schedule_type | STRING | Type of schedule |
frequency | INTEGER | Frequency cap |
billing_event | STRING | Billing Event Type |
conversion_id | STRING | Conversion ID |
conversion_bid_price | NUMBER | Conversion Bid Price |
conversion_window | INTEGER | Conversion Window |
click_attribution_window | INTEGER | Click Attribution Window |
view_attribution_window | INTEGER | View Attribution Window |
is_smart_performance_campaign | BOOLEAN | Flag indicating if the ad group uses smart performance optimization |
is_new_structure | BOOLEAN | Flag indicating if the ad group utilizes a new structure |
auto_targeting_enabled | BOOLEAN | Flag indicating if auto targeting is enabled |
targeting_expansion | OBJECT | Targeting expansion settings |
device_price_ranges | ARRAY | Target device price ranges |
device_model_ids | ARRAY | Target device model IDs |
operating_systems | ARRAY | Target operating systems |
network_types | ARRAY | Target network types |
carrier_ids | ARRAY | Target carrier IDs |
create_time | DATETIME | Creation Time |
modify_time | DATETIME | Last Modified Time |
Ad Performance 39 fields · tiktok_ads_ad_insights
| Field | Type | Description |
|---|---|---|
ad_id | STRING | Ad ID |
advertiser_id | STRING | Advertiser ID |
campaign_id | STRING | Campaign ID |
adgroup_id | STRING | Ad Group ID |
stat_time_day | DATE | Statistics Date |
date_start | DATE | Start Date |
date_end | DATE | End Date |
impressions | INTEGER | Impressions |
clicks | INTEGER | Clicks |
cost | NUMBER | Cost |
ctr | NUMBER | Click-Through Rate |
conversion | INTEGER | Conversions |
cost_per_conversion | NUMBER | Cost Per Conversion |
conversion_rate | NUMBER | Conversion Rate |
reach | INTEGER | Reach |
engagement | INTEGER | Engagement |
video_views | INTEGER | Video Views |
video_watched_2s | INTEGER | 2s Video Views |
video_watched_6s | INTEGER | 6s Video Views |
video_completion | INTEGER | Video Completion |
spend | NUMBER | Spend |
cpc | NUMBER | Cost per click |
cpm | NUMBER | Cost per thousand impressions |
frequency | NUMBER | Frequency of occurrence |
video_play_actions | INTEGER | Number of video plays |
video_views_p25 | INTEGER | Video views at 25% completion |
video_views_p50 | INTEGER | Video views at 50% completion |
video_views_p75 | INTEGER | Video views at 75% completion |
video_views_p100 | INTEGER | Video views at 100% completion |
profile_visits | INTEGER | Profile visits |
likes | INTEGER | Likes count |
comments | INTEGER | Comments count |
shares | INTEGER | Shares count |
follows | INTEGER | Follows count |
real_time_conversion | INTEGER | Real-time conversions |
real_time_cost_per_conversion | NUMBER | Cost per conversion in real-time |
real_time_conversion_rate | NUMBER | Real-time conversion rate |
result | INTEGER | Number of results |
cost_per_result | NUMBER | Cost per result |
Ad Performance by Country 40 fields · tiktok_ads_ad_insights_by_country
| Field | Type | Description |
|---|---|---|
ad_id | STRING | Ad ID |
advertiser_id | STRING | Advertiser ID |
campaign_id | STRING | Campaign ID |
adgroup_id | STRING | Ad Group ID |
country_code | STRING | Two-letter ISO country code (geographic breakdown dimension) |
stat_time_day | DATE | Statistics Date |
date_start | DATE | Start Date |
date_end | DATE | End Date |
impressions | INTEGER | Impressions |
clicks | INTEGER | Clicks |
cost | NUMBER | Cost |
ctr | NUMBER | Click-Through Rate |
conversion | INTEGER | Conversions |
cost_per_conversion | NUMBER | Cost Per Conversion |
conversion_rate | NUMBER | Conversion Rate |
reach | INTEGER | Reach |
engagement | INTEGER | Engagement |
video_views | INTEGER | Video Views |
video_watched_2s | INTEGER | 2s Video Views |
video_watched_6s | INTEGER | 6s Video Views |
video_completion | INTEGER | Video Completion |
spend | NUMBER | Spend |
cpc | NUMBER | Cost per click |
cpm | NUMBER | Cost per thousand impressions |
frequency | NUMBER | Frequency of occurrence |
video_play_actions | INTEGER | Number of video plays |
video_views_p25 | INTEGER | Video views at 25% completion |
video_views_p50 | INTEGER | Video views at 50% completion |
video_views_p75 | INTEGER | Video views at 75% completion |
video_views_p100 | INTEGER | Video views at 100% completion |
profile_visits | INTEGER | Profile visits |
likes | INTEGER | Likes count |
comments | INTEGER | Comments count |
shares | INTEGER | Shares count |
follows | INTEGER | Follows count |
real_time_conversion | INTEGER | Real-time conversions |
real_time_cost_per_conversion | NUMBER | Cost per conversion in real-time |
real_time_conversion_rate | NUMBER | Real-time conversion rate |
result | INTEGER | Number of results |
cost_per_result | NUMBER | Cost per result |
Ads 46 fields · tiktok_ads_ads
| Field | Type | Description |
|---|---|---|
ad_id | STRING | Ad ID |
ad_name | STRING | Ad Name |
advertiser_id | STRING | Advertiser ID |
campaign_id | STRING | Campaign ID |
campaign_name | STRING | Campaign Name |
adgroup_id | STRING | Ad Group ID |
adgroup_name | STRING | Ad Group Name |
operation_status | STRING | Operation Status |
secondary_status | STRING | Secondary Status |
create_time | DATETIME | Creation Time |
modify_time | DATETIME | Last Modified Time |
ad_text | STRING | Ad Text/Caption |
ad_texts | ARRAY | Multiple Ad Text Variations |
call_to_action | STRING | Call To Action Text |
call_to_action_id | STRING | Call To Action ID |
image_ids | ARRAY | Image IDs Used in the Ad |
video_id | STRING | Video ID Used in the Ad |
image_mode | STRING | Image Display Mode |
creative_type | STRING | Type of Creative (video, image, etc.) |
ad_format | STRING | Format of the Ad |
landing_page_url | STRING | Landing Page URL |
landing_page_urls | ARRAY | Multiple Landing Page URLs |
deeplink | STRING | Deep Link URL |
deeplink_type | STRING | Type of Deep Link |
tracking_pixel_id | STRING | Pixel ID for Tracking |
impression_tracking_url | STRING | URL for Impression Tracking |
click_tracking_url | STRING | URL for Click Tracking |
video_view_tracking_url | STRING | URL for Video View Tracking |
is_new_structure | BOOLEAN | Flag indicating new ad structure |
is_aco | BOOLEAN | Flag indicating Automated Creative Opt. |
optimization_event | STRING | Event being optimized for |
catalog_id | STRING | Product Catalog ID |
product_set_id | STRING | Product Set ID |
sku_ids | ARRAY | SKU IDs for Products |
domain | STRING | Domain for the Ad |
display_name | STRING | Display Name shown in the Ad |
profile_image_url | STRING | URL for Profile Image |
app_name | STRING | Name of the App being promoted |
tracking_app_id | STRING | App ID for Tracking |
identity_id | STRING | Identity ID |
identity_type | STRING | Type of Identity |
page_id | STRING | TikTok Page ID |
tiktok_item_id | STRING | TikTok Item ID |
disclaimer_type | STRING | Type of Disclaimer |
disclaimer_text | STRING | Disclaimer Text |
utm_params | OBJECT | UTM Parameters |
Advertiser Account 4 fields · tiktok_ads_advertiser
| Field | Type | Description |
|---|---|---|
advertiser_id | STRING | Advertiser ID |
advertiser_name | STRING | Advertiser Name |
company_name | STRING | Company Name |
currency | STRING | Account Currency |
Campaigns 34 fields · tiktok_ads_campaigns
| Field | Type | Description |
|---|---|---|
advertiser_id | STRING | Advertiser ID |
campaign_id | STRING | Campaign ID |
campaign_name | STRING | Campaign Name |
app_promotion_type | STRING | Type of app promotion being used in the campaign |
operation_status | STRING | Operation Status |
bid_type | STRING | Type of bid strategy being used in the campaign |
roas_bid | NUMBER | Return on ad spend bid target |
is_advanced_dedicated_campaign | BOOLEAN | Flag indicating if this is an advanced dedicated campaign |
is_search_campaign | BOOLEAN | Flag indicating if the campaign is for search ads |
rf_campaign_type | STRING | Reach and frequency campaign type |
rta_bid_enabled | BOOLEAN | Flag indicating if RTA bidding is enabled |
secondary_status | STRING | Additional status information of the campaign |
postback_window_mode | STRING | Mode for the postback window |
disable_skan_campaign | BOOLEAN | Flag indicating if SKAdNetwork is disabled for the campaign |
budget_optimize_on | BOOLEAN | The metric or event that the budget optimization is based on |
budget_mode | STRING | Budget Mode (BUDGET_MODE_DAY or BUDGET_MODE_TOTAL) |
objective | STRING | Campaign Objective |
campaign_product_source | STRING | Source of products for the campaign |
optimization_goal | STRING | Specific goal to be optimized for in the campaign |
special_industries | STRING | Special industries classification for the campaign |
deep_bid_type | STRING | Type of deep bidding strategy |
rta_id | STRING | Real-time advertising ID |
rta_product_selection_enabled | BOOLEAN | Flag indicating if RTA product selection is enabled |
budget | NUMBER | Campaign Budget |
is_new_structure | BOOLEAN | Flag indicating if the campaign utilizes a new campaign structure |
is_smart_performance_campaign | BOOLEAN | Flag indicating if the campaign uses smart performance optimization |
modify_time | DATETIME | Last Modified Time |
app_id | STRING | ID of the app being promoted |
objective_type | STRING | Type of objective selected for the campaign (e.g., brand awareness, app installs) |
campaign_type | STRING | Type of campaign (e.g., awareness, conversion) |
campaign_app_profile_page_state | STRING | App profile page state for app campaigns |
create_time | DATETIME | Creation Time |
catalog_enabled | BOOLEAN | Flag indicating if product catalog is enabled |
bid_align_type | STRING | Type of bid alignment |
Custom Audiences 9 fields · tiktok_ads_audiences
| Field | Type | Description |
|---|---|---|
audience_id | STRING | Unique identifier for the audience |
advertiser_id | STRING | Advertiser ID |
name | STRING | Name of the audience |
audience_type | STRING | Type of audience (e.g., demographic, interest-based) |
cover_num | INTEGER | Number of audience members covered |
create_time | DATETIME | Timestamp indicating when the audience was created |
is_valid | BOOLEAN | Flag indicating if the audience data is valid |
is_expiring | BOOLEAN | Flag indicating if the audience data is expiring soon |
expired_time | DATETIME | Timestamp indicating when the audience data expires |
Ask TikTok Ads questions in ChatGPT
- You
How did TikTok spend and conversions move day by day this month?
- ChatGPT
From Ad Performance (tiktok_ads_ad_insights) I summed spend and conversion by stat_time_day for this month, with cost_per_conversion for each day so a jump in cost is easy to spot.
This comes from your governed TikTok Ads Data Mart through the OWOX MCP server, so it is as fresh as that Data Mart's last scheduled refresh.
- You
Are people watching the videos to the end?
- ChatGPT
video_views and video_completion for the same days show how many views reach the end. Comparing video_watched_2s with video_watched_6s shows how quickly viewers drop off in the first seconds.
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.”
Turn TikTok Ads Data into Answers in ChatGPT
See how OWOX Data Marts helps you ask TikTok Ads questions in ChatGPT, blend it with other sources, and scale reporting without rebuilding logic.
Get Started Free

