SKAN Conversion Studio

At a glance: Use SKAN Conversion Studio to set which user engagements in the app to measure, and for how long. Measure revenue, conversion, engagement, and retention during a 12-72 hour post-install activity window. By adding the Single Source of Truth measurement we can let you know if the user was attributed by both AppsFlyer and SKAN.

Related reading: SKAN solution

SKAN Conversion Studio basics

Within the SKAdNetwork (SKAN) attribution flow, an iOS device sends one SKAN postback containing the most recent conversion value (CV). This CV is limited to 6 bits, resulting in 64 possible values (0-63). This limitation does require making some hard choices about how to use those 6 bits.

Conversion Studio provides you with maximum flexibility to make every bit count. You determine precisely what measurement data to encode within the CV—including what activity and for how long to measure during the post-install period. 

 Type

Mode

Description Activity window

Flexible

Custom

[Best practice]

Set a combination of revenue, conversion (in-app events), and engagement measurements during a configurable activity window. 12-72h

Flexible

Decode

Create your own CV to event mapping and set the CV in the app yourself. Use this option if you can't integrate the AppsFlyer SDK into your app. To use Decode, go to SKAN Conversion Studio, click options (⋮), select Upload custom decode mapping file

12-1512h (63 days)

Fixed 

Revenue

[Default]

[Legacy]

Measure revenue using one of the following ranges: 

  • $1-$630 in steps of $10
  • $1-$63 in steps of $1
  • $0.01-$0.63 in steps of $0.01
24h

Fixed

Conversion

[Legacy]

Select 1-6 in-app events as conversion events 24h

Fixed 

Engagement

[Legacy]

Number of times a user performs an event 24h
Measurement modes

Tip! Experiment with Conversion Studio. In AppsFlyer go to > Configuration > SKAN Conversion Studio.

Measurement principles and definitions

Definitions

  • Activity window: Determines how long post-install activity is measured. The duration of the window depends on both the iOS and AppsFlyer timers. Measurement stops when either timer reaches 0. The iOS postback is sent 0-24 hours after the iOS timer ends. 
  • Single Source of Truth (SSOT): Mechanism to flag if the user was attributed by SKAN and another attribution matching method. The flag is used to eliminate duplicate install data in SKAN raw data and to calculate true performance metrics. 
  • Conversion-value capacity: The number of CVs required to map your setting. The more components and measurement elements you select, the more conversion-value capacity is required. Each range or setting element selected consumes conversion-value capacity. (And each additional setting unit included in a single component consumes it exponentially!) Examples of maximized CV usage.
  • Measurement components:
    • Revenue: Revenue generated
    • In-app event: Engagement, unique user measurement, or both
    • Funnel: List of sequential events performed by a user
    • Priority: A component that contains revenue, in-app event, or both.
    • Predict: Uses advanced machine learning algorithms to provide accurate, LTV-based predictions of campaign success. Predicted user-level KPIs (including predicted revenue and retention) are encoded and transmitted to SKAN as a single conversion value, which SKAN then reports as a postback, along with the campaign ID and attribution source.  

Principles

  • Admin.pngAdmin only: Only an admin can save Conversion Studio settings. Account users can view the settings. 
  • At any given time, only one mode is active. 
  • For a given mode, AppsFlyer maps the combinations defined by your settings to CVs. You can view and download the mapping table
  • In the app, AppsFlyer sets the CV after each measurable user action using the measurement mode active when a user launches the app for the first time. 
  • iOS considers Apple privacy thresholds before populating the CV in the postback.
  • User actions occurring after the end of the activity window are disregarded.
  • SKAN dashboard:
    • The SKAN dashboard layout and metrics depend on the mode and configuration. 

    • The layout updates daily based on the mode active at midnight UTC. Expect the updated layout to be available by 05:00 UTC. 

    • In Custom and Decode, organic data for in-app events isn't available. 

S2S principles

Measurable actions can be reported by server-to-server (S2S) API. Consider the following per mode: 

  • Custom: S2S is always on.
  • Decode: S2S isn't suited to S2S and isn't available. AppsFlyer doesn't set the CV in this mode.
  • Revenue, conversion, and engagement modes: You must turn on S2S event recording before sending events.

