At a glance: The Cross-platform end-user events report measures complete user journeys, conversions, and LTV across platforms and devices
The Cross-platform end-user events report is a raw data report that provides event-level logs of sessions and in-app events for each user, linked across platforms using your Customer User ID (CUID). Each event includes the cross-platform attribution result, enabling you to analyze complete user journeys.
For more information about the user-based attribution flow and configuration, see User-based cross-platform attribution.
Report fields
To learn which fields are contained in the report, download a report sample.
The report sample includes all the report fields and their values. For the definitions of the fields, see the field dictionary.
Report data freshness
- The report runs a batch every 4 hours.
- Each batch run processes events that entered the database during the previous 4-hour window.
- Example: The 8:00 AM batch run processes events that were entered into the database between 3:00 AM and 7:00 AM.
- Events are allocated to their corresponding hourly buckets.
- Example: Events that entered the database between 3:00 and 4:00 AM will appear in the 3:00 AM bucket.
Important!
There is typically a short delay between an event's actual happening and its entry into the database. The report uses the database entry time to ensure accurate and consistent hourly grouping.
Example of the 8:00 AM batch run
| Date | Report version | Report available at | The report includes events happening between | The report include events that entered the database between |
|---|---|---|---|---|
| 2025-10-01 | 3:00 | 9:00 | 2:00-4:00 | 3:00-4:00 |
| 2025-10-01 | 4:00 | 9:00 | 3:00-5:00 | 4:00-5:00 |
| 2025-10-01 | 5:00 | 9:00 | 4:00-6:00 | 5:00-6:00 |
| 2025-10-01 | 6:00 | 9:00 | 5:00-7:00 | 6:00-7:00 |
Notes for the above example:
- Events of the last hour before the run are not processed to allow enough time to enrich events with their related CUID. In the above example, the 8:00 AM batch process events that entered the database between 3:00 and 7:00. Events that entered the database between 7:00 and 8:00 are not processed.
- The report is only available an hour after the batch run because an internal process updates the batch during that hour. In the above example, the 8:00 AM batch is available at 9:00 AM.
How to subscribe to the report?
- In AppsFlyer, from the side menu, select Export > Data Locker.
- In the Data Locker content pane, scroll down to the Advanced reports section.
- Select End-user events cross-platform.
How to access the report data in your cloud bucket?
The path to the report consists of the following folder hierarchy:
<bucket-name>/<DataLocker connection name>/t=end_user_events_user_level_cross_platform/dt=<dt=yyyy-mm-dd>/h=<hour>/DL Report folder hierarchy
BI Developer considerations
- Each report hourly bucket contains unique end-user events. Make sure you pull all reports on an hourly or daily basis.
- Ad revenue events are not included yet.
- All app data is provided in a single file. Use the App ID field to segregate data per app, or set Data Locker to segregate by app. It is recommended to use the unified segregation type.
- Pre-attribution data such as cost, clicks, and impressions, should be extracted from the cost ETL report.
Query examples
The following are examples of some popular, practical applications of the data that BI developers can extract via Data Locker. Each example is illustrated by an SQL statement
Calculating total User Acquisitions
Count the number of new unique users per media source and campaign.
SELECT DATE (event_time__conversion) AS install_date
,CASE
WHEN media_source IS NULL
OR media_source = ''
OR media_source = 'null'
THEN 'organic'
ELSE media_source
END AS media_source
,campaign_name
,count(DISTINCT customer_user_id) AS user_acquisition
,
FROM end_user_events_user_level_cross_platform
WHERE product_line_name = 'YOUR_PRODUCT_LINE_NAME'
GROUP BY install_date
,media_source
,campaign_name
Calculating total platform activations
Sum the number of total new platforms, groups, media sources, and campaigns brought per user.
SELECT DATE (event_time__conversion) AS install_date
,CASE
WHEN media_source IS NULL
OR media_source = ''
OR media_source = 'null'
THEN 'organic'
ELSE media_source
END AS media_source
,campaign_name
,count(DISTINCT CASE
WHEN platform_group = 'PC'
THEN customer_user_id
ELSE NULL
END) + count(DISTINCT CASE
WHEN platform_group = 'CONSOLE'
THEN customer_user_id
ELSE NULL
END) + count(DISTINCT CASE
WHEN platform_group = 'CTV'
THEN customer_user_id
ELSE NULL
END) + count(DISTINCT CASE
WHEN platform_group = 'MOBILE'
THEN customer_user_id
ELSE NULL
END) + count(DISTINCT CASE
WHEN platform_group = 'Web'
THEN customer_user_id
ELSE NULL
END) + count(DISTINCT CASE
WHEN platform_group = 'Other'
THEN customer_user_id
ELSE NULL
END) AS total_activations
FROM end_user_events_user_level_cross_platform
WHERE product_line_name = 'YOUR_PRODUCT_LINE_NAME'
GROUP BY install_date
,media_source
,campaign_name
Calculating total revenue
Sum the total revenue per media source and campaign.
SELECT DATE (event_time__conversion) AS install_date
,CASE
WHEN media_source IS NULL
OR media_source = ''
OR media_source = 'null'
THEN 'organic'
ELSE media_source
END AS media_source
,campaign_name
,SUM(revenue_value_customer) AS total_revenue
FROM end_user_events_user_level_cross_platform
WHERE product_line_name = ’YOUR_PRODUCT_LINE_NAME’
GROUP BY install_date
,media_source
,campaign_name;