Integration

TikTok Ads to Google Sheets reporting automation

Stop exporting TikTok Ads data and pasting it into Google Sheets by hand. Opera reads your existing sheet, appends the right numbers to the right rows, and keeps it current.

Yes — you can automate TikTok Ads reporting in Google Sheets without exporting anything or breaking a formula. Opera reads your existing sheet, pulls spend, impressions & clicks, conversions at your grain, and appends each period to the right rows on a schedule you set.

What you can pull from TikTok Ads

Opera pulls at the exact grain you report on and uses your KPI definitions, not generic defaults.

What you can pull
MetricsSpend, Impressions & clicks, Conversions, Video views, CPC / CPA, CTR
Graincampaign, ad group, ad, geo and date
DestinationYour existing Google Sheets — append-only, formulas preserved
CadenceDaily, weekly or monthly

How the pull actually works

Reporting API — synchronous and async reports per advertiser_id at campaign, ad group and ad grain: spend, impressions, clicks, conversions.

TikTok's self-reported conversions run on its own windows and, on iOS, on SKAN — they overstate against MMP attribution, so Opera writes them beside the AppsFlyer numbers, never instead of them.

Source mechanics
Account modelBusiness Center → advertiser_id(s) → campaign / ad group / ad
Example pullLast 7 days · advertiser 6912… · prospecting ad groups → spend, conversions vs AppsFlyer installs

Filters that make the numbers client-correct

A correct pull is mostly correct filtering. Opera applies this client's rules on every run — not whoever-exported-it's defaults:

date rangeadvertiser_idcampaign / ad groupcountryconversion event

Date ranges resolve in the right timezone, campaign prefixes scope to the right market, and event names match this client's taxonomy exactly.

The manual TikTok Ads workflow today

Every cycle, someone exports TikTok Ads, reshapes the columns, finds the right week, pastes it in, fixes formatting, and hopes no formula broke. It's an hour lost on every report, every client, every week.

"Update last week's report with spend, impressions & clicks, conversions from TikTok Ads, by channel."

How Opera updates your Google Sheets

Opera reads your sheet's structure first — tabs, headers, weekly blocks, monthly sections — then appends the new data to the right row. Formulas are extended, never overwritten; writes are append-only by default.

Self-reported conversions overstate vs your MMP

TikTok uses its own attribution windows (commonly 7-day click / 1-day view) and, on iOS, relies on SKAN — so TikTok's self-reported conversions tend to overstate results versus what your MMP attributes, especially on iOS. Always reconcile TikTok-reported numbers against AppsFlyer before you trust a blended CAC built on them.

Reconciled against your MMP and other channels

TikTok Ads's self-reported numbers won't match what your MMP attributes. Opera lines TikTok Ads spend up against AppsFlyer (or Adjust) and your other platforms in the same report, so the blended picture holds together.

What one refresh writes

Illustrative — the structure of one appended week, not real figures.

Week Spend Clicks Conversions CPA ROAS
Wk 23 $22,400 41,900 1,180 $18.98 2.4
Wk 24 $24,150 44,300 1,305 $18.51 2.6
Bottom line

Opera turns the weekly TikTok Ads export into a scheduled job that keeps your existing Google Sheets current and reconciled — so your team spends its time on decisions, not data entry.

Rolling it out

Implementation checklist
Connect TikTok Ads and share the target Sheet (view access is enough to map it)
Confirm the mapping — Opera shows you the tabs, sections and columns it detected
Run once with preview — review the diff of exactly what will be appended
Schedule it — pick the cadence and the Slack/email channel for the summary

Schedule it and forget it

Run it daily, weekly or monthly. Opera refreshes the data, updates the sheet, and posts a Slack or email summary — without anyone touching an export again.

Safe enough for production

Opera is built to touch production reports and live ad accounts without breaking anything:

  • No destructive writes. Updates are append-only by default — your existing data and formulas are never overwritten.
  • Preview before execution. You see exactly what Opera will change before a single cell is written.
  • Campaigns paused by default. New campaigns are created paused, with approvals required before any spend.
  • Full audit logs and client-level isolation. Every action is logged, and each client's data and rules stay separate.

See this running on your own reports.A 45-minute workflow audit maps your current process and shows exactly what Opera automates — step by step.

Frequently asked questions

Will Opera overwrite my formulas?
No. Opera appends to the right rows; formulas are extended, not replaced. Writes are append-only by default.
How does it handle TikTok Ads's attribution quirks?
TikTok uses its own attribution windows (commonly 7-day click / 1-day view) and, on iOS, relies on SKAN — so TikTok's self-reported conversions tend to overstate results versus what your MMP attributes, especially…
Which TikTok Ads metrics are supported?
Spend, Impressions & clicks, Conversions, Video views, CPC / CPA, CTR — at the grain you report on (campaign, ad group, ad, geo and date).
Do I need to migrate my reports?
No. Opera works inside the Google Sheets you already use — no template, no rebuild.

Watch Opera run a real workflow, end to end.

Three minutes: a plain-language request, a Sheet schema read, an AppsFlyer pull, a previewed append, a Slack summary — then a paused campaign launch.