Marketing intelligence
How to Connect TikTok Organic & Ads Data to BigQuery: Complete Guide
Build separate TikTok paid and organic datasets in BigQuery, then reconcile campaign reporting without double-counting reach or sales.

Before you start
You need authorized access to the relevant TikTok accounts, a Google Cloud project, a BigQuery dataset, and someone responsible for sync monitoring. Paid reporting and creator data use different products and permissions. Confirm the available fields before designing your dashboard.
The TikTok Display API exposes creator profile and video information. It is not a substitute for every metric in the TikTok app. Do not assume watch-time, audience demographics, or reach are available through your approved API access.
Build the pipeline in five steps
- Inventory the reports. List the accounts, dates, and paid campaign metrics you need. For organic videos, record which fields your authorized API actually returns.
- Authorize each source separately. Use the permissions required by that product. Store tokens securely and implement renewal; never assume a token is permanent.
- Separate daily performance from video snapshots. Store paid delivery by account, date, and ad ID. Store organic counters with video ID and collection timestamp. A lifetime counter is not a daily result.
- Load idempotently. Stage each report, validate it, and replace or merge the same reporting window. Re-fetch recent dates to capture revised conversion reporting.
- Connect your dashboard. Build reporting views over validated tables, with source currency, reporting timezone, attribution settings, and last successful refresh visible.
An illustrative schema
These are suggested warehouse columns, not a guaranteed TikTok response schema.
| Table | Suggested key | Purpose |
|---|---|---|
| Paid delivery | Account + date + ad ID | Spend, impressions, clicks and supported conversions |
| Organic snapshots | Video ID + collection timestamp | Available cumulative video counters |
| Store orders | Store + order ID | Revenue, refunds and order status |
Keep these datasets separate until you have a justified join. For Spark Ads, map the promoted post to its ad where the source provides that relationship. Adding paid and organic reach does not produce deduplicated people: audiences may overlap.
Verify before using the numbers
Choose one completed day and compare spend with Ads Manager using the same timezone and currency. Check that replaying the load does not increase row counts. Compare one video snapshot with the authorized source and label cumulative metrics clearly.
A video-view spike followed by sales is a correlation, not proof of incremental lift. Customer-level attribution requires consented journey data and reliable identifiers; aggregated ad reports alone cannot reconstruct it.
Using AKM
AKM's Data Hub catalog includes TikTok Ads datasets and a BigQuery storage option. Confirm your plan, connected account permissions, selected datasets, and destination configuration before starting a sync. This does not establish support for a complete TikTok Organic-to-BigQuery pipeline. Use an approved separate extraction workflow for organic fields that are not available in your AKM account.
Start with one account and a short date range. Validate the output before expanding to your full reporting history. See AKM integrations for the available connection options.