| Section | Details |
| What's new |
Cost ETL consolidates the cost of campaigns without attribution (unattributed cost, reported without app ID) from Google, Meta, and TikTok into the Summary, Geo, and Channel reports, alongside the cost of attributed campaigns (with app ID). The All Cost report, which shows the complete cost of campaigns as pulled from the Google, Meta, and TikTok APIs without attribution filtering, is deprecated as part of this change. Until now, you had to combine unattributed cost from the All Cost report with attributed cost from the Cost ETL reports. Now AppsFlyer does it for you in the most accurate and granular way, so you no longer need to combine data from the two reports, or remove duplicates between them, to measure the cost of all your Google, Meta, and TikTok campaigns. This makes cost measurement with Cost ETL simpler and easier to onboard. |
| Effective date |
The migration to the consolidated reports has two phases:
|
| Action required |
If you use the All Cost report today, AppsFlyer migrates you to the consolidated reports based on the rollout phases. You don't need to take any action to onboard. Phase 1 customers have until December 17, 2026, to prepare. If you receive the email and want to be migrated before December 17, contact your customer success manager (CSM). To prepare your data pipelines:
|
| What you should know |
Keep the following in mind:
The new Engagement platform dimension in the Dimensions section of the Cost ETL report configuration page. Sample data from the Geo report. The last column, |
Schema, value, and coverage changes compared to the All Cost report
The table compares the consolidated Cost ETL reports with today's All Cost report.
| Aspect | Details | All Cost report (today) | Consolidated Cost ETL reports (after the change) |
|---|---|---|---|
| Coverage | Where cost without app ID appears | Only in the All Cost report | In the Summary, Geo, and Channel reports |
| Coverage (Meta) | Meta cost without app ID, with channel granularity | Not available | Available in the Channel report |
| Values | App ID for cost without app ID | unknown |
unknown |
| Values | OS for cost without app ID | Empty | unknown |
| Schema |
engagement_platform field |
Exists with the old name platform. Reported for cost with and without app ID. |
Optional dimension you add on the Cost ETL report configuration page. Reported as the last field in the schema. Contains values only for cost without attribution from Google, Meta, and TikTok. |
| Coverage after cost split | Cost returned without app ID from Google, Meta, and TikTok that ROI360 matches to attributed apps in your advertiser account with active cost integration | No cost split. Reported with app ID unknown. |
Reported under the matching attributed apps. AppsFlyer splits the cost across them using the cost split logic. For details, see ROI360 cost aggregation overview. |
| Coverage after cost split | Cost returned without app ID from Google, Meta, and TikTok that matches attributed apps outside your advertiser account | No cost split. Reported with app ID unknown. |
Not reported in the consolidated reports, because there is no clear indication that the cost of those campaigns belongs to your advertiser account. |
| Coverage after cost split | Cost returned without app ID from Google, Meta, and TikTok that matches attributed apps without active cost integration | No cost split. Reported with app ID unknown. |
Not reported in the consolidated reports, because you chose not to measure the cost of those apps in your cost integration configuration. To measure the cost of those apps with ROI360, update the cost integration in your cost settings. For instructions, see Set up ROI360 cost API to measure cost data. |
FAQ
Which customers does this change affect in Phase 1?
Phase 1 affects customers who receive the All Cost report and measure all cost from Google or Meta, including customers who also measure all TikTok cost. It doesn't affect customers who measure all TikTok cost but measure only attributed Google and Meta cost, or other Cost ETL customers. Those customers migrate in Phase 2.
What happens when the All Cost report is deprecated?
The All Cost report stops generating in the All Cost folder or table for any Cost ETL customer who received it before. After that, AppsFlyer reports the cost of campaigns without attribution and app IDs only in the Cost ETL Summary, Geo, and Channel reports.
Do the consolidation and the deprecation happen on the same date?
Yes. AppsFlyer deprecates the All Cost report when it migrates you to the consolidated reports.
What do I need to do to keep the data backward compatible with the changes?
Point any BI pipelines or dashboards that read cost-without-app-ID data from the All Cost report to the Cost ETL Summary, Geo, and Channel reports. Also remove the de-duplication logic you use today to reconcile the two sets of reports.
What changes in the Cost ETL reports?
The consolidated reports add the optional Engagement platform field and use default values for cost without app ID. For the full side-by-side comparison, see "Schema, value, and coverage changes compared to the All Cost report" in this article.
Does AppsFlyer backfill unattributed cost for long-tail dates?
AppsFlyer doesn't automatically backfill the long-tail dates (Day 14, Day 29, and Day 88) of unattributed cost in the first two months after the migration starts.
Can I measure unattributed Meta cost by channel in the consolidated reports?
Yes. The consolidated reports let you measure the cost of Meta campaigns without attribution by channel and by geo. The All Cost report doesn't offer channel granularity for Meta today.