How can we help?

Bulletin: Cost ETL consolidated reports with unattributed cost

  • Updated
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:

  • Phase 1: Cost ETL customers who use the All Cost report to measure all Google or Meta cost, including customers who also measure all TikTok cost. On November 17, 2026, these customers get an email with 30 days' notice to prepare. On December 17, 2026, AppsFlyer migrates all Phase 1 customers to the consolidated reports, and their All Cost reports are deprecated.
  • Phase 2: All other Cost ETL customers get the consolidated reports during Q1 2027. This includes customers who use the All Cost report to measure all TikTok cost but measure only attributed Google and Meta cost. Customers who measure DV360 cost also get the cost of DV360 campaigns without attribution in their consolidated reports.
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:

  • Remove any internal logic that reads the cost of campaigns without app ID from the All Cost report.
  • Point any BI pipelines, dashboards, or scripts that read cost-without-app-ID data from the All Cost report to the Summary, Geo, and Channel reports instead.
  • Remove any logic that combines or de-duplicates data between the All Cost report and the Cost ETL reports. You no longer need it after the consolidation.
  • Align any logic that depends on the current Cost ETL schema or reported values with the schema of the consolidated reports. For the differences, see "Schema, value, and coverage changes compared to the All Cost report."
What you should know

Keep the following in mind:

  • Who this affects: Every Cost ETL customer gets the consolidated reports. The steps under Action required apply only to customers who use the All Cost report today.
  • Engagement platform: The consolidated reports include a new optional dimension, Engagement platform. It shows the platform where the campaign was shown to the user. AppsFlyer reports it only for unattributed cost. To include it, select Engagement platform on the Cost ETL report configuration page. AppsFlyer adds it as the last column of the Channel and Geo reports. The Summary report doesn't include it.
  • Default values: Unattributed cost is reported with app ID unknown. The time zone (UTC) and currency (USD) are the same as in the All Cost report.
  • Historical data: 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.

image (33).png

The new Engagement platform dimension in the Dimensions section of the Cost ETL report configuration page.

Sample data from the Geo report with the columns app_id, media_source, date, campaign, cost, impressions, clicks, installs, and engagement_platform. The campaign column is masked. All six rows show app_id as unknown and zero installs. The engagement_platform column shows connected_tv, desktop, or mobile.

Sample data from the Geo report. The last column, engagement_platform, shows where each campaign was shown.

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.