Data comparison between AppsFlyer and OWOX BI

OWOX BI interacts with AppsFlyer via AppsFlyer Push API V2.0 that sends raw event data in real-time to the OWOX BI endpoint. Which data will be sent to the endpoint depends on the settings you provide for the Endpoint Configuration in your AppsFlyer account. Once data is received, OWOX BI uploads it to the selected dataset in your Google BigQuery project.

Note that the Push API provides OWOX BI with the Activity data that is all events made by active users during the specified date range. Therefore, when you need to validate the data received by OWOX BI, you should refer to the relevant reports in your AppsFlyer account. It can be either the Activity dashboard or raw data reports.

To compare data received by OWOX BI with data stored in your AppsFlyer account, follow the steps below:

Step 1. Export data from your Google BigQuery project using the query samples below.

Before you run the queries, do as follows:

  • enter Android or IOS instead of PlatformName;
  • specify the name of your Google BigQuery project and dataset, then enter ios_events or android_events as a table name for ProjectName.DatasetName.TableName;
  • type the required date instead of YYYY-MM-DD.

Installs and Registrations

  FROM (
  'PlatformName' as platform, count (distinct idfa) as installs
  AND af_prt LIKE '%ealweb%'
  AND event_time>='YYYY-MM-DD'
  AND event_time <=''YYYY-MM-DD' )
  'PlatformName' as platform, count (distinct idfa) as registrations
  AND af_prt LIKE '%ealweb%'
  AND event_time>='YYYY-MM-DD'
  AND event_time <='YYYY-MM-DD' )
  ( platform)


  COUNT(DISTINCT(SUBSTR((SPLIT(event_value,'af_receipt_id":') [SAFE_ORDINAL(2)]),1,7) )) 
AS orders, SUM(CAST(event_revenue AS float64)) AS revenue FROM 'ProjectName.DatasetName.TableName' WHERE event_name = 'af_purchase' AND af_prt LIKE '%ealweb%' AND event_time>='YYYY-MM-DD' AND event_time <='YYYY-MM-DD'

Step 2. Retrieve data from your AppsFlyer account using one of the options below.

  • Use data from the Activity dashboard.


  • Use the reports under the Export data > Raw data.

To fetch the required data, find a difference between “Raw data non-organic in-app events” and “Re-engagement”, then add “Export page-raw data-in-app events retargeting” to the obtained value.


Step 3. Compare the retrieved data, considering the following:

  • Timezone settings for data received via Push API must correspond to the timezone of the Activity Dashboard.
  • The is_primary_attribution field must be set to 'true' for deposits and revenue.
  • AppsFlyer considers any revenue below 10,000 USD and counts it on both the dashboard (and aggregated reports), as well as raw reports. If the revenue is above 10,000 USD, it will only be presented in the raw reports.
  • AppsFlyer restricts the availability of some fields in raw data per media source and user identifiers.
  • Due to the technical limitations of AppsFlyer, there may be discrepancies of up to 3% between different data sources (dashboards, Push API, Pull API, etc.). If the given limit is exceeded, please contact AppsFlyer support for further investigation.
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request


Please sign in to leave a comment.