The formula, the data sources, the pitfalls — and how to keep CAC current across platforms without rebuilding it every week.
What counts as a "customer" is yours to define — a purchase, a paying subscriber, a first-time purchaser, a purchase. CAC is only meaningful once that activation event is pinned down.
CAC pulls from multiple platforms, each with its own definition and refresh lag. The moment you finish the report it's out of date — so it gets rebuilt next week. The fix is to automate the inputs and the write-back, not just the chart on top.
Illustrative. Spend $48,000 across Meta + Google in a week; 3,200 purchases attributed in AppsFlyer → CAC = 48,000 ÷ 3,200 = $15.00. Split it out: Meta $32k ÷ 2,300 = $13.91, Google $16k ÷ 900 = $17.78 — the blended number hid a 28% gap between channels.
Dividing spend by *installs* instead of activated customers flatters CAC, and a single blended CAC hides which channels actually work. Report blended and per-channel.
Opera pulls the inputs across AppsFlyer and your ad platforms, applies your customer acquisition cost definition, reconciles the sources, and appends the result to your existing report — append-only, formulas preserved — then schedules it and posts a summary.
"Refresh the CAC report with this week's numbers by channel, and flag anything off target."
Skip automation while the customer acquisition cost definition is still being argued about, while the report's structure changes weekly, or for one-off analyses. Automation pays on stable, recurring reports — lock the definition first, then put it on a schedule.
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.
Estimate the hours and fully-loaded labor cost your team spends on recurring reports — and what Opera gives back.