Data Clean Room—Creating In-app event reports

At a glance: Create In-app event reports to focus on user activity occurring after an app has been installed. Extract specific event parameters from your in-app event raw data, optionally match the data with custom sources, then process and present it in aggregated form.

Creating an In-app event report

To create an In-app event report, follow the steps detailed in the tabs below.

Note: These steps are divided into tabs for ease of reading. All steps must be completed in order to create the report. (Certain steps, as indicated, are not relevant for reports that don't use custom sources.)

Perform preliminary steps

  1. Go to the Reports tab of the DCR.
  2. Click the + New report button.
  3. Select In-app events as the type of source data, then click Next in the bottom right corner of the screen.
  4. Enter a name for the report.
    • This can be any name that will help you identify the report in the DCR platform.
    • Important! Ensure that the report name is different from all other reports in your account or you will not be able to save the report.
    • Report name requirements:
      • Length: 2-80 characters
      • Valid characters:
        • letters (A-Z, a-z)
        • numbers (0-9), cannot be the first character of a name
        • a hyphen (-), cannot be the first character of a name
      • Invalid characters:
        • spaces
        • all other symbols or special characters

Select sources

Specify the data to be used for the report:

In-app event sources

  • Apps: Select one or more of the apps in your AppsFlyer account.
  • Source types: Select one or more types of in-app event data:
    Installs

    In-app events related to install attributions

    • An install is recorded when a user downloads, installs, and launches a mobile app.
    Re-engagements

    In-app events related to re-engagements

    • A re-engagement is recorded when an inactive user of a specific app engages with a retargeting campaign for the app and subsequently launches it.
    Reattributions

    In-app events related to re-attributions

    • A re-attribution is recorded when a former user of a specific app (who had uninstalled it) engages with a retargeting campaign for the app and subsequently reinstalls it.
  • Timeframe: Select the number of days of historical data you want the DCR to search for in-app events (from 1 to 14 days).
  • Events: Select one or more in-app events to include in the report.
    • The available events include all in-app events from the selected apps that have been configured to report data to AppsFlyer via the SDK or the server-to-server API (S2S).

Custom sources

  1. Choose whether to use data from custom sources in the report.
    • A report that doesn't use custom sources extracts specific event parameters and values from the in-app event raw data.
    • A report that does use custom source extracts specific event parameters and values, then matches the extracted in-app event data with user-level data from your custom sources (such as data from your BI or CRM systems).
  2. Complete the next steps based on whether or not your report uses custom sources:
    • If your report doesn't use custom sources, skip to Select dimensions, then follow the steps through all the remaining tabs.
    • If your report does use custom sources, select at least one of the custom sources you have set up to use in the report, then follow the steps through all the remaining tabs.

The following 2 steps are relevant only for reports that use custom sources.

Join sources (only for reports containing custom sources)

In order to match data among sources, each of the custom sources used in the report must include an identifier mapped to a key identifier in the in-app event data.

What is a key identifier?

You can map to any of these in-app event data identifiers as key identifiers:

  • AppsFlyer ID (af_id): A unique app identifier generated by AppsFlyer at installation
    • This ID appears in all events recorded by AppsFlyer.
    • A new ID is generated if an app is deleted and then reinstalled.
  • Customer User ID (CUID): A unique user identifier usually generated and set by the app owner at the time of user registration.
    • Using CUID to map data requires that your app is configured to send the CUID to AppsFlyer via the SDK or the server-to-server API (S2S).
  • Platform ID + App ID (app_id)
    • Using this option allows you to map to any of the following identifiers:
    • Important! If you map to Platform ID as a key identifier, you must also map a column in one of the report's custom sources to the in-app event data identifier App ID.
      • The App ID is the unique case-sensitive identifier that identifies your app in the AppsFlyer dashboard. It is generally set by the app store in which your app is located and appears in the URL address of the app's page in that app store.
        • Android app ID = package name (such as com.coolcompany.coolapp)
        • iOS app ID = id + 9/10-digit App Store ID (such as id123456789)
      • The custom source column that you map to App ID must be categorized as either an identifier or dimension.

Mapping schemes (direct/indirect)

If the report includes more than one custom source, only one of them needs to be mapped directly to an in-app event key identifier. Other custom sources can be mapped either directly or indirectly, as illustrated in the following example:

 Example

dcr_mapping_identifiers_in-app events.png

In the scenario shown above:

  • Custom source #1 identifier AF is mapped directly to the in-app event key identifier af_id.
  • Custom source #2 is mapped indirectly: user_code --> AF --> af_id.
  • Custom source #3 is mapped indirectly (through a longer chain):
    user_id --> user_code --> AF --> af_id.
  • Custom source #4 identifier ID is mapped directly to the in-app event key identifier af_id.
    • Note that it could have been mapped indirectly instead (through custom source #3 identifier user_id), but either option works fine.

This mapping scheme works to match data among all the sources since each custom source is mapped either directly or indirectly to the in-app event key identifier af_id.

Determine treatment of multiple matching events (only for reports containing custom sources)

In many cases, the in-app event data will include more than one event during the selected timeframe with the same key identifier. When this is the case, you must instruct the DCR which matching events it should include in the report.

Matching all events

The most comprehensive matching method allows your report to include all matching events. In order to achieve this result, you must map an identifier in one of the report's custom sources to the in-app event data identifier install_time.

  • The identifier in your source that is mapped to install_time must be in the following format: yyyy-MM-dd HH:mm:ss.
  • Note: Though the name of the in-app event data identifier is install_time, it actually means event time.

Matching a single event

If you do not map an identifier to install_time, you must elect to use either the last or first matching event in your report.

  • Last event: The in-app event included in the report is the last event (chronologically) in the timeframe that matches a specific key identifier.
  • First event: The in-app event included in the report is the first event (chronologically) in the timeframe that matches a specific key identifier.

Make this selection based on the event you consider to be most relevant to the insights you want to obtain from the report.

The remaining tabs are relevant for all in-app event reports, whether or not they include custom sources.

Select dimensions

Recall that user-level data cannot be reported by the DCR. Instead, it provides you with the decision-making insights you need by aggregating (or grouping) the data by the dimensions you choose.

A dimension is generally an attribute by which you categorize app users (for example, geo, install date, campaign, etc.)

Extracting dimensions from event_value

When in-app events are reported to AppsFlyer via the SDK or the S2S API, much of the raw data is contained in a single field called event_value. This structured data field includes all of the specific in-app event parameters that have been configured for the events that your apps send to AppsFlyer.

One of the major advantages of In-app event reports is that they allow you to extract specific parameters and their values from the event_value field for the events you choose.

To extract dimensions from the event_value field for use in DCR reports:

  1. In the Dimensions from sources list, click the extract_dimension_button.png button.

    The Extract field from event_value window opens.

  2. In the Report field box, enter the name of the extracted dimension as you would like it to appear in your report.
  3. From the Event_value parameter list, select the in-app event parameter that should be mapped by default to the report field (dimension) you defined in step 2.
    • The available parameters include those that have been configured in the selected in-app events in the selected apps.
  4. It may be that the default mapping differs by app and/or event. If this is the case:
    1. Click the Add exception button
    2. Select the app and event for which the report field should be mapped differently.
    3. Select the in-app event parameter that should be mapped to the report field for this combination of app/event.
    4. Follow these steps for as many exceptions as you want to set up.
  5. When you are finished setting up the mapping for the extracted dimension, click Save and add another to extract another dimension from the event_value field or Save to return to the main screen.

To edit extracted dimensions:

  1. In either the Dimensions from sources or the Report dimensions list, hover over the name of the dimension you want to edit.
  2. Click the more_options_button.png button that displays to the right of the dimension.
  3. Select Edit extracted field.
  4. Make changes to the Report field name and/or parameter mapping as necessary.
  5. Click Save to save your changes.

To delete extracted dimensions:

  1. In either the Dimensions from sources or the Report dimensions list, hover over the name of the dimension you want to delete.
  2. Click the more_options_button.png button that displays to the right of the dimension.
  3. Select Delete field.
    • Caution! If you delete an extracted field from the Report dimensions list, it will delete the definition of the extracted field. If you wish to remove the field from the report while preserving its definition, select the field and use the Remove button instead.

Selecting report dimensions

In-app event report dimensions can include:

To select the dimensions to include in your report:

  1. Select one or more dimensions in the Dimensions from sources list on the left and use the Add button in the middle of the screen to add them to the list of Report dimensions.
    • You can use the search bar to search for dimensions in the lists.
  2. To remove a dimension, select it from the Report dimensions list and use the Remove button to return it to the Dimensions from sources list.
  3. Repeat this process until you have added each dimension you want to include in the report.

Note: By default, all reports are grouped by the in-app event dimension media_source. If you do not wish to use this dimension in your report, you can remove it from the Report dimensions list.

[Optional] Customizing dimension display names

By default, dimension names are displayed in your report exactly as they are named in the in-app event data or your custom sources. If you wish, you can customize dimension names for your report.

To customize dimension display names:

  1. In the Report dimensions list, hover over the name of the dimension whose display name you want to edit.
  2. Click the edit button edit_button.png that displays to the right of the dimension.
  3. Change the name to the dimension display name to be used in your report (up to 50 characters).
  4. Click OK to save the display name, or X to cancel it.

Note: If you want to change the name of an extracted dimension, use the steps for editing extracted dimensions (above).

Preserving privacy while grouping by dimension (regrouping)

Depending on the size of your data set, the number of dimensions you choose, and other factors, it's possible that a report would include one or more groups of only 1 user. Reporting the data in this way would violate restrictions against providing user-level data.

However, instead of removing or hiding the data from the report completely, the DCR uses a regrouping mechanism to provide as much detail as possible while maintaining user privacy.

 Regrouping example

Assume you have set up a report according to the following dimensions (in order):

  • In-app event dimensions:
    • media source
    • campaign
    • adset_name
    • ad_id
  • Custom source dimensions:
    • user_type

Before regrouping

After initial analysis of the data, the DCR determines that the data would break down as follows:

media
source
campaign adset
name
ad
id
user
type
rev
D0
rev
D7
count reportable?
facebook_ads UA_100 green kjh867 buyer 1 4 12

facebook_ads UA_101 green jkj987 ultra 2 23 22

facebook_ads UA_200 green lkh123 beg 6 7 1

X

facebook_ads UA_200 green ilk945 beg 3 21 1

X

facebook_ads UA_200 green plm654 beg 8 17 1

X

As it stands, the final three rows are not reportable because each row contains only 1 user. According to the regrouping logic, the DCR first "eliminates" the last-listed in-app event dimension (which, in this case, is ad_id). It then analyzes the data again to see which rows are reportable.

After regrouping

After applying the regrouping logic, the report appears as follows:

media
source
campaign adset
name
ad
id
user
type
rev
D0
rev
D7
count reportable?
facebook_ads UA_100 green kjh867 buyer 1 4 12

facebook_ads UA_101 green jkj987 ultra 2 23 22

facebook_ads UA_200 green RESTRICTED beg 17 45 3

Results:

  • The last row now combines the data that had previously been on 3 rows. The combined row now has a user count of greater than 1 and can be reported.
  • The dimension that was eliminated is now reported as RESTRICTED.
  • Had there still been unreportable rows (number of users=1), the DCR would continue to analyze the data on an iterative basis, eliminating one dimension after another until it either:
    • can report all rows; or
    • runs out of in-app event dimensions to eliminate

Note: By default, the DCR applies regrouping only to default in-app event dimensions (not to extracted in-app event dimensions or custom source dimensions). If data grouped by a default in-app event dimension would result in a row containing only 1 user, the data in that row will be reported as RESTRICTED. (See following for an advanced option you can use to apply regrouping to custom source dimensions as well).

Which dimensions are eliminated first when regrouping?

By default, attribution data dimensions are eliminated in reverse order from the order in which they appear in the Report dimensions list. However, you can modify the default sequence and/or apply regrouping to selected custom source dimensions (if applicable) in order to preserve the dimensions most important to you.

To change the order in which dimensions are eliminated:

  1. Click the Manage dimension priority button.
  2. Select a dimension and drag it to the desired position in the list (or use the arrow buttons on the right to move it).
    • The dimension labeled as Highest priority (at the top of the list) means it's the last to be eliminated if regrouping is required.
  3. [Optional] To apply regrouping to custom source dimensions (for reports using custom sources):
    1. Click Use advanced options to refine regrouping
    2. Select custom source dimensions to which you'd like to apply regrouping.
    3. The selected dimensions are added to the Manage dimension priority list.
      • By default, these dimensions are added to the bottom of the list, as Lowest priority for regrouping. However, you can reorder them just like in-app event dimensions as described above.
  4. Click OK to save your changes.
    • The Report dimensions list on the main screen remains in its original order, but the revised order has been saved. (Click again on the Manage dimension priority button if you wish to review or edit your selection.)

Select metrics

Metrics are the numeric data you have collected with respect to an app user (examples might include revenue, number of app opens, LTV, etc.) and can be any numeric data field from your sources that you have categorized as a metric.

Extracting metrics from event_value

Just as you can for report dimensions, you can extract in-app event parameters from the event_value field for use as metrics in your reports.

To extract dimensions from the event_value field for use in DCR reports:

  1. In the Metrics from sources list, click the extract_metric_button.png button.

    The Extract field from event_value window opens.

  2. In the Report field box, enter the name of the extracted metric as you would like it to appear in your report.
  3. From the Event_value parameter list, select the in-app event parameter that should be mapped by default to the report field (metric) you defined in step 2.
    • The available parameters include those that have been configured in the selected in-app events in the selected apps.
  4. It may be that the default mapping differs by app and/or event. If this is the case:
    1. Click the Add exception button
    2. Select the app and event for which the report field should be mapped differently.
    3. Select the in-app event parameter that should be mapped to the report field for this combination of app/event.
    4. Follow these steps for as many exceptions as you want to set up.
  5. When you are finished setting up the mapping for the extracted metric, click Save and add another to extract another metric from the event_value field or Save to return to the main screen.

To edit extracted metrics:

  1. In either the Metrics from sources or the Report metrics list, hover over the name of the metric you want to edit.
  2. Click the more_options_button.png button that displays to the right of the metric.
  3. Select Edit extracted field.
  4. Make changes to the Report field name and/or parameter mapping as necessary.
  5. Click Save to save your changes.

To delete extracted metrics:

  1. In either the Metrics from sources or the Report metrics list, hover over the name of the metric you want to delete.
  2. Click the more_options_button.png button that displays to the right of the metric.
  3. Select Delete field.
    • Caution! If you delete an extracted field from the Report metrics list, it will delete the definition of the extracted field. If you wish to remove the field from the report while preserving its definition, select the field and use the Remove button instead.

Select report metrics

To select the metrics to include in your report:

  1. Select one or more metrics in the Metrics from sources list on the left and use the Add button in the middle of the screen to add them to the list of Report metrics.
    • You can use the search bar to search for metrics in the lists.
  2. For each metric in the Report metrics list, select whether you want the data reported as either:
    • a sum of numeric values; or
    • a count of distinct values
  3. To remove a metric, select it from the Report metrics list and use the Remove button to return it to the Metrics from sources list.
  4. Repeat this process until you have added each metric you want to include in the report.

[Optional] Customizing metric display names

By default, metric names are displayed in your report exactly as they are named in the in-app event data or your custom sources. If you wish, you can customize metric names for your report.

To customize metric display names:

  1. In the Report metrics list, hover over the name of the metric whose display name you want to edit.
  2. Click the edit button edit_button.png that displays to the right of the metric.
  3. Change the name to the metric display name to be used in your report (up to 50 characters).
  4. Click OK to save the display name, or X to cancel it.

Note: If you want to change the name of an extracted metric, use the steps for editing extracted metrics (above).

[Optional] Select identifiers to count

By default, each row of the report ends with a column containing a count of the distinct AppsFlyer IDs grouped in that row's data.

If you wish to add columns for the distinct counts of other identifiers from your sources, do so as follows:

  1. Select one or more identifiers in the Identifiers from sources list on the left and use the Add button in the middle of the screen to add them to the list of Distinct count identifiers.
    • You can use the search bar to search for identifiers in the lists.
  2. To remove an identifier, select it from the Distinct count identifiers list and use the Remove button to return it to the Identifiers from sources list.
  3. Repeat this process until you have added each identifier you want counted in the report.

Configure report settings and save the report

Schedule (only for reports without custom sources)

Reports without custom sources are run according to the schedule you define.

To define the report schedule:

  1. Select whether to run the report daily or on one or more days each week.
  2. Select the time at which to run the report (timezone is UTC).

 Important!

Scheduling options are disabled for reports with custom sources. These reports run whenever new versions of all of the custom sources it uses are uploaded to their source locations.

The DCR is alerted that a new version of a custom source file has been uploaded when an accompanying _SUCCESS file is also uploaded. AppsFlyer continually scans for new versions of source files for the current date and 3 days prior.

Report destination

The report destination consists of a cloud storage bucket (known as a connector) and the underlying file path to which the DCR will send the report each time it is processed. 

This bucket and file path are created using the interface of your selected cloud service. The full instructions for this process, including examples, are detailed here.

To set the report destination and save the report:

  1. Click Set report destination.
  2. Select the connector on which the report file path is located.
    1. If you want to use a new connector for this source, click the + New connector button.
  3. Enter the report folder path:
    1. The bucket and DCR key folder will display automatically.
    2. Enter the full path following the DCR key folder, up to and including the second-level folder for the report.
    3. Your report folder path might look something like this:
      s3://af-dcr-example-bucket/01bcc5fb/output/conversions/
  4. Click Apply to apply the report destination.
  5. Click Save to save the report.
  6. The new report is now displayed in the Reports tab of the Data Clean Room.

What if I don't know the report destination?

In certain cases, you may want to define a report's structure before knowing its destination (for example, if your cloud storage structure is not yet finalized). This is possible as long as all the sources that are used to create the report have been set up in the AppsFlyer DCR platform.

 Important!

A report cannot be saved until a report destination is specified.

To save the report before you know its permanent destination, you can save it using a temporary (even non-working) destination. However, in order to begin receiving a report, you must provide its actual (working) location by editing it later.

Reference

Default in-app event dimensions

In addition to dimensions extracted from event_value and dimensions from your custom sources (if applicable), the following in-app event dimensions can be used to group reports:

  • media_source (default dimension)
  • ad
  • ad_id
  • ad_type
  • adset_id
  • adset_name
  • channel
  • site_id
  • keywords
  • attributed_touch_type
  • campaign
  • campaign_id
  • conversion_type
  • platform
  • partner
  • country
  • device_type
  • model
  • brand
  • region
  • city
  • DMA
  • event_name
  • event_day
  • event_revenue_currency

Default in-app event metrics

In addition to metrics extracted from event_value and metrics from your custom sources (if applicable), the following in-app event metrics can be included in reports:

  • event_revenue
  • event_revenue_u_s_d