[Closed beta] SKAdNetwork custom measurement configuration

At a glance: Configure what and for how long to measure user engagement in the app. You can measure any combination of revenue, funnel events, and in-app engagement, and unique users for up to 72 hours post-install. Postbacks are sent by iOS 24-48 hours after the end of the measurement period.

mceclip0.png

Related reading: 

Must-read instructions for beta users

[Updated July 19, 2021]

  • Custom settings page:
    • Access the custom measurement settings page using the link provided to you. It is not accessible via the dashboard.
    • To make changes to your custom configuration, use the link. Note! If you make settings changes via the measurement settings page in the dashboard, you will overwrite your custom configuration and revert to AppsFlyer measurement settings. 
  • SKAdNetwork dashboard: The layout and structure of your SKAdNetwork dashboard adapts to your custom measurement settings. It takes up to 24 hours for the dashboard to reflect these changes. 
  • Manually validate your custom settings:
      • During the beta, the user interface doesn't interactively validate your settings as you make them. However, they are validated when you save.
      • As such, be sure to manually validate each component in accordance with the validations listed in the component details section.
  • Admin only: AppsFlyerAdmin_us-en.pngOnly the admin can save the configuration. 

Custom measurement basics

Within the SKAdNetwork (SKAN) attribution flow, an iOS device sends only one SKAN postback containing the most recent conversion value (CV). This conversion value is limited to 6 bits, which translates into 64 possible values (from 0 to 63). While this limitation does require making some hard choices about how to use those 6 bits, custom measurement provides you with the maximum possible flexibility to determine precisely what measurement data should be encoded within that conversion value—including what activity to measure during the post-install period (“components”) and for how long (the “activity window”). The combination of the activity window with one or more components is called the measurement mode.

Definitions

  • Activity windowThe duration of the activity window depends on both the iOS and AppsFlyer timers. Measurement stops when either timer reaches 0. The iOS postback is sent 24-48 hours after the iOS timer ends. See Activity window.
  • Measuring components
    • Revenue: Revenue generated
    • In-app event: Engagement, unique user measurement, or both
    • Funnel: Which events users perform
  • Measurement mode: The combination of the selected activity window and one or more measurement components.
  • Bucket: An entity that collects a range of values or events.
  • Conversion-value capacity: The maximum number of buckets that can be converted to a single 6-bit conversion value. The more buckets the selected activity window or component uses, the more conversion-value capacity is required. Examples of maximized conversion value usage.

Measurement mode to conversion values 

AppsFlyer maps all the possible combinations defined by a measurement mode to conversion values 0-63 (the maximum permitted by 6 bits). The limit of 64 possible conversion values governs the variety and number of options you can set in your measurement mode. Every bucket included in the measurement mode consumes conversion-value capacity. (And each additional bucket included in a single component consumes it exponentially!)

To set your measurement mode, experiment with different options on the Custom settings page. As you make changes, the Conversion-value capacity gauge updates. Optimize your settings to capture the data most valuable to you without exceeding the capacity.

Want to learn more about the math behind it? See How is conversion-value capacity calculated.

CVGauge.png

Next steps

The section that follows details activity window and measurement component settings.

So, use this section as a guide as you open the Custom settings page and experiment with the different measurement settings.

Activity window and measurement component details

Activity window 

Activity window details

SKAd-duration.png

The Activity window timer determines the measurement granularity and duration.

Mandatory

Yes 

Multiple-use permitted

No

Characteristics

  • The timer has a fixed duration and runs in parallel to the iOS timer.
  • In contrast, the iOS timer has an initial duration of 24 hours. Each time the conversion value increases, the timer is reset, up to a maximum of 72 hours.
  • Default duration 24 hours.
  • Measurement stops when either timer reaches 0. 

Setting options

  • Duration: 24–72 hours in intervals of 24 hours. Maximum 3 intervals.
  • Duration: 12–72 hours in intervals of 12 hours. Maximum 6 intervals.

Impact of changing the activity window timer duration

  • The postback is sent 24–48 hours after the iOS timer expires. 
  • Initially, the iOS timer is fixed to end after 24 hours. However, each time the conversion value is increased, the timer resets to 24 hours.
  • If you set the AppsFlyer activity window timer to more than 24 hours, measurement continues only as long as the conversion value is increased before the iOS timer ends. Meaning, measurement stops when either first reaches 0.

 

Considerations relating to ad networks

  • The default activity window is 24 hours.
  • You can set a different period, but before doing so, verify with your ad network partners if they support a period that differs from the default. 

Example bucket capacity requirements

