Stop exporting AppsFlyer 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 AppsFlyer reporting in Google Sheets without exporting anything or breaking a formula. Opera reads your existing sheet, pulls installs (attributed), skan conversions (ios), in-app events & revenue at your grain, and appends each period to the right rows on a schedule you set.
Opera pulls at the exact grain you report on and uses your KPI definitions, not generic defaults.
Master API — aggregated performance: cost, impressions, clicks, installs and in-app events by media source, campaign, adset, geo and date. The workhorse for spend, CPI and rollups.
Raw Data Pull API — event-level rows (event_name, event_time, media_source, campaign, country_code, appsflyer_id) for event-counter KPIs: counting purchase, purchase or trial_started per campaign per day, deduplicated per user.
SKAN reporting — aggregated SKAdNetwork postbacks for the iOS view, kept in separate columns so delayed, coarse iOS data never contaminates the attributed series.
A correct pull is mostly correct filtering. Opera applies this client's rules on every run — not whoever-exported-it's defaults:
Date ranges resolve in the right timezone, campaign prefixes scope to the right market, and event names match this client's taxonomy exactly.
Every cycle, someone exports AppsFlyer, 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 installs (attributed), skan conversions (ios), in-app events & revenue from AppsFlyer, by channel."
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.
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.
AppsFlyer attributes installs and events its own way; your ad platforms report their own spend and conversions. Opera builds the reconciliation into the report — both sides side by side — so blended CAC and ROAS stay honest and the variance is visible, not buried.
Illustrative — the structure of one appended week, not real figures.
| Week | Installs | CPI | New customers | CAC | D7 ROAS |
|---|---|---|---|---|---|
| Wk 23 | 12,480 | $1.84 | 1,910 | $12.02 | 0.71 |
| Wk 24 | 13,205 | $1.79 | 2,070 | $11.41 | 0.78 |
Opera turns the weekly AppsFlyer 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.
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.
Opera is built to touch production reports and live ad accounts without breaking anything:
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.
Three minutes: a plain-language request, a Sheet schema read, an AppsFlyer pull, a previewed append, a Slack summary — then a paused campaign launch.