Update (July 2023): For information about the new SKAdNetwork 4 framework and SKAN 4 models, see our SKAN 4 FAQ.
The Model Configuration page (SKAdNetwork > Model Configuration) lets you configure the SKAdNetwork conversion models you will be using to run SKAdNetwork campaigns for your apps.
A conversion model is a way to encode as much information as possible about the user and their post-install activity into the limited space allowed by Apple's SKAdNetwork framework. Singular offers different types of conversion models. Each one focuses on a specific type of information, such as revenue or conversion events, and leaves out other types of data.
Before you start configuring conversion models, be sure to read the following guides:
General Concepts and Planning
When tracking installs and user activity through SKAdNetwork, we rely on the conversion value - a single number in the range of 0 to 63 that is sent from the app to the ad network some time after the app is installed.
A conversion model is a way to encode as much information as possible about the user and their post-install activity into the limited space of the conversion value.
Singular offers different types of conversion models. Each one focuses on a specific type of information and leaves out other types of data.
When you configure a conversion model and pick the conversion model type, you are actually selecting which information will be available to you about the post-install activity of your users. Choose the conversion model that best matches your KPIs and campaign optimization processes.
» For more information, see Understanding Singular's Conversion Value Management.
For each app that you are marketing, you can choose one of the following conversion model types:
Model Type |
Description |
Revenue |
Lets you optimize your campaigns based on revenue gained during the measurement period following the install/reinstall. A revenue model can measure three types of revenue, depending on how you set it up: in-app purchase revenue, ad mon revenue, or both (all revenue). See also: SKAN Optimized Models FAQ |
Conversion Events | Lets you optimize campaigns based on specific post-install user activity. The model encodes user events into the conversion value if they occur at least once during the measurement period. |
Engagement | Lets you optimize your campaigns by how much the users engaged with the app during the measurement period. The model encodes into the conversion value how many times various events occurred during the measurement period. |
Funnel | Lets you optimize campaigns based on a specific post-install user journey. The model encodes user events into the conversion value in the order in which the events occurred during the measurement period. |
SKAN 4 Funnel [NEW] | The new version of the funnel model, available for SKAN 4 only, lets you include revenue buckets in the user journey (not just events). This way you can measure both events and revenue. |
Mixed Models |
Mixed models allow you to get both revenue information and one other type of information about the same SKAdNetwork campaign. Singular offers three mixed models: Conversion Events and Revenue, Engagement and Revenue, and Funnel and Revenue. |
|
We encourage experimenting and iterating with different conversion models to find the one that gives you the best results. However, to begin, try the following steps:
- First, think about the ideal (high-value) new users and what their first 7 days would look like. This should point you towards which conversion points are meaningful. Make sure these conversion points are reported as events in your Singular SDK implementation.
- Next, pick a conversion model that most closely represents this ideal user journey. You can start with revenue and retention models, but experiment with other models by using simulated reports.
- Finally, think how quickly the user can complete this ideal journey. Select the shortest measurement period possible to maximize your ability to capture this activity.
You can choose to use a different model to manage your conversion values. If you do, make sure you configure the Singular SDK in your app to use manual management mode for SKAdNetwork.
Warning: Singular does not yet support ingesting your custom conversion model into the SKAdNetwork Conversion Management tool to use in reporting and decoding conversion value meanings.
In SKAdNetwork, ad network partners receive the SKAdNetwork postback with the raw conversion value (0-63). To know the qualitative meaning of that value, they need to work with the entity managing the assignment of conversion values (the conversion model manager).
Singular's SKAdnetwork integrations with supported partners allow partners to decode the meaning of SKAdNetwork conversion values they are receiving from SKAdNetwork postbacks.
Advertisers can also download a Preview Conversion Values for a Conversion Model and share that with their partners to help account teams decode. In Singular, go to SKAdNetwork > Model Configuration, click on the vertical ellipse to select Preview Conversion Values to automatically download the mapping.
» For an up-to-date list of partners and what features each one supports, see Singular SKAdNetwork Integrated Partners.
The measurement period is a Singular setting you can configure to determine how long the app continues to encode post-install activity into the conversion value. Once the measurement period elapses, the SKAdNetwork postback is sent along with the last updated conversion value.
If you choose a longer measurement period, you will have more time to collect information about user activities to include in the conversion value - but you will also cause a delay in getting any information at all about the install.
The measurement period also determines the longest retention periods and cohort periods that can be measured with SKAdNetwork. For example, if you set the measurement period to 3 days, Singular can only encode information about the first 3 days after the install into the conversion value. This means that the longest possible retention period that can be tracked as well as the longest cohort period is 3 days.
Note: Singular has introduced the measurement period to give you better control over the content and timing of the conversion value postback. The measurement period also is used to calculate the original install date for the postback. Without a maximum measurement period, you wouldn't be able to ensure that SKAdNetwork postbacks are received within a given timeframe.
When you set the measurement period to more than 1 day, Singular reserves a certain number of slots out of the 6-bit conversion value to use for tracking the user retention period.
For example, if you set the measurement period to 7 days, Singular reserves 3 slots (because the number 7 requires 3 bits to represent it - it is "111" in binary).
Then, whenever the app reports sessions to Singular, Singular uses these reserved bits to update the number of days the user has been active after the install. After the postback is sent to the network and forwarded to Singular, Singular can decode this part of the conversion value to determine retention and cohorts.
While this method may cost you valuable information slots, it is the only way to find the install date/attribution date. SKAdNetwork does not provide the attribution date. Singular can only calculate it by looking at the retention time and the postback timestamp.
Another benefit of the retention method is that every time you update the conversion value for retention, you delay the SKAdNetwork postback by 24 additional hours, extending the period when you can measure post-install activity.
Note: If you set the measurement period to 1 day, Singular will not measure cohorts and retention and all 6 slots of information will remain available for your chosen conversion model.
SKAdNetwork does not provide the attribution date. Singular calculates it for you by looking at the retention time and the postback timestamp.
When you set the measurement period to more than 1 day, Singular reserves a certain number of "slots" (bits) out of the 6-bit conversion value to use for tracking the user retention period. Then, whenever the app reports sessions to Singular, Singular uses these reserved bits to update the number of days the user has been active after the install. While this method may cost you valuable information slots, it is the only way to find out the install date/attribution date.
Types of Conversion Models
See a list of the models currently supported for SKAN 4.0.
A revenue model can measure one of the types of revenue below, depending on how you set it up. Click on the revenue type to learn more about setting up this type of model.
Revenue Type |
Description |
All revenue | Both in-app purchase and ad mon revenue. |
Ad mon revenue | Revenue gained from ads displayed during the measurement period. |
In-app purchase revenue | Revenue gained from user purchases within the app during the measurement period. |
An All Revenue model lets you optimize your campaigns based on both in-app purchase revenue and ad revenue. Singular adds up the two sums and displays them in your reports as Estimated Combined Revenue.
Note: In order to get the ad revenue data, you first have to implement ad revenue attribution in your SDK integration (see instructions for the Attribution_Support" target="_self">iOS SDK and Unity SDK).
Since the SKAdNetwork conversion value is limited to 6 bits, Singular can't use it to encode the exact revenue. Instead, you define revenue buckets and Singular will map each revenue bucket to a conversion value.
For example, you can define the following revenue buckets:
- $0 - $2 → encoded to 1
- $2+ - $5 → encoded to 2
- $5+ - → encoded to 3
This way, if a user spends $3 in the app and brings in an additional $0.50 in ad revenue, the conversion value is 2.
Important:
- This model lets you estimate the total revenue from your users, but it does not let you differentiate between in-app purchase revenue and ad revenue.
- When configuring a Combined Revenue model, you have to make sure that the revenue buckets you define are small enough to include ad revenue (measured in revenue per single impression) but large enough to capture in-app purchase revenue.
- The number of revenue buckets you can define depends on the remaining number of slots after you've selected your measurement period.
SKAdNetwork Flow
- The user installs/reinstalls the app.
- The user makes an in-app purchase or views an ad inside the app.
- The Singular SDK sends the event information to the Singular servers. The servers match the revenue to one of your predefined revenue buckets and send back the appropriate conversion value.
- This process can repeat multiple times until the measurement period elapses. At that point, the SKAdNetwork postback is sent to the network.
- Once Singular gets the SKAdNetwork postback, we decode the value back to the revenue bucket and display the approximate Combined Revenue in your reports.
An Admon Revenue model lets you optimize your campaigns based on the ad revenue gained from users in a certain number of days following the install (the number of days is defined by the measurement period).
Note: To get the ad revenue data, you first have to implement ad revenue attribution in your SDK integration (see instructions for the iOS SDK and Unity SDK).
Since the SKAdNetwork conversion value is limited to 6 bits, Singular can't use it to encode the exact revenue. Instead, you define revenue buckets and Singular will map each revenue bucket to a conversion value.
For example, you can define the following revenue buckets:
- $0 - $0.05 → encoded to 1
- $0.05+ - $0.1 → encoded to 2
- $0.1+ - → encoded to 3
This way, if a user brings in $0.07 by viewing ads, the conversion value is 2. The conversion value will include information about which revenue bucket the user belongs in.
Notes:
- Revenue is measured per single impression (not eCPM).
- To accommodate the small sums per impression, you can define buckets with a precision of up to 6 decimal points.
- The number of revenue buckets you can define depends on the remaining number of slots after you've selected your measurement period.
SKAdNetwork Flow
- The user installs/reinstalls the app.
- The user views an ad.
- The Singular SDK (with ad revenue attribution support) sends the impression information to the Singular servers. The servers add the impression value to one of your predefined revenue buckets and send back the appropriate conversion value.
- This process can repeat multiple times until the measurement period elapses. At that point, the SKAdNetwork postback is sent to the network.
- Once Singular gets the SKAdNetwork postback, we decode the value back to the ad revenue bucket and display the approximate ad revenue in your reports.
Note: Singular now offers automatically generated optimized models for this type of model. For more information, see the Optimized Models FAQ.
An In-App Purchase Revenue model lets you optimize your campaigns based on the revenue gained from users through in-app purchases in a certain number of days following the install (the number of days is defined by the measurement period).
Since the SKAdNetwork conversion value is limited to 6 bits, Singular can't use it to encode the exact revenue. Instead, you define revenue buckets and Singular will map each revenue bucket to a conversion value.
For example, you can define the following revenue buckets:
- $0 - $5 → encoded to 1
- $5+ - $10 → encoded to 2
- $10+ - → encoded to 3
This way, if a user spends $7 in the app, the conversion value is 2. The conversion value will include information about which revenue bucket the user belongs in.
Note: The number of revenue buckets you can define depends on the remaining number of slots after you've selected your measurement period.
SKAdNetwork Flow
- The user installs/reinstalls the app.
- The user makes an in-app purchase or another revenue event.
- The Singular SDK sends the event information to the Singular servers. The servers match the revenue to one of your predefined revenue buckets and send back the appropriate conversion value.
- This process can repeat multiple times until the measurement period elapses. At that point, the SKAdNetwork postback is sent to the network.
- Once Singular gets the SKAdNetwork postback, we decode the value back to the revenue bucket and display the approximate revenue in your reports.
A Conversion Events model lets you optimize your campaigns based on specific post-install user activity that you are interested in measuring.
The model encodes user events into the conversion value if they occur at least once during the measurement period.
For example, you can define the following post-install events:
- Event 1: Registration
- Event 2: Game Level Completed
- Event 3: In-App Purchase
The conversion value will contain information about which of these events occurred for the particular user.
Note: The number of events you can define depends on the remaining number of slots after you've selected your measurement period.
SKAdNetwork Flow
- The user installs/reinstalls the app.
- The user performs an activity inside the app.
- The Singular SDK sends the event information to the Singular servers. If the event is one of the defined events that you want to measure, and this is the first time it occurs, the conversion value is updated to show that it occurred.
- This process can repeat with different events until the measurement period elapses, but each type of event is counted only once.
- Once Singular gets the SKAdNetwork postback, we decode the value back to the events that it represents and make the information available to you in reports, postbacks, etc.
The Engagement model lets you optimize your campaigns by how much the users engaged with the app during the measurement period.
The model encodes into the conversion value how many times various events occurred during the measurement period.
For example, you can define a list of post-install events as follows:
- Event 1: Likes
- Event 2: Levels Completed
The conversion value will contain information about how many times each of these events occurred.
Notes:
- The number of events you can define depends on the remaining number of slots after you've selected your measurement period.
-
The more events you define, the fewer slots are available to count the occurrences of each event. This limits the number of occurrences you can count. For example, if you have 2 events and 4 slots (after setting the measurement period), each event gets 2 slots (2 bits), which means you can count up to 3 occurrences of each event.
SKAdNetwork Flow
- The user installs/reinstalls the app.
- The user performs an activity inside the app.
- The Singular SDK sends the event information to the Singular servers. If the event is one of the defined events that you want to measure, the conversion value is updated to count one more occurrence of the event.
- This process can repeat with different events until the measurement period elapses.
- Once Singular gets the SKAdNetwork postback, we decode the value back to the events and counts that it represents, and make the information available to you in reports, postbacks, etc.
The original Funnel model (for SKAN 3 campaigns) lets you optimize campaigns based on a specific post-install user journey.
Like a Conversion Events model, the Funnel model encodes information about whether certain events (such as a purchase, reaching a certain level in a game, etc.) have occurred during the measurement period. The difference is that in the Funnel model, you define events as a sequence and it is assumed that if a later (lower-funnel) event occurred, all the earlier events must have also occurred.
For example, if you have a gaming app, you can define the following list of events:
If the user reaches level 5, the conversion value will represent the information that the first event occurred. If the user reaches level 10, though, the conversion value will represent the information that the first event and the second event have occurred. If the user reaches level 15, the conversion value will represent the information that all three events have occurred.
A Funnel model is powerful in that it maximizes the number of events that can be encoded into the conversion value. However, it relies on having a well-defined user journey in which events can only occur in a certain sequence.
Note: The number of events you can define depends on the remaining number of slots after you've selected your measurement period.
SKAdNetwork Flow
- The user installs/reinstalls the app.
- The user performs an activity inside the app.
- The Singular SDK sends the event information to the Singular servers. If the event is one of the defined events that you want to measure, the SDK checks to see if a lower-funnel event (a later event in the sequence) has been measured already. If not, the conversion value is updated to reflect that the event has occurred.
- This process repeats until the measurement period elapses.
- Once Singular gets the SKAdNetwork postback, we decode the value to the events it represents, and make the information available to you in reports, postbacks, etc.
A SKAN 4 Funnel model is similar to the original Funnel model, except it lets you define some of the steps in the funnel as events and some as revenue buckets (see illustration).
Each step in a SKAN 4 Funnel model encapsulates data about all the steps preceding it. E.g., in this example, if the conversion value in a SKAN postback indicates "Level 10 Reached", Singular assumes that "Sign-Up" and "Level 5 Reached" have also occurred. This will be reflected in your reporting data.
Similarly, if the postback indicates "Revenue Bucket: [$0.5-1]", Singular automatically records the following data: "Sign-Up" event + "Level 5 Reached" event + "Level 10 Reached" event + $0.5-1 of revenue.
A SKAN 4 Funnel model is powerful in that it maximizes the number of events and the number of revenue buckets that can be encoded into the conversion value. However, it relies on having a straightforward user journey in which events can only occur in a certain sequence.
Note: When a SKAN 4 Funnel model is in place, Singular's conversion value management inside the app is based on funnel logic. In this example, if "Level 5 Reached" happens in the app, the Singular SDK updates the conversion value accordingly - even if "Sign-Up" hasn't happened. To avoid creating incorrect data in your SKAN campaign reports, make sure your model is well-defined.
SKAN 4 Funnel vs. Mixed Model
Both the SKAN 4 Funnel model and the Mixed model allow you to track events and revenue at the same time.
However, a Mixed model limits you to a smaller number of revenue buckets. This is because in a mixed model (assuming it's a revenue + events model), each conversion value needs to correspond to both an event and a revenue bucket. For example, CV = 0 may mean "_INSTALL_ event and no revenue" while another CV may mean "_INSTALL_ event and $0-1 revenue".
In contrast, a SKAN 4 Funnel model lets you assign a separate CV to each event and then a separate CV to each revenue bucket, leaving you room to define a larger number of buckets. See the following example:
Summary: SKAN 4 Funnel vs. Other Model Types
Original Funnel (SKAN 3) |
SKAN 4 Funnel | Mixed Model |
---|---|---|
|
|
|
Note: In a SKAN 4 Funnel model, the revenue buckets are always defined as further down the funnel than the events. This reflects the fact that revenue is usually the strongest indicator of a high-quality conversion.
Mixed models allow you to get revenue information + one other type of information about the same SKAdNetwork campaign.
Singular offers three mixed models:
- Conversion Events and Revenue
- Engagement and Revenue
- Funnel and Revenue
In terms of the SKAdNetwork conversion value, using a mixed model means that some bits of the value encode information about revenue, while other bits encode information about events, funnel, or engagement.
Tip: Mixed models have many different use cases depending on your analytics needs and limitations. For example:
- You want to get revenue information when it is available, but it is often not available because your users don't make a purchase within the defined time period.
- You don't need a large number of revenue buckets, and prefer to devote some of the conversion value bits to get some additional information about the user.
Note: Mixed model data is available in Singular reports, but the ad network has to decode the data. If it's not supported by your network, the data will show up as the bit value. Mixed models are already supported by Facebook and TikTok, among others.
Setting Up a Mixed Model:
When you choose a mixed model, you need to configure both a revenue model and another type of model (events, funnel, or engagement) in the Model Configuration panel.
The slots are divided between the two models. For example, if you chose a mixed revenue + events model, then the more revenue buckets you define, the fewer events you can define, and vice versa.
Configuring a New Conversion Model
To configure a new conversion model:
- In your Singular account, go to SKAdNetwork > Model Configuration.
- Select an app from the list on the left.
- Click Add Conversion Model.
- Select the Measurement Period (see What is the "measurement period"? What should I set it to?).
- Select the model type (see What types of conversion models does Singular offer?).
- Enter a name for the model and configure the additional settings. These settings depend on the model type you selected.
- You can expand the Analyze Model section to see a simulated report of how the model with the current configured settings would perform with your data. For more information, see What is "Analyze Model"? How do I use it to help me pick a conversion model?
- Click Save. The new conversion model is added to the list.
Note: The new model is not automatically activated. To start actually using the model, you have to toggle it on.
No, the order in which you add events does not matter. Specifically. when using the Conversion Events model, Singular will update the conversion value when at least one occurrence of the selected event(s) or combination of selected event(s) has occurred.
Once you've configured a model, you can expand the Analyze Model section and click Download Analysis Report. This will download a report estimating what metrics you would get using the current model, based on installs and events data that Singular has tracked based on your SDK/S2S implementation.
The report estimates what the SKAdNetwork metrics (installs, events, and revenue) would be if you used the current model you've configured, as compared with the actual metrics you have tracked outside of SKAdNetwork.
To calculate the estimated SKAdNetworkmetrics, Singular takes into account your real data from your users' devices, the settings of your conversion model, and the various properties and limitations of the SKAdNetwork framework.
The resulting report (see details below) should help you decide whether the model gives you enough information or whether you should tweak it or use a different type of model.
Tip: You can also use the Analyze Model shortcut from the model summary page to run an analysis report on previously created models. The report will run on events from the last 7 days. To select a custom period, select Edit to open the configuration panel.
When you select Analyze Model, the resulting CSV file contains the following columns (in addition to some other columns depending on the specific model and the events you selected).
Use the report to get an estimation of your model's performance.
Column | Description |
Install Date | The app install date, as calculated by Singular. |
App | The name of the app. |
Source | The name of the partner network that the app install/reinstall has been attributed to. |
Model Name | The name of the conversion model chosen for analysis. |
SKAN Installs | The estimated number of SKAdNetwork installs on the "install date". This metric is calculated based on non-organic, last-click installs (these are the only installs supported by SKAdNetwork). |
SKAN [Conversion Name]* | The estimated number of conversions this conversion model will attribute. This metric will be calculated with cohort periods of 1d and up to your model measurement period. |
Reported [Conversion Name]* | Your current conversion metric. This metric will be calculated with cohort periods of 1d and up to your model measurement period. |
[Conversion Name] Ratio* | The ratio between your estimated SKAN conversion metric to your current conversion metric. This ratio is calculated only on the last cohort period which is also your measurement period. When this ratio is close to 1 it means that your estimated SKAN metric is almost equal to your current metric. |
Working with the Conversion Management Dashboard
There is currently no limit to the number of conversion models you can configure. However, only one model can be active for an app at any given time.
After you've configured a conversion model, you can select Preview Conversion Values to download a CSV file containing the conversion values from 0 to 63 and their meaning using the specific model.
The resulting .csv will contain the following fixed columns, as well as dynamic columns based on the conversion model and events chosen.
Column | Description | Example |
Conversion Value | The conversion value, 0-63 | 10 |
Conversion Events | The name of the conversion event | Registration |
Retention | The time period represented as an interval in hours | 24h+ -> 48h |
Engagement Model
Column | Description | Example |
Conversion Value | The conversion value, 0-63 | 10 |
[Event Name]* Count | For each event used in the model, this column will represent the count of occurrences of this event | 2 |
Retention | The time period represented as an interval in hours | 24h+ -> 48h |
Revenue Model
Column | Description | Example |
Conversion Value | The conversion value, 0-63 | 10 |
Revenue Buckets | The bucket to which the revenue amount is assigned. The amount is represented in your account's selected currency type. | $1+ -> $2 |
Retention | The time period represented as an interval in hours | 24h+ -> 48h |
To change from one conversion model to another:
- Go to the Conversion Management dashboard.
- Toggle the new conversion model to On.
- Save your changes.
Singular will pause your existing model and then activate the new model. Due to SKAdNetwork limitations, this process takes 48 hours. Here is what happens:
- No conversion values are sent or recorded for 24 hours. Measurement data is lost.
- All SKAdNetwork postbacks received in the next 24 hours (Hours 25-48) are processed using the old model.
- During the same time, Singular starts updating conversion values using the new model.
- At the end of 48 hours, we start using the new conversion model for decoding postbacks.
Tip: During this gap period in which the new model is not yet activated, you can change your mind and pick a different model or change the model settings.
Note: While we encourage you to experiment with different models when you start using SKAdNetwork, we don't recommend changing models regularly afterward, due to the inherent delay in the system until you can see the new results. Also, note that Facebook pauses campaigns for 72 hours when a conversion model is updated.
To edit an existing conversion model:
-
Click the model's dropdown menu and select Edit. This opens the conversion model configuration panel.
- Change configurations as needed and select Save.
Warning: Changing the settings of the current active model creates a migration process. Singular will pause your existing model and then activate the model with the new settings. Due to SKAdNetwork limitations, the process takes up to 48 hours and includes a 24-hour gap in which no conversion values are sent or recorded. See How do I migrate from an active conversion model to a new model?
You can archive a conversion model to remove it from the conversion models dashboard. To archive a model, click its dropdown menu and select Archive.
You can only archive a model that is not being used.
Once a model is archived, you cannot bring it back.
You can define conversion models, preview their values and analyze them but selecting and submitting a live model will not have an impact if your SDK version doesn't support SKAdNetwork (as SKAdNetwork postbacks will not be sent from your devices).