CVactivitywindow.png

The image shows a duration timer of 48 hours with a 12-hour interval (granularity). It requires 4 buckets.

Revenue component

Component details

SKAD-revenue.png

Measures revenue generated by the user during the activity window

Mandatory

No

Multiple-use permitted

Yes, if using the in-app event revenue source. 

Setting options

Revenue generated in the app is reported either by the SDK or by your server (using S2S).

All revenue can be recorded using a single event, or you can associate revenue with different in-app events. 

The following revenue source options are supported: 

  • Overall revenue
    • Any event reported by the SDK as having revenue is recorded by SKAN using the af_skad_revenue event
  • In-app event
    • Revenue reported by type allocated to a selected in-app event is recorded by SKAN using the selected in-app event.
    • The component can be used multiple times.

Buckets

To measure revenue, you must create revenue range buckets. When revenue is reported, SKAN associates it with the appropriate bucket.

mceclip0.png

Characteristics

  • Each bucket contains a revenue range consisting of a from value and a to value. The lower value isn't included in the range, and the upper value is. For example, 5–10 means greater than 5 up to and including 10. 
  • The bucket with the lowest value always starts at 0 (but doesn't include 0 itself). 
  • You can create as many buckets as you wish, but keep in mind that each bucket affects your conversion value capacity.
  • Bucket ranges must be sequential (without gaps between buckets).
  • Amounts are in USD

Recording revenue using buckets

  • When revenue is reported, SKAN associates the revenue with the appropriate bucket. The revenue recorded equals average value of the bucket. 
  • If the revenue reported exceeds the maximum value of the highest-value bucket, the revenue is associated with the highest-value bucket. The revenue recorded is the average value of the highest-value bucket’s range. In other words, the actual revenue amount is disregarded. 
  • In raw data, both actual revenue recorded and bucket ranges are available. 

Example:

CVRevenue_example.png

The revenue bucket ranges set as depicted in the 

  • A: 0-5
  • B: 5-10
  • C: 10-20

Revenue is recorded using the buckets as follows: 

Example Revenue reported by the SDK Associated bucket Revenue recorded
1 5 $2.5
2 6 B $7.5
3 10 B $7.5
4 125 C $15.0

Manual beta validations

  • If you are using the overall revenue source option, ensure that your measurement mode includes only one revenue component. 
  • If you are using the in-app event revenue source option, ensure that you don't use the same event in another revenue component. 

In-app event component

Component details

SKAD-in-app-event.png

Measures both:

  • Engagement: Number of times combined that users perform an event. 
  • Conversion: Number of unique users that perform a selected event 

Mandatory

No

Multiple-use permitted

Yes
Event setting options

Select an in-app event, then setup buckets according to your measurement goal as follows: 

  • Conversion only: Configure one bucket with a range of 0–1
  • Engagement and conversion: Configure multiple buckets with your selected ranges

Buckets for engagement

To measure engagement, you must create occurrence range buckets. When an occurrence of the selected engagement event is reported, SKAN associates it with the appropriate bucket according to the number of event occurrences.

Characteristics

  • Each bucket contains an occurrence range consisting of a from value and a to value. The lower value isn't included in the range, and the upper value is. For example, 5–10 means greater than 5 up to and including 10.
  • The bucket with the lowest value always starts at 0 (but doesn't include 0 itself). 
  • You can create as many buckets as you wish, but keep in mind that each bucket affects your conversion value capacity. 
  • Bucket ranges must be sequential (without gaps between buckets).

Measuring engagement using buckets

  • When an event occurrence is reported SKAN associates the occurrence with the appropriate bucket. Occurrences recorded are derived from the average of the bucket range. The value is rounded up to the nearest integer. For example, 5.7 is rounded up to 6. 
  • If the number of occurrences exceeds the maximum value of the highest-value bucket, the occurrences are associated with the highest-value bucket. The number of occurrences recorded is the average value of the highest-value bucket’s range. In other words, the actual number of occurrences is disregarded. 
  • In raw data, both the actual number of occurrences and bucket ranges are available.

Example:

CVInApp.png

The occurrence bucket ranges set are:

  • A: 0-5
  • B: 5-10
  • C: 10-20

Number of occurrences are recorded using the buckets as follows:

Example Number of occurrences reported by the SDK Associated bucket Number of occurrences reported
1 5 3
2 6 B 8
3 10 B 8
4 125 C 15
 
Limitation A given in-app event can be associated once with this component. 

Manual beta validation

A specific in-app event can be used in only one component. Verify that you don’t define the same in-app event in different components. 

Funnel component

Component details

SKAD-funnel.png

Measures the occurrence of in-app events based on a list of sequential events in a funnel. A user performing any event in the funnel is regarded as having performed all the events preceding that event.

Mandatory

No

Multiple-use permitted

No

Setting options

List a sequential set of events in a funnel. Since the occurrence of a single event is treated as the occurrence of all preceding events, the order in which you list the events is highly important, as illustrated in the example that follows.

Example

CVfunnel.png

 

A funnel contains the events a, f, b, k, and z, as illustrated in the image.

Example Event performed Events recorded
1 a a
2 b a, f, b
3 z a, f, b, k, z

 

Manual beta validation

Verify that your measurement mode includes only one funnel component. 

Dashboard and metrics

Metrics available

Metric Formula/type 
Installs Count
Clicks Count
Impressions Count

Click-to-install rate

Installs / Clicks *100 
Cost Campaign cost [Premium Feature]
Effective cost per install (eCPI) Cost / Installs
Converted users

This metric requires that you select the overall revenue option. 

Count of unique users performing a designated measurement event.

  • Revenue event: Event must be af_skad_revenue
  • In-app event and funnel: Select the event in the dashboard. 

 

Converted users rate

Converted users / Installs * 100

Effective cost per action (eCPA)

Cost / Unique users performing a designated event

Metrics available (irrespective of measurement component)


User-quality measurement types

Metrics available per measurement component
Measurement component Description
Revenue

Revenue is recorded in USD using the bucket associated with the revenue reported. The revenue reported in the dashboard is the average value of the bucket ranges.

Metrics:

    • Revenue
    • ROI
    • ROAS
    • ARPU: revenue/number of users installing the app
    • Rate of users converting: Number of users making a purchase/users installing the app
    • eCPA
Funnel

In-app events are performed as part of a funnel. 

Metrics per in-app event:

  • Count of users performing each of the events
  • eCPA
  • Sessions

Example of user counts:

  • Completed registration
  • Made a purchase
  • Reached a game level

Clarification! Use Funnel to measure if a user performed a sequence of events.

In-app

Number of times the user performed a specified in-app event during the Measurement Window

Settings: 

  • Select an in-app event from the drop-down list.
  • The in-app selection is also designated as the Conversion Event.

Metrics for the in-app event:

    • Count of users performing the event
    • eCPA
    • Sessions

Examples:

  • Measure the number of times:
    • a user opened the app
    • the user viewed an ad

SKAdNetwork dashboard for custom conversion

The SKAdNetwork dashboard layout and metrics depend on the measurement components selected in your custom configuration. 

The layout updates daily based on the settings active at midnight UTC. Expect that the updated layout is available by 05:00 UTC. 

The metrics and charts available are based on the generic SKAdNetwork dashboard

 

Additional info, troubleshooting, tips, and FAQ

Troubleshooting, tips, and FAQ

At present, this section is left blank. 

Maximized conversion value examples

Component Description 

Activity window

  • Duration: 24 hours
  • Intervals: 12 hours 
Revenue
  • Revenue is reported using a single in-app event (overall) 
  • Revenue ranges: 7 
Funnel 3 events

Configuration in the settings page

CVExample1.png

Example 1
Component Description 

Activity window

  • Duration: 24 hours
  • Interval: 1 
Revenue
  • Revenue is reported allocated by type using 2 in-app events
  • Revenue ranges: 3 (per in-app event)
In-app engagement 2 conversion events

Configuration in the settings page

CVExample2.png

Example 2
Component Description 

Activity window

  • Duration: 24 hours
  • Interval: 24 hours 
Revenue
  • Revenue is reported using a single in-app event (overall) 
  • Revenue ranges: 3 
Engagement
  • 3 engagement measures (in-apps) 
  • Occurrence ranges: 3 (per in-app event)

Configuration in the settings page

CVExample3.png

Example 3
Component Description 

Activity window

  • Duration: 48 hours
  • Interval: 12 hours 
Revenue
  • Revenue is reported using a single in-app event (overall) 
  • Revenue ranges: 7
Engagement

Conversion event

Configuration in the settings page

CVExample4.gif

Example 4

Conversion value capacity formula

As explained in the previous section, the maximum number of available conversion values is 64. The following formula calculates how many of the available conversion values are utilized by a defined measurement mode.

(activity duration in hours / interval size in hours) * 
(number of revenue ranges  + 1 ) * 
(number of in-app event ranges  + 1 ) * 
(number of steps in a funnel + 1)

Adjust the formula to include all measurement components

Was this article helpful?