Integration

AppsFlyer + TikTok Ads reporting automation

Reconcile AppsFlyer attribution with TikTok Ads spend in one report — and keep blended CAC and ROAS current automatically.

Two sources, one number

TikTok Ads reports its own spend and results. AppsFlyer attributes installs and events its own way. Reconciling them by hand — week after week — is where reporting time goes. Opera pulls both, lines them up, and computes blended CAC and ROAS in the report you already use.

Why the numbers never match (and how Opera handles it)

On the TikTok Ads side: 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.

On the AppsFlyer side: AppsFlyer reports standard attribution and SKAN (SKAdNetwork) conversions, and they rarely agree: SKAN postbacks arrive delayed and coarsely bucketed, so iOS installs lag and look lower than reality for a day or two. Separately, cohort metrics (revenue and retention tied to the install date) behave differently from activity metrics (events that happened during the period). A report that mixes them will double-count or undercount. The fix is to keep SKAN and attributed columns side by side and label cohort vs activity explicitly.

Opera doesn't force a false single truth — it keeps both series side by side and surfaces the gap.

The reconciliation columns

What one reconciled week looks like
TikTok Adsspend, platform-reported results (campaign, ad group, ad, geo and date)
AppsFlyerattributed installs & events, SKAN separate (media source, campaign, ad set, geo and date)
Computedblended CAC, CPI, ROAS by your definitions — plus a variance column with a threshold flag

Updated in your existing Sheet

Opera reads your report's structure and appends the reconciled numbers to the right rows. Formulas are preserved; writes are append-only.

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

Does it replace my MMP or ad platform?
No — it reads from both and reconciles them in your report. You keep your existing tools.
How is blended CAC calculated?
Using your definition: Opera applies your KPI logic rather than a generic formula.
Can I add more platforms?
Yes — the same report can fold in Google, TikTok and Snapchat alongside these two.

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.