Collect TikTok Ads data. Deliver reports. Automate AI Insights.
Easily collect TikTok data with OWOX Data Marts, store in your data warehouse, automate reporting across major BI Tools and AI Insights (the ones that matter) delivered straight to corporate messengers on a schedule.

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
Available connectors
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 fieldsAd Performance
Daily ad performance — impressions, clicks, spend, conversions, video views, and engagement.
39 fieldsTime seriesAd Performance by Country
Daily ad performance broken down by country — impressions, clicks, spend, conversions, and video views.
40 fieldsTime seriesAds
Individual ads — creative type, format, call to action, status, and links to their campaigns and ad groups.
46 fieldsAdvertiser Account
Advertiser account — name, company, and currency.
4 fieldsCampaigns
Your campaigns — objective, type, status, budget, and schedule.
34 fieldsCustom Audiences
Custom audiences — type, size, validity status, and expiration.
9 fields
TikTok Ads Ad Groups schema
45 fieldstiktok_ads_ad_groupsSchema on GitHub
Ad groups within your campaigns — bid strategy, optimization goal, placement, and targeting schedule.
| 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 |
TikTok Ads Ad Performance schema
39 fieldsTime seriestiktok_ads_ad_insightsSchema on GitHub
Daily ad performance — impressions, clicks, spend, conversions, video views, and engagement.
| 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 schema
TikTok Ads Ad Performance by Country schema
40 fieldsTime seriestiktok_ads_ad_insights_by_countrySchema on GitHub
Daily ad performance broken down by country — impressions, clicks, spend, conversions, and video views.
| 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 |
TikTok Ads Ads schema
46 fieldstiktok_ads_adsSchema on GitHub
Individual ads — creative type, format, call to action, status, and links to their campaigns and ad groups.
| 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 |
TikTok Ads Advertiser Account schema
4 fieldstiktok_ads_advertiserSchema on GitHub
Advertiser account — name, company, and currency.
| Field | Type | Description |
|---|---|---|
advertiser_id | STRING | Advertiser ID |
advertiser_name | STRING | Advertiser Name |
company_name | STRING | Company Name |
currency | STRING | Account Currency |
TikTok Ads Campaigns schema
34 fieldstiktok_ads_campaignsSchema on GitHub
Your campaigns — objective, type, status, budget, and schedule.
| 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 |
TikTok Ads Custom Audiences schema
9 fieldstiktok_ads_audiencesSchema on GitHub
Custom audiences — type, size, validity status, and expiration.
| 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 |
Why collect TikTok Ads data into your warehouse with OWOX?
Your TikTok Ads data shouldn’t be trapped in a platform you can’t query. OWOX collects it into your warehouse on autopilot — no per-connector fees, no vendor lock-in. The entire platform is open-source on GitHub, so you can self-host it today and never worry about losing access to your own data pipelines.

Collect to your warehouse
No per-connector pricing — connect as many sources as you need, all included

Zero-maintenance syncs
Fully open-source on GitHub — self-host anytime, no vendor lock-in, your data stays yours

Full-funnel joins
Full transparency and control — every query, every schema, every schedule is visible and auditable

R01 · Collect
Collect all your TikTok Ads data with zero engineering
Pull everything your company needs from TikTok Ads without touching code or maintaining custom scripts. OWOX Data Marts handle the heavy lifting.
- Your TikTok Ads data is stored in one place – your own infrastructure. OWOX Data Marts automatically land your data into BigQuery, Snowflake, or Redshift.
- Your TikTok Ads data lands on a schedule: clean, complete, and ready to re-use across reports, dashboards, BI tools, and spreadsheets.
- No API maintenance, no broken scripts — just reliable daily syncs

R02 · Report
Build reports with TikTok Ads data that everyone trusts
Once your TikTok Ads data lands in your warehouse, OWOX Data Marts make it instantly reusable across spreadsheets and BI tools.
- Pre-built data marts for campaign performance, spend, and conversions
- Join TikTok Ads with CRM, GA4, and revenue data in one query
- Self-serve reporting for marketing teams — no analyst tickets needed

R03 · Visualize
Visualize TikTok Ads data instantly in your BI tools
With OWOX Data Marts, your TikTok Ads data becomes instantly available for charts, dashboards, pivots, and spreadsheets.
- Whether you use Google Sheets, Looker Studio, Excel, or Power BI, OWOX delivers clean, scheduled TikTok Ads data that just works.
- Deliver to Looker Studio, Google Sheets, Power BI, or Excel automatically
- Same numbers everywhere — one source of truth for all stakeholders
Why use OWOX connectors to collect your TikTok Ads data?
Eight outcomes you get the moment your data marts go live.
Full picture, one screen
Send TikTok Ads spend and performance into dashboards from one governed source — fast-moving creative data you can actually keep up with.
Beyond native dashboards
TikTok burns budget fast; in your warehouse you track creative-level performance frequently, not once the money’s gone.
Your questions, your reports
Build reports that answer your questions — creative ROAS, hook rate, spend velocity — on your definitions, not TikTok’s defaults.
Faster decisions, better data
Frequent, scheduled syncs mean you catch a winning or failing creative while it still matters.
Always fresh, always complete
OWOX Data Marts automate TikTok Ads collection on a schedule — campaigns, ads, and spend — with no manual exports.
All sources, one warehouse
Merge TikTok with your other channels and revenue to see real blended ROAS, not siloed platform numbers.
Zero manual work
Automate transfer into BigQuery, Snowflake, or Redshift — governed and reusable across every report, saving time and removing errors.
Blended reports
Once TikTok data lands in governed Data Marts, anyone can ask in their own AI chat — “which creatives paid back this week?” — every number tracing to analyst-written SQL.
Not testimonials. Comment threads.
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.”
Start collecting TikTok Ads data for free
Set up your TikTok Ads connector in minutes. No credit card, no engineering team required.







