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 limited post-install period. By adding the Single Source of Truth measurement we can let you know if the user was attributed by both AppsFlyer and SKAN.
SKAN Conversion Studio basics
Within the SKAdNetwork (SKAN) attribution flow, an iOS device sends SKAN postbacks containing the most recent conversion values (CV) after each measurement window.
For SKAN 3 and below, there is 1 postback that arrives after the initial Activity Window ends. The Activity Window can be 12 hours-63 days. The CV is limited to 6 bits, resulting in 64 possible values (0-63).
For SKAN 4, there are 3 postbacks that arrive after each of the 3 windows ends, after days 2, 7, and 35, respectively. For:
- Window 1, the fine CV is limited to 6 bits, resulting in 64 possible values (0-63).
- Windows 1-3, the coarse CV is limited to a CV of low, medium, or high. (Windows 2 and 3 don't have fine CVs).
These CV limitations mean you may need to make some hard choices about how to use those 64 possible values for fine CVs and 3 possible values for coarse CVs.
Conversion Studio provides you with maximum flexibility to make every possible value and bit count. You determine precisely what measurement data should be encoded within the CV—including what activity and for how long to measure during the post-install period. There are several measurement modes you can use to configure your CV settings.
Type | Measurement mode | Description | Activity window |
---|---|---|---|
Flexible |
[Best practice] [Default] |
Set a combination of revenue, conversion (in-app events), and engagement measurements during 3 configurable measurement windows. The 3 windows measure 3 different, non-overlapping, post-install time periods. Meaning, window 2 measures days 3-7 post-install, not days 0-7. |
|
Flexible | Custom | Set a combination of revenue, conversion (in-app events), and engagement measurements during a configurable activity window. | 12-1512h (default is up to 72 hours, but can be extended) |
Fixed* |
Revenue [Legacy] |
Measure revenue using one of the following ranges:
|
24h |
Fixed* |
Conversion [Legacy] |
Select 1-6 in-app events. | 24h |
Fixed* |
Engagement [Legacy] |
Number of times a user performs an event | 24h |
Flexible | Decode |
|
12-1512h (63 days) |
*Fixed modes are unavailable for new apps starting from 23/06/2024. All functionalities are supported in the Custom and SKAN4 modes.
Tip! Experiment with Conversion Studio. In AppsFlyer go to > Settings > SKAN Conversion Studio.
Measurement principles and definitions
Definitions
-
SKAN measurement window: Relevant for SKAN 4+. There are 3 time periods (windows) during which user post-install activity is measured:
- Window 1: 1-2 days
- Window 2: 3-7 days
- Window 3: 8-35 days
- The 3 windows measure 3 different, non-overlapping, post-install time periods. Meaning, window 2 measures days 3-7 post-install, not days 0-7.
- Activity Window: Relevant for SKAN 3 and below. Has a set duration, default of 24 hours, starting with the first app open. If you're using SKAN 4+, but user devices or ad networks don't support SKAN 4 yet, the Activity Window is 48 hours.
-
Conversion Value (CV): The measure of user quality reported in the postbacks sent by iOS at the end of the SKAN 4 windows or, for SKAN 3 and below, at the end of the Activity Window. The AppsFlyer SDK sets the CVs for you. However, if you want to set the CV use Decode to upload your CV mapping file.
- For SKAN 4+, there are both fine and coarse conversion values.
- For SKAN 4+, there are both fine and coarse conversion values.
- 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.
- 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.
-
Measurement components:
- Revenue: Measures revenue generated
-
In-app event: Measure conversion (number of unique users performing an event),
engagement (number of times an event was performed), or both. - Funnel: 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.
- Priority: A component that contains revenue, in-app event, or both.
Principles
- Admin 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 crowd anonymity before populating the CV in the postback.
- User actions occurring after the end of a window are disregarded.
- SKAN dashboard and reports:
- 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 SKAN 4, Custom and Decode, organic data for in-app events and overall revenue aren't available.
S2S principles
Measurable actions can be reported by server-to-server (S2S) API. Consider the following per mode:
- SKAN 4 and Custom: S2S is always on.
- Decode: S2S isn't suited to decode mode and isn't available. AppsFlyer doesn't set the CV in this mode.
- [Legacy] Revenue, conversion, and engagement modes: You must turn on S2S event recording before sending events.
Setting up conversion values in SKAN Conversion Studio
There are several modes available in SKAN Conversion Studio to set conversion values:
- SKAN 4: Use different measurement components like revenue, in-app events, priority, and Single Source of Truth, to determine what is measured during each of the three measurement windows.
- Custom: Use different measurement components like revenue, in-app events, priority, and Single Source of Truth, to determine what is measured during the Activity Window.
- [Legacy] Fixed modes: Measure user value using one of the following measurements:
- Revenue
- Conversion
- Engagement
Learn more about the different measurement modes in the sections that follow.
Important!
Setting conversion values in SKAN Conversion Studio must be performed by an admin or an account user with the Manage permissions in SKAN Conversion Studio.
To view or change user permissions:
- In AppsFlyer, in the upper-right click on your email address.
- Select User Management > Select the user.
- If required, grant the user with the Manage permissions in SKAN Conversion Studio. For more about permissions, see User Management.
SKAN 4
In SKAN 4, you use different measurement components like revenue, in-app events, priority, and Single Source of Truth, to determine what is measured during each of the three measurement windows. Together the components create your SKAN 4 measurement mode.
If you’re upgrading to SKAN 4 from a previous SKAN mode, your current schema mapping is carried over for the window 1 fine configuration. AppsFlyer automatically maps the coarse values for you for windows 1-3.
To manually set SKAN 4, experiment with different options. As you make changes, the Conversion-value capacity summary updates. Optimize your settings to capture the data most valuable to you without exceeding the capacity. See Conversion value capacity calculation.
Note: If you’re upgrading to SKAN 4 from a previous SKAN mode, your current schema mapping is carried over for fine measurements and AppsFlyer automatically maps the coarse values for you. And if you’re new to SKAN, AppsFlyer provides an initial default mapping.
To manually set conversion values in Conversion Studio using SKAN 4 mode:
- In the AppsFlyer dashboard, go to Settings > SKAN Conversion Studio.
- Click options (⋮) to display the options menu and make sure SKAN measurement is turned on. Note! If off, the SDK does not call iOS SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue.
- Select the SKAN 4.0 measurement mode.
- Click Continue.
The settings for Window 1 (1-2 days) fine CV opens. - [Optional] Turn on Single Source of Truth (SSOT).
The SSOT mechanism flags (and deduplicates) installs reported by more than one attribution matching method. Learn more
- Click + Add measurement to add different measurement components.
The following sections detail the setting options and components. Use them as guides as you experiment with the different SKAN measurement settings:- Revenue
- In-app event
- Funnel
- Priority
- Click Coarse and repeat Steps 6-7 to set the Window 1 (1-2 days) coarse CV.
Note:- Only Revenue and In-app event measurement components are available.
- Low CV must be a user session to ensure the postback is sent.
- [Optional] Turn on Lock window and set the condition (either time or coarse conversion value) for locking the SKAN window earlier than the default. Learn more
- Click Window 2 (3-7 days) and repeat Steps 6-8 to set the window 2 CV.
Note:- Only Revenue and In-app event measurement components are available.
- [Recommended] Low CV should be a user session.
- Click Window 3 (8-35 days) and repeat Steps 6-8 to set the window 3 CV.
Note:- Only Revenue and In-app event measurement components are available.
- [Recommended] Low CV should be a user session.
- Click Save.
- Verify that your partner in-app event postback mappings map the events you have configured.
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 summary updates. Optimize your settings to capture the data most valuable to you without exceeding the capacity. See Conversion value capacity calculation.
To manually set conversion values in Conversion Studio using Custom mode:
- In the AppsFlyer dashboard, go to Settings > SKAN Conversion Studio.
- Click options (⋮) to display the options menu and make sure SKAN measurement is turned on. Note! If off, the SDK does not call iOS SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue.
- Select the Custom measurement mode.
- Click Continue.
- [Optional] Turn on Single Source of Truth (SSOT).
The SSOT mechanism flags (and deduplicates) installs reported by more than one attribution matching method. Learn more
- Click + Add measurement to add different measurement components.
The following sections detail the setting options and components. Use them as guides as you experiment with the different SKAN measurement settings:- Revenue
- In-app event
- Funnel
- Priority
- Set the Activity window duration (12 hours-63 days) during which you want to measure user activity.
The default Activity timer allows you to set the window to 24-72 hours. And the default Interval setting lets you set 12 or 24 hours. Use Custom window to extend the activity window to up to 63 days and set longer intervals. - Click Save.
- Verify that your partner in-app event postback mappings map the events you have configured.
[Legacy] Fixed modes
Note
Fixed modes are unavailable for new apps starting from 23/06/2024. All functionalities are supported in the Custom and SKAN4.
Using fixed modes, you can measure user value using one of the following measurements:
-
- Revenue
- Conversion
- Engagement
As you make changes to the mode settings, the Conversion-value capacity summary updates. Optimize your settings to capture the data most valuable to you without exceeding the capacity. See Conversion value capacity calculation.
Note!
- Fixed mode 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
To manually set conversion values in Conversion Studio using a fixed mode:
- In the AppsFlyer dashboard, go to Settings > SKAN Conversion Studio.
- Click options (⋮) to display the options menu and:
- Make sure SKAN measurement is turned on. Note! If off, the SDK does not call iOS SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue.
- [Optional] Enable sending events by S2S. Available if the selected mode is revenue, conversion, or engagement.
- Select a fixed measurement mode.
- Follow the information and instructions in the table that follows for your selected fixed measurement mode.
- Click Save.
- Verify that your partner in-app event postback mappings map the events you have configured.
Fixed mode measurement
Measurement mode | Description |
---|---|
Revenue |
Revenue generated during the 24-hour activity window. Select a unit-to-USD rate from one of the following:
AppsFlyer automatically populates 63 revenue measurement ranges. Ensure that the event name Metrics available:
|
Conversion |
In-app events performed one or more times during the 24-hour activity window Settings:
Metrics per in-app event:
Example of user counts:
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 |
Number of times the user performed a specified in-app event during the Activity Window Settings:
Metrics for the in-app event:
Examples:
|
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:
- In the AppsFlyer dashboard, go to Settings > SKAN Conversion Studio.
- Click options (⋮) to display the options menu and:
- Make sure SKAN measurement is turned on. Note! If off, the SDK does not call iOS SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue.
- Upload your Decode mapping file.
- Click Save.
- Verify that your partner in-app event postback mappings map the events you have configured.
Measurement components
Single Source of Truth
Single Source of Truth (SSOT) mechanism flags (and deduplicates) 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 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?
|
In-app event component
Mandatory | No | ||||||||||||||||||||
Multiple-use permitted | Yes | ||||||||||||||||||||
Setting options | Select an in-app event; then setup ranges according to your measurement goal as follows:
|
||||||||||||||||||||
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
Measuring engagement using ranges
Example: In the image, the following occurrence ranges are depicted: The occurrence ranges set are:
Number of occurrences are recorded using the ranges as follows:
|
||||||||||||||||||||
Limitation | A given in-app event can be associated once with this component. |
Revenue component
Mandatory | No | ||||||||||||||||||||
Multiple-use permitted | Yes, if using the in-app event revenue source. | ||||||||||||||||||||
Setting options |
Overall revenue from all revenue streams can be recorded using a single event or by individual streams by selecting specific in-app events that generate revenue. The following revenue source options are supported:
|
||||||||||||||||||||
Ranges |
To measure revenue, you must create revenue ranges. When revenue is reported, SKAN associates the reported revenue with the appropriate range. Characteristics
Recording revenue using ranges
Example: In the image, the following revenue ranges are depicted:
Revenue is recorded using the ranges as follows:
|
Funnel component
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.
|
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 measurement using priority:
- In AppsFlyer, go to SKAN Conversion Studio.
- Select Custom, click Continue.
- If necessary, click Delete, to remove the current settings.
- Click + Add measurement. Select Priority.
Priority 1 displays.
- Select a measurement component from:
- Revenue
- In-app event
- 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 can be of ascending (increasing) or descending (decreasing) order but must be continuous. For example, the following ranges 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.
Example of increasing and decreasing revenue
Event Occurrence Revenue P1 event_a 2-3 $5 - $50 P2 event_a 2-3 $0 - $5 P3 event_a 1-2 $5 - $50 P4 event_a 1-2 $0 - $5 P5 event_a 0-1 $5 - $50 P6 event_a 0-1 $0 - $5
- Click Validate.
The Priority is valid message displays. If this isn't the case, correct your priority before you continue. - 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.
Lock window
Note: Lock window is only relevant for SKAN 4 and above.
Use | SKAN windows by default measure user value for specific times post-install. You can lock the windows early and have postbacks sent with all available data. To do so, set the conditions for when to lock the windows. |
Mandatory | No |
Multiple-use permitted | Yes, one for each SKAN window |
Condition options | The Lock window consists of two options for locking the SKAN window early:
|
Impact of using lock window | SKAN postbacks don't contain information on when a window closes, so the lock window status isn't taken into consideration when estimating install time. Therefore, locking the window early could affect the precision of install time estimates. |
Activity window
Note:
- Activity window is only relevant for SKAN 3 and below (meaning Custom and fixed modes).
- If you're using SKAN 4+, but user devices or ad networks don't support SKAN 4 yet, the Activity Window is 48 hours.
Mandatory | Yes |
Multiple-use permitted | No |
Time characteristics |
|
Timer duration |
|
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:
|
Install time |
Install time is derived as follows:
|
Setting options | The Activity window consists of two settings duration and intervals.
|
Impact of changing the activity window duration |
|
Considerations relating to ad networks |
|
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:
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. |
Additional 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.
CSV mapping file columns
Column | Description |
---|---|
app_id | |
conversion_value | CV value:
|
event_name | |
min_event_counter | The lower bound of the event counter range |
max_event_counter |
|
min_event_revenue | The lower bound of the event revenue range in USD |
max_event_revenue |
|
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. |
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
Example 1
Component | Description |
---|---|
Activity window |
|
Revenue |
|
In-app | None |
Funnel | 3 in-app events |
Example 2
Component | Description |
---|---|
Activity window |
|
Revenue |
|
In-app set for conversion | 1 in-app event to measure conversion; each in-app requires 1 range |
Funnel | None |
Example 3
Component | Description |
---|---|
Activity window |
|
Revenue |
|
In-app set for engagement |
|
Funnel | None |
Example 4
Component | Description |
---|---|
Activity window |
|
Revenue |
|
In-app set for conversion | 1 in-app event to measure conversion; requires 1 range |
Funnel | None |
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.
Measurement priorities setting example
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 |
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) |
[Legacy] Fixed mode examples
Note
Fixed modes are unavailable for new apps starting from 23/06/2024. All functionalities are supported in the Custom and SKAN4.
Example A: Revenue measurement
Factor | Remarks |
---|---|
Scenario |
|
SKAN configuration |
|
Selected metrics | Revenue related metrics available
|
Number of raw data rows per report |
Raw data reports are available via Data Locker
|
Developer considerations | Events carrying revenue are recognized |
Example B: Conversion measurement
Factor | Remarks | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Example |
In-app events performed by users
|
|||||||||||||||||||||||||
SKAdNetwork Attribution Configuration | Select measurement type: Conversion
|
|||||||||||||||||||||||||
Selected metrics |
In-app related metrics available
|
|||||||||||||||||||||||||
Raw data reports are available via Data Locker
|
||||||||||||||||||||||||||
Developer considerations |
|
Example C: Engagement measurement
Factor | Remarks | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Example | 5 users install the app and open the app the number of times listed in the table. App opens
|
||||||||||||
SKAdNetwork Attribution Configuration |
|
||||||||||||
Selected metrics | Sample metrics available
|
||||||||||||
Number of raw data rows per report |
Raw data reports are available via Data Locker
|
||||||||||||
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. |
SKAN Conversion Studio API
If you have many apps for which you want similar SKAN conversion value configurations, it may be time-consuming and challenging to design the schema for each app separately in the Conversion Studio UI. To save time and effort, you can configure your SKAN schema in the UI once, and then use the SKAN Conversion Studio API to use that same schema in multiple apps. Note: The API only supports schemas configured in the UI using SKAN 4 or custom measurement modes.
To use the SKAN Conversion Studio API:
- Get the API token. An admin needs to retrieve the token.
- Give your developer the API token to be used in the authentication header.
- Give your developers the app IDs of:
- The app for which the SKAN schema is configured in the UI (meaning the app from which you want to copy the SKAN schema).
- All the apps that you want to have the same schema.
- Tell your developer to follow their SKAN Conversion Studio API instructions in the developer hub.
Note:
- The API can be used to copy the schema to one app per API call. However, your developer can then create a script to copy the required schema to multiple apps.
- SKAN Conversion Studio API isn't available for agencies.
Additional procedures
Change SKAN measurement mode
Consider:
- Once you start using SKAN 4 measurement mode, it isn't recommended to change back to an earlier mode.
- When you make settings change, they begin to take effect from 00:00 AM UTC and 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.
Disable SKAN measurement
To turn off SKAdNetwork measurement:
- In AppsFlyer, go to Settings > SKAN Conversion Studio.
- Click ⋮ .
- Turn off SKAdNetwork measurement.
Among other things, the SDK stops calling SKAN functions like registerAppForAdNetworkAttribution, updateConversionValue. - Click Save changes.
Report events by server-to-server API
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:
- Do one of the following:
- If your selected mode is SKAN 4 or Custom:
- No settings changes are required.
- If your selected mode is revenue, conversion, or engagement:
- In AppsFlyer, go to Settings > SKAN Conversion Studio.
- Click options (⋮).
- Turn on Record in-app events sent by server-to-server API.
- If your selected mode is SKAN 4 or Custom:
- 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
Note
Fixed modes are unavailable for new apps starting from 23/06/2024. All functionalities are supported in the Custom and SKAN4.
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:
- In AppsFlyer, go to Settings > SKAN Conversion Studio.
- Scroll down to your active measurement mode.
- 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.
- Click Save.
Conversion value decrease
In SKAN 4 mode, you have the ability to increase or decrease the conversion value (CV). By default, CV is set to increase. By enabling conversion values to decrease, the postback will contain the latest value in the window when sending negative revenue, even if it was higher before. This capability is relevant for fine and coarse conversion values across all three windows.
Note: The Ad-revenue value will never go in the negative.
To enable conversion value decrease:
- In AppsFlyer, go to Settings > SKAN Conversion Studio.
- Select the SKAN 4.0 measurement mode.
- Click options (⋮) to display the options menu and:
- Make sure Allow conversion decrease is turned on.
Note! This will only be available to:- Apps that have been previously saved in SKAN 4 mode in conversion studio.
- Users with edit access
- Make sure Allow conversion decrease is turned on.
Examples
Examples with negative revenue
CV | Revenue | In-app event |
---|---|---|
3 | $20 - $30 | |
2 | $10 - $20 | af_add_to_cart |
1 | $0 - $10 | |
0 | NA | install |
Example 1
User made a $5 purchase - you will see an increase to CV 1
User then made a $20 purchase - you will see an increase to CV 3
User then had a -$10 purchase - you will see a decrease to CV 1
User then made an add_to_cart event - you will see an increase to CV 2
Example 2
User made a $25 purchase - you will see an increase to CV 3
User then triggered af_add_to_cart - it will remain on CV 3
User then had a -$20 purchase - you will see a decrease to CV 1
Example of an in-app schema
CV | In-app event |
---|---|
3 | af_purchase |
2 | af_add_to_cart |
1 | session |
0 | install |
Example
User did a session event - you will see an increase to CV 1
User then made a purchase event - you will see an increase to CV 3
User then did another session event - it will remain on CV 3
Support Anonymized Users
Enabling the Support anonymized users toggle ensures that SKAN conversion values are accurately updated for anonymized users, while still protecting their privacy.
Important!
This feature is relevant only for apps that call the anonymize user method to remove and hash all user-identifying information. To ensure accurate reporting by SKAN, these apps must activate the Support anonymized users toggle.
Why is it needed?
SKAN uses identifiers to update conversion values based on post-install activity. When an app calls the anonymize user method after calling the start method, the system may not be able to link some post-install events to the original install, leading to inaccurate conversion value updates.
By activating the Support anonymized users toggle, the system creates hashed identifiers for all users upon installation. This allows the app to properly link user activity to the original install, even if the user becomes anonymized at a later point, ensuring accurate reporting.
Specifications and limitations
Spec | Remarks |
---|---|
Agencies | Agencies have limited access to advertisers' SKAN Conversion Studio. |
Coarse values |
|
Organic in-app events | In SKAN 4, Custom and Decode modes, organic metrics for in-app events and overall revenue aren't available. |
Ambiguous data | After changing the SKAN configuration for the next 48-72 hours, data in the dashboard and raw data reports is ambiguous. Due to iOS timer issues, it is uncertain if the configuration used to decode the postbacks matches the configuration used to encode them before. |