Using Custom

In Custom, you use different measurement components like revenue, in-app events, priority, and Single Source of Truth, to determine what is measured and set an activity window to determine for how long and at what intervals measurement occurs. Together the components create your Custom measurement mode. 

To set Custom, experiment with different options; 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. See Conversion value capacity calculation.

CapacitCounter.png

Next steps

The sections that follow detail the setting options and components. Use them as guides as you open Custom and experiment with the different measurement settings.

Activity window

Determine how long user activity is measured

flex_activity_window.jpg

Mandatory

Yes 

Multiple-use permitted

No

Time characteristics

  • The timer has a fixed duration, set by you, 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.
  • Default duration 24 hours.
  • Measurement stops when either timer reaches 0. 
Timer duration
  • Range: 12-72 hours. For more options, see Flexible measurement in this table.  
  • When the timer ends, AppsFlyer stops measuring.
  • If the timer duration is more than 24 hours, the user must be active in the app at least once per interval. If not, measurement can end prematurely because AppsFlyer can't prevent the iOS timer from reaching 0; meaning iOS ends measurement. 

Interval

12 or 24 hours. Intervals affect the precision of the last-active time range and install time. For more options, see Flexible measurement in this table. 

The last-active time range is available in raw data reports in the min_install_time and max_install_time columns and is used to determine the install time as described in this section.

Example:

  • The timer duration is set to 48 hours
  • The user was last active during hour 40
  • Depending on the interval setting, the last-active time range is: 
    • 12-hour interval: 36–48h
    • 24-hour interval: 24–48h

Install time

Install time is derived as follows:

Install time = Postback arrival time - [Average last-active range] - [iOS postback delay]

  • Postback arrival time:  Time the iOS postback was first received directly from the device; usually by the ad network. 
  • Average last-active range considers the CV and is calculated as follows:
    • If CV = 0  last-active range is assumed to be 0. 
    • If CV > 1 or CV = null: Using the min_install_time and max_install time these are set based on the interval and the last time the user was seen active in the app.  For example, If the interval is 12, as the user was last seen 25 hours post-install, the result is [24 + 36] / 2 = 30. 
  • iOS postback delay: [24 + 48 ] / 2 = 36. Consider that the iOS timer ends 24 hours after the last change to the CV and the postback is sent 0–24 hours after that. 36 hours is a constant

Setting options

The Activity window consists of two settings duration and intervals. 

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

Impact of changing the activity window duration

  • The postback is sent 0-24 hours after the iOS timer expires. 
  • Initially, the iOS timer is fixed to end after 24 hours. 
  • If you set the activity window to more than 24 hours, the user must be active at least once per interval to assure that the iOS timer doesn't expire.

 

Considerations relating to ad networks

  • The default timer duration is 24 hours.
  • You can set a different duration, but before doing so, verify with your ad network partners if they support a period that differs from the default. 
  • When using the 24-hour window, you can enhance your metrics by splitting the 24-hour period into 2 intervals, each of 12 hours. By doing so, you'll know if the user continued using the app after the first 12 hours. 

Example range capacity requirements

The image in this section shows a timer of 60 hours with a 12-hour interval. 

Flexible activity window options

Flexible measurement lets you set a longer activity window and having hourly granularity. Similarly so for the intervals setting. The settings have the following characteristics:

  • Activity window:
    • Range: 12-1512 hours (63 days)  
    • Granularity: 1 hour
  • Intervals:
    • Range: Minimum 1 hour and any other multipliers of the activity window
    • Granularity 1 hour

Consideration: The ratio of the activity window to intervals must be a whole number.

Best practice: Don't set the interval to more than 24 hours, as this decreases install time estimation precision.

Single Source of Truth

Single Source of Truth to identify if a user is attributed by SKAN and another matching method

SSOTControl.png

Single Source of Truth (SSOT) mechanism flags installs reported by more than one attribution matching method. In other words, SKAN and another method. The flag is available in SKAN raw data reports and [coming soon] is considered in calculating metrics in the Overview dashboard SSOT view

