---
title: "TikTok Ads to Claude | OWOX MCP"
canonical: "https://www.owox.com/connectors/tiktok-ads-connector-to-claude"
updated: "2026-09-17"
---

# Ask TikTok Ads Questions in Claude

Ask TikTok Ads questions in Claude using OWOX Data Marts. Collect TikTok Ads data into a governed data mart, then get answers in Claude via OWOX's MCP server — every number traces back to analyst-written SQL.

[Get Started Free](https://www.owox.com/app-signup)

## Endpoints

## 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 fields`tiktok_ads_ad_groups`
*   ### Ad Performance

    Daily ad performance — impressions, clicks, spend, conversions, video views, and engagement.

    39 fieldsTime series`tiktok_ads_ad_insights`
*   ### Ad Performance by Country

    Daily ad performance broken down by country — impressions, clicks, spend, conversions, and video views.

    40 fieldsTime series`tiktok_ads_ad_insights_by_country`
*   ### Ads

    Individual ads — creative type, format, call to action, status, and links to their campaigns and ad groups.

    46 fields`tiktok_ads_ads`
*   ### Advertiser Account

    Advertiser account — name, company, and currency.

    4 fields`tiktok_ads_advertiser`
*   ### Campaigns

    Your campaigns — objective, type, status, budget, and schedule.

    34 fields`tiktok_ads_campaigns`
*   ### Custom Audiences

    Custom audiences — type, size, validity status, and expiration.

    9 fields`tiktok_ads_audiences`

## Data schema

## 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 |

## In Claude

## Ask TikTok Ads questions in Claude

You

Which countries give us the best TikTok conversion rate?

Claude

Ad Performance by Country (tiktok\_ads\_ad\_insights\_by\_country) has conversion\_rate and cost for each country\_code. I ranked countries by conversion\_rate and kept cost and reach beside each.

The figures come from your governed TikTok Ads Data Mart through the OWOX MCP server and are as current as its last scheduled refresh.

You

Where are we overspending?

Claude

Sorting the same rows by cost\_per\_conversion, highest first, shows the countries taking budget without converting at a comparable price. engagement tells you whether the ads still resonate there.

## Related connectors

[AWS Athena Connector to Claude](/connectors/aws-athena-connector-to-claude)

[AWS Redshift Connector to Claude](/connectors/aws-redshift-connector-to-claude)

[Bank of Canada Connector to Claude](/connectors/bank-of-canada-connector-to-claude)

## What users are saying

## Every claim has a receipt.

Real things real customers said — each quote pinned to a specific claim, straight from the quotes database.

A3re: trusting AI

![Nodari Rizun](https://cdn.owox.ai/www/webflow/6a7b298b2ca5055443187566_nodari-headshot.png/public)Nodari RizunFounder & CEO, Pürblack®

> _“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.”_

C9re: one source of truth

![Mark Simmons](https://cdn.owox.ai/www/webflow/6a7b298b2b9daab0ade631d7_mark-headshot.png/public)Mark SimmonsCMO, Pürblack®

> _“We had six or seven different channels and no single source of truth — it was almost impossible, a lot of guesswork.”_

E7re: getting time back

![Nodari Rizun](https://cdn.owox.ai/www/webflow/6a7b298b2ca5055443187566_nodari-headshot.png/public)Nodari RizunFounder & CEO, Pürblack®

> _“We regained time. And time is the one resource that never comes back.”_

## Turn TikTok Ads Data into Answers in Claude

See how OWOX Data Marts helps you ask TikTok Ads questions in Claude, blend it with other sources, and scale reporting without rebuilding logic.

[Get Started Free](https://www.owox.com/app-signup)

## References

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Get Started Free](https://www.owox.com/app-signup)
- [AWS Athena Connector to Claude](https://www.owox.com/connectors/aws-athena-connector-to-claude) — /connectors/aws-athena-connector-to-claude.md
- [AWS Redshift Connector to Claude](https://www.owox.com/connectors/aws-redshift-connector-to-claude) — /connectors/aws-redshift-connector-to-claude.md
- [Bank of Canada Connector to Claude](https://www.owox.com/connectors/bank-of-canada-connector-to-claude) — /connectors/bank-of-canada-connector-to-claude.md