Mandatory

No

Multiple-use permitted

No

Setting options

if SSOT is on, the CV is set so that it can flag if a user is attributed by SKAN and another attribution matching method. 

Where is the SSOT flag used?

  • [Coming soon] AppsFlyer Overview dashboard SSOT view
  • SKAN raw data reports have the af_attribution_flag field. If true, the user was attributed by both SKAN and another method. 
  • SKAN aggregated attribution API reports.

Predict component

Predicts long-term user revenue, retention, and behavior based on measurable behavior data

Predict-SKAN_Conversion_Studio__1_.png

Mandatory

No

Multiple-use permitted

No

Setting options

Availability

  • Available to Predict subscribers
  • To receive Predict access, contact your CSM

In-app event component

Measure conversion (number of unique users performing an event), engagement (number of times an event was performed), or both

ConversionStudioIn-app-event.png

Mandatory

No

Multiple-use permitted

Yes
Setting options

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

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

Ranges for engagement

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

Characteristics

  • Each range 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 range with the lowest value always starts at 0 (but doesn't include 0 itself). 
  • You can create as many ranges as you wish, but keep in mind that each range affects your conversion value capacity. 
  • Ranges must be sequential (without gaps between ranges).

Measuring engagement using ranges

  • When an event occurrence is reported, SKAN associates the occurrence with the appropriate range. Occurrences recorded are derived from the average of the 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 range, the occurrences are associated with the highest-value range. The number of occurrences recorded is the average value of the highest-value range’s range. In other words, the actual number of occurrences is disregarded. 
  • In raw data, both the actual number of occurrences and ranges are available.

Example:

In the image, the following occurrence ranges are depicted:

The occurrence ranges set are:

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

Number of occurrences are recorded using the ranges as follows:

Example Number of occurrences reported by the SDK Associated range 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.

Revenue component

Measure revenue generated by the user during the activity window

ConversionStudioRevenue.png

Mandatory

No

Multiple-use permitted

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

Setting options

Revenue can be recorded using a single event, or you can associate revenue by stream using selected in-app events. 

The following revenue source options are supported: 

  • Overall revenue
    • Any revenue is recorded by SKAN using the af_skad_revenue  event. af_skad_revenue should be mapped.
    • The component can be included once. 
  • In-app event
    • Revenue reported by type is allocated to a selected in-app event and is recorded by SKAN using the selected in-app event. The event should mapped; af_skad_revenue shouldn't be mapped.
    • The component can be used multiple times.
    • If you report revenue by postback to ad networks, verify that your in-app event postback mappings include the in-app revenue events set by you.

Ranges

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

Characteristics

  • Each range contains a revenue range consisting of a from value and a to value. The lower value isn't included in the range; however, the upper value is included. For example, 5–10 means greater than 5 up to and including 10. 
  • The range with the lowest value always starts at 0 (but doesn't include 0 itself). 
  • You can create as many ranges as you wish, but keep in mind that each range affects your conversion value capacity.
  • Ranges must be sequential (without gaps between them.)
  • Amounts are in USD
  • If you run campaigns on Facebook, you must have 4 or more ranges. 
  • Range values can have up to 4 digits after the decimal point.

Recording revenue using ranges

  • When revenue is reported, SKAN associates the revenue with the appropriate range. The revenue recorded equals the average value of the range. 
  • If the revenue reported exceeds the average value of the highest-value range, the revenue is associated with the highest-value range. Note! The revenue recorded is the average value of this range. In other words, the actual revenue amount is disregarded.
  • In raw data, the revenue recorded and the associated range are available. 

Example:

In the image, the following revenue ranges are depicted:

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

Revenue is recorded using the ranges as follows: 

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

Funnel component

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

ConversionValueFunnel.png 

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

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

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

Priority measurement component

Use the priority measurement component, part of Custom mode, to rank user action journeys in the app based on your business logic so that high priority measurements override low priority ones. This enables you to choose what to measure in each step of the conversion funnel. 

Each priority (maximum 63) can contain revenue, in-app event, or both. When a user performs events in the app, AppsFlyer determines which priority fits the actions performed by the users and sets the CV accordingly.

For ease of understanding, let's compare using Custom with and without the priority component. Without priority, AppsFlyer maps all possible measurement combinations to CVs. Whereas with priority only measurement combinations explicitly set by you are mapped to CVs. 

Priority is best explained in the detailed example in this article. 

Priority principles 

  • You can set 1-63 priorities. The number available depends on your activity window and Single Source of Truth settings.
  • Priority 1 always has the highest priority. The priority with the biggest number has the lowest priority.
  • A priority consists of revenue or in-app event, or both components. A given priority can contain multiple in-app events and revenue streams. 
  • Funnel isn't available in priority. However, set multiple in-app events in a priority to measure user conversion in a funnel.
  • To use the priority measurement component, you can't have other components, such as in-app events or revenue configured.

To set measurment using priority:

  1. In AppsFlyer, go to SKAN Conversion Studio.
  2. Select Custom, click Continue
  3. If necessary, click Delete, to remove the current settings. 
  4. Click + Add measurement. Select Priority
    Priority 1 displays.

    Priority1.png

  5. Select a measurement component from:
    • Revenue
    • In-app event
  6. Complete the fields according to the user interface.
    • Consider that a priority can consist of revenue, in-app event, or both. 
    • Range values of event occurrences and revenue must be of ascending (increasing) order and be continuous. For example, the following ranges increase and are continuous: 1-5, 5-8, 8-10, and so on. A given range can be used more than once (repeated) if the second time it's used is part of a unique combination and is the same range as the last priority with a range. For example, 1-5, 1-5 + add to cart.
  7. Click Validate.
    The Priority is valid message displays. If this isn't the case, correct your priority before you continue.
  8. Do one of the following:
    • To add a priority, click + Add priority. The existing priority 1 is shifted down and becomes priority 2. Complete the priority settings as previously described. 
    • To delete a priority, click > Delete.
    • To change the priority level, click Options (), and select either Change order or Make lowest priority.
    • To duplicate a priority, click Options (), and select Duplicate.
    • Click Save, to complete setting priorities. 

Custom subsidiary information

View CV mapping

  • View the events mapped to a CV by selecting the CV. The mapped events display below the table.
  • Download the CV mapping table as a CSV file. Click Download mapping file.
  • Get the CV mapping using the SKAN CV schema API for advertisers

CVmapping.png

Column Description 
app_id  
conversion_value CV value range 0-63
event_name  
min_event_counter The lower bound of the event counter range
max_event_counter
  • The upper bound of the event counter range.
  • In reports generated by AppsFlyer, the number of events is calculated using the following formula: Roundup ([min_event_counter + max_event_counter]) / 2
min_event_revenue The lower bound of the event revenue range in USD
max_event_revenue
  • The upper bound of the event revenue range in USD
  • In reports generated by AppsFlyer, the revenue is calculated using the following formula: ([min_event_revenue + max_event_revenue]) / 2)
min_time_post_install

The lower bound, hours post-install, indicating when the user was last active in the app.

max_time_post_install

The upper bound, hours post-install, indicating when the user was last active in the app. 

last_config_change The date you saved the configuration in the SKAN Conversion Studio.
CSV mapping file columns

Conversion value capacity formula

As previously explained, the maximum number of available conversion values is 64. The following formula calculates how many of the available conversion values are used by the mode.

(activity time 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

Maximized Custom CV examples

Component Description 

Activity window

  • Duration: 24 hours
  • Interval: 24 hours being 1 interval
Revenue
  • Revenue is reported using a single in-app event (overall) 
  • Revenue ranges: 15 
In-app None
Funnel 3 in-app events
Example 1
Component Description 

Activity window

  • Duration: 24 hours
  • Interval: 12 hours being 2 intervals
Revenue
  • Revenue is reported allocated by type using 2 different in-app events
  • Revenue ranges: 3 (per in-app event)
In-app set for conversion 1 in-app event to measure conversion; each in-app requires 1 range
Funnel None
Example 2
Component Description 

Activity window

  • Duration: 24 hours
  • Interval: 24 hours being 1 interval
Revenue
  • Revenue is reported using a single in-app event (overall) 
  • Revenue ranges: 3 
In-app set for engagement
  • 2 in-app events to measure engagement occurrences
  • Occurrence ranges: 3 per in-app event
Funnel None
Example 3
Component Description 

Activity window

  • Duration: 48 hours
  • Interval: 12 hours being 4 intervals
Revenue
  • Revenue is reported using a single in-app event (overall) 
  • Revenue ranges: 7
In-app set for conversion

1 in-app event to measure conversion; requires 1 range

Funnel

None

Example 4

Priority measurement detailed example

In a shopping app, the advertiser wants to focus measurement on the:

  • actions of non-paying users
  • revenue of paying users

By doing so, the advertiser uses CVs to more precisely record revenue. These measurement requirements translate to a set of measurement priorities as set out in the table that follows. 

Consider:

  • The highest priority is always 1. Note! Priority numbers don't directly map to CVs. CV mappings display in the user interface.
  • The maximum number of priorities is 63. The actual number available depends on the activity window and if Single Source of Truth is on.
  • Each priority consists of either a revenue range or in-app event occurrences range, or both. 
  • Range values: The lower value of the bound isn't included in the range but the higher bound value is included. For example, the range $5-$10 doesn't include the value 5 but does include the value 10. 

Priority #

Revenue range

In-app event
1 [Highest priority] $5-$10 send_recommendation
2 $5-$10 --
3 $0-$5 send_recommendation
4 $0-$5 --
5 -- send_recommendation
add_to_cart
6 --

send_recommendation

7 [Lowest priority] -- add_to_cart
-- No value set
Measurement priorities setting example

The table that follows contains user journey scenarios. Each scenario contains the list of actions performed by the user during their journey and the priority determined by AppsFlyer.

In the table:

  • Multiple actions are separated using >
  • The value in brackets (), is the priority determined by AppsFlyer set after the user completes the action. Using the priority AppsFlyer update the CV in the app. 
User journey scenarios

User journey scenario

User actions and priority
A add_to cart (7)
B add_to_cart (7) > send_recommendation (5)
C Purchase $3 (4)
D Purchase $6 (2)
E Purchases $6 (2) > send_recommendation (1) 

Using fixed-mode measurement

User-quality measurement types

  • Measurement is for a 24-hour activity window starting with the first app open. 
  • If you want to send events using S2S, you must explicitly enable SKAN S2S
Fixed mode measurement
Measurement mode Description
[Default] Revenue

RevenueFixed.png

Revenue generated during the 24-hour activity window. 

Select a unit-to-USD rate from one of the following:

  • $0.01 to measure up to $0.63
  • $1 to measure up to $63
  • $10 to measure up to $630

AppsFlyer automatically populates 63 revenue measurement ranges. af_skad_revenue should be mapped. In the dashboard, revenue is recorded as the maximum of the range. For example, if the range is $60-$61, the revenue recorded is $61. Note! Custom revenue uses a different method to calculate revenue. 

Metrics available:

    • Revenue
    • ROI
    • ROAS
    • ARPU: Revenue/users installing the app
    • Rate of users converting: Users making a purchase/users installing the app
    • eCPA
Conversion

mceclip0.png

In-app events performed one or more times during the 24-hour activity window

Settings:

  • Select 1-6 in-app events to measure from the drop-down list. Limitation: The list is limited to the top 300 events during the previous 30 days.
  • In the SKAdNetwork dashboard, select a given event as the conversion event

Metrics per in-app event:

    • Count of users performing an event
    • Conversion rate: Users performing the Conversion Event/users installing the app
    • eCPA
    • Sessions (uses the af_app_opened event)

Example of user counts:

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

Clarification! Use conversion measurement to count if a user performed an event. To count how many times a user performs an event use engagement measurement.

Engagement

mceclip1.png

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

Settings: 

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

Metrics for the in-app event:

    • Count of users performing the event
    • Average number of events per user
    • Conversion rate
    • eCPA
    • Sessions

Examples:

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

Fixed mode examples

Example A: Revenue measurement
Factor Remarks
Scenario
  • 20 users install the app and perform the following purchases:
    • 9 users, each make a purchase of $10
    • 5 users, each make a purchase of $5
    • 1 user makes a purchase of $1, then $3, then $5, and finally $1. In total $10. 
  • Cost data provided by API from the ad network: $30
SKAN configuration
  • Select measurement type: revenue
  • Set conversion factor: 1 conversion unit = $1
  • Designated conversion event: In the SDK, you must send revenue using the af_revenue parameter. 
Selected metrics  Revenue related metrics available
  • Installs: 20
  • Revenue: $125
  • Conversions:15
  • ARPU: $6.25
  • ROI: 316%
Number of raw data rows per report 

Raw data reports are available via Data Locker

  • Device postbacks: 20 rows
  • Installs: 20 rows
  • In-app events: 15 rows. Note! The user making multiple purchases is represented by a single row of $10. 
Developer considerations

Events carrying revenue are recognized

Example B: Conversion measurement
Factor Remarks
Example
  • 5 users (A-E) install the app
  • They perform 0-3 different in-app events, as depicted in the table
  • Cost data provided by API from the ad network: $30
  in-app-1 in-app-2 in-app-3
User A Performed Performed -
User B Performed - Performed
User C Performed Performed -
User D Performed Performed -
User E - - -
In-app events performed by users
SKAdNetwork Attribution Configuration

Select measurement type: Conversion

  • Select in-app events: in-app-1, in-app-2, in-app-3
  • In the SKAdNetwork dashboard, you select one of the events to calculate the converted users metric. You can change the selected event as needed. 
Selected metrics
Metric  App  in-app-1 in-app -2 in-app- 3
Installs 5      
Conversions 4      
Unique users   4 3 1
eCPA $ 7.5      
In-app related metrics available

Note! Because the designated Conversion Event is in-app 1, the value 4 is used to calculate app-level metrics and for in-app-1 metrics. 

 

Raw data reports are available via Data Locker

  • Device postbacks:5 rows
  • Installs: 5 rows
  • In-app events: 8 rows
Developer considerations
  • Make sure you send in-app events users perform.
  • SKAdNetwork Solution disregards event values (except in relation to revenue measurement.
Example C: Engagement measurement
Factor Remarks
Example

5 users install the app and open the app the number of times listed in the table. 

  Number of times the event is performed
User A 63
User B 10
User C 5
User D 1
User E -
App opens
SKAdNetwork Attribution Configuration
  • Select measurement type: Engagement
  • Designated conversion event: af_app_opened Note! You can use any event available. 
Selected metrics

Sample metrics available

  • Installs: 5
  • Conversions: 4
  • Sessions: 79 
Number of raw data rows per report 

Raw data reports are available via Data Locker

  • Device postbacks:5 rows
  • Installs: 5 rows
  • In-app events: 79 rows; a row is equivalent to a single session
Developer considerations

On each occasion the user performs the selected engagement event: send the in-app event. SKAdNetwork counts the number of times you send the event. 

Dashboard and metrics

In Custom and Decode mode organic metrics for in-app events aren't available.

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

Count of unique users performing a designated measurement event.

  • Custom mode: Always af_skad_revenue (if anything else is selected, converted users remains empty)
  • Revenue mode: Always af_skad_revenue
  • Conversion mode: In-app event selected in the dashboard settings 
  • Engagement mode: In-app event as set in Conversion Studio
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 range associated with the revenue reported. The revenue reported in the dashboard is the maximum value of the 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

Procedures

Set up SKAN attribution

This configuration procedure must be performed by an admin or account user having Edit app settings permission. 

To view or change user permissions:

  1. In AppsFlyer, in the upper-right click on your email address. 
  2. Select User Management > Select the user.
  3. If required, grant the user Edit app settings page & SKAN settings page capabilities. For more about permissions, see User Management.

AppsFlyerAdmin_us-en.png To configure SKAN:

  1. In AppsFlyer, go to Configuration > SKAN Conversion Studio.
    The Conversion Studio opens.
  2. Do one of the following:
    1. Click options () to display the options menu and do one of the following:
      • Turn SKANetwork measurement on or off. 
      • Enable sending events by S2S. Available if the selected mode is revenue, conversion, or engagement. Note! S2S is always on in Custom mode. 
      • Upload your Decode mapping file.
    2. Select a measurement mode from:
      • Custom 
      • Revenue
      • Conversion
      • Engagement
  3. Verify that SKAN measurement is on. Note! If off, the SDK does not call iOS SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue.
  4. Click Save changes.
    Measurement is active. Users opening the app for the first time are measured using these settings. SKAdNetwork attribution data updates in the dashboard 48-72 hours after the first app open. 
  5. Verify that your partner in-app event postback mappings map the events you have configured.

Change SKAN measurement mode

You can select a different SKAN measurement mode at any time. 

Consider: 

  • When you make settings change a transition period begins. During this period we decode the conversion value using the most recently selected settings. However, a postback arriving now relates to an install that occurred sometime in the past. 
  • The number of installs reported is not related to the settings change and is accurate. In raw data, we indicate postbacks decoded during the transition period with a skad_ambiguous_event parameter. 
  • The transition period is calculated using the activity window duration before the change as follows:
    Transition period = activity window + 48 hours. The Default transition period is 24 + 48 hours. The maximum transition period is 48 + 72 hours. 
  • Ad networks, don't consider the transition period or install date, as they regard the postback arrival time as the install date. 

Campaign pause:

  • If you integrate with Facebook, changing the settings automatically pauses Facebook campaigns.
  • Regarding other campaigns, consider pausing them for the duration of the transition period.

Disable SKAN measurement

To turn off SKAdNetwork measurement:

  1. In AppsFlyer, go to Configuration > SKAN Conversion Studio.
  2. Click .
  3. Turn off SKAdNetwork measurement. 
    Amongst other things, the SDK stops calling SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue.
  4. Click Save changes.

Report events by server-to-server API

SKAdNetwork_-_S2S__2_.png

Both the SDK and server-to-server API (S2S) can send in-app events to AppsFlyer servers. 

The S2S flow is as follows:

  • An event occurs related to the user in the advertiser's servers. The app may be open or closed at this time. 
  • Advertiser servers report the event to AppsFlyer by S2S.
  • AppsFlyer calculates the updated conversion value and then: 
    • If the app is open on the user device: the SDK is notified of the updated value. The SDK updates the iOS conversion value on the device.
    • If the app isn't open on the user device: the server waits until the app is opened to notify the SDK of the conversion value. This must occur before the expiry of the Activity Window. If notification fails, the event is disregarded.

SDK version required

  • Adopt the latest SDK version in the app. Note! No additional action is required by the developer. 

To implement in-app event sending by server-to-server API:

  1. Do one of the following:
    • If your selected mode is Custom:
      • No settings changes are required. 
    • If your selected mode is revenue, conversion, or engagement:
      1. In AppsFlyer, go to Configuration > SKAN Conversion Studio.
      2. Click options (⋮).
      3. Turn on Record in-app events sent by server-to-server API.
  2. Send events by S2S. 

Limitation

  • If you implement user anonymization for a given user then you can't send events by S2S for that user. 

Add SSOT to fixed mode measurements

If you have the Revenue or Engagement measurement mode set up, Single Source of Truth (SSOT, which deduplicates and accurately reports iOS data), isn't supported. Learn more about SSOT

To enable SSOT when you have Revenue or Engagement mode set up:

  1. In AppsFlyer, go to Configuration > SKAN Conversion Studio.
  2. Scroll down to your active measurement mode. 
  3. Click + Add Single Source of Truth.
    • The Single Source of Truth toggle is automatically turned on.
    • Your fixed mode measurement ranges are minimally changed, to allow SSOT some conversion value space.
  4. Click Save.

Specifications and limitations

Specifications and limitations
Spec Remarks
Agencies

Agencies have limited access to advertisers' SKAN Conversion Studio.