Singular is offering two new reports for SKAdNetwork data:
- SKAdNetwork Raw Data: Analyze the raw SKAdNetwork install data as received in SKAdNetwork postbacks.
- SKAdNetwork Reports: See SKAdNetwork data combined with ad network cost and impressions stats and CPI calculation.
To set up SKAdNetwork, see How to Get Started with SKAdNetwork. For background, see Introduction to Singular's SKAdNetwork Solution and Understanding Singular's Conversion Value Management.
This article is aimed at customers of Singular's attribution tracker. If you use AppsFlyer as your tracker, see Getting Started with SKAdNetwork (For AppsFlyer Users) instead.
Troubleshooting SKAdNetwork Data
Troubleshooting the Raw Data Page
The Raw Data report shows SKAdNetwork data as received in SKAdNetwork postbacks - before Singular decodes the conversion value and joins SKAdNetwork data with network cost and other campaign data. SKAdNetwork logs also show raw SKAdNetwork postback data, with a row for each postback received by Singular.
- Google has a special integration with Singular in which Google does not forward the postback to Singular at all. Instead, Singular pulls aggregated SKAdNetwork stats from Google's API. Therefore, raw data is not available for Google.
- Twitter does share raw SKAdNetwork postback data with Singular, but through a special API (not by redirecting/forwarding the actual postback). Therefore, Twitter SKAdNetwork data is not available in the logs at this point (but is available in the Raw Data report).
Apple Search Ads does not use SKAdNetwork - it has a different mechanism for measuring campaigns. The data for ASA campaigns is available in your regular reports, even for iOS 14.5+ devices.
These installs may not have reached Apple's privacy thresholds. In SKAdNetwork, a postback is sent for every install, but the conversion value is only included if Apple considers that there are enough installs/users with the same value that the data can't be used to identify a specific user personally.
This report is only relevant if you are running SKAdNetwork campaigns.
This report contains only data taken from SKAdNetwork postbacks - such as install stats and the conversion value. Campaign costs are pulled from the ad network separately. To see the cost data, use the SKAdNetwork Reports page.
This report contains data from SKAdNetwork postbacks, so it only includes SKAdNetwork installs that Apple has attributed to a network.
Troubleshooting SKAdNetwork Reports
Apple Search Ads does not use SKAdNetwork -- it has a different mechanism for measuring campaigns. The data for ASA campaigns is available in your regular reports, even for iOS 14.5+ devices.
1. Make sure you've enabled SKAdNetwork postback forwarding:
Partners usually need you to activate SKAdNetwork postback forwarding to Singular. If it’s the first time you are setting up SKAdNetwork for a partner, you usually need to enable postback forwarding in the partner's dashboard, or ask your partner account manager to enable postback forwarding to Singular. For example, see the integration setup instructions for Snapchat Ads and Twitter Ads.
2. Check for invalid postbacks:
By default, Singular reports don’t include installs that were marked as “invalid” by Apple. If you are missing data from a specific partner, try to include invalid postbacks. See also: Some installs are marked as "Invalid."
To understand the installs you see, note the following limitations of SKAdNetwork:
- The SKAdNetwork framework doesn’t support web-to-app installs or installs based on probabilistic attribution (such as cross-promo).
- SKAdNetwork does not support re-engagements as they are defined by Singular (an ad campaign causes a user to re-open an app that is already installed). SKAdNetwork does support redownloads, where the user downloads an app that is not installed but was attributed to the user in the past.
- At the moment, SKAdNetwork reports do not include view-through attributions. The SKAdNetwork framework does support view-through attributions, but only starting with iOS 14.5, and it requires publishers and ad networks to update their SDKs, which is expected to be a long process.
- SKAdNetwork sends the install postback at least 24 hours (and usually more) after the install, by design. This means the data appears in reports with an inherent delay.
- SKAdNetwork also has a random timer mechanism that can delay installs by up to 48 hours and shift them to a different date. This may affect the reported results of small-scale campaigns or when looking at specific dates.
1. Check if the conversion value is missing:
Some SKAdNetwork postbacks don't include the conversion value (see Some installs don't have a conversion value). In that case, Singular knows about the install but does not have any additional information, e.g., about revenue or events.
To see if you are not getting conversion values for install, run a Raw Data report on the same app, network, and publisher and check if the conversion values are available.
2. To understand the revenue you see, note the following limitations of SKAdNetwork:
- In SKAdNetwork, revenue data is collected for a limited period of time, which may not be longer than 24 hours. Purchases and other revenue events that occur after the SKAdNetwork postback is sent are not measured.
- Revenue numbers are only estimates. The level of accuracy depends on the number of buckets defined in the conversion model and how well they correspond to actual revenue events for the specific app (see How does a Revenue model work? and What is Estimated Revenue and how is it calculated?).
- The measurement period defined in the conversion model is the maximal time period for which SKAdNetwork measures revenue (and any post-install events). If the user doesn't open the app at least once every 24 hours, the SKAdNetwork install postback may be sent before the full measurement period has elapsed. So, for example, even if the measurement period has been set to 7 days, the SKAdNEtwork postback may only report information about revenue gained in the first 2 days.
Some partners are still not showing SKAdNetwork data in their dashboards, and the stats shown for campaigns for iOS 14.5+ actually only include traditional tracker attributions (which are limited to opted-in users and probabilistic attributions).
Other partners show both types of installs (SKAdNetwork and tracker-based) together, and to see SKAdNetwork data, you have to exclude tracker-based installs. For example, see Why am I seeing discrepancies between Singular's SKAdNetwork report and the Snapchat Ads report?
Starting June 27, 2021, Singular no longer pulls SKAdNetwork stats such as estimated revenue from Facebook. Instead, we pull raw conversion values from Facebook, decode them ourselves based on the conversion model you configured, and estimate the revenue - the way we do for other SKAdNetwork partners.
Facebook also estimates SKAdNetwork revenue based on the conversion model you configured, but Facebook's method of calculation is a little different. Therefore, you can expect to see some discrepancies.
- Estimated Revenue and other metrics for April 23 to June 27, 2021, were pulled from Facebook in aggregate rather than being decoded by Singular on a case-by-case basis.
- Estimated Revenue stats for Facebook campaigns before April 23 were misleadingly high due to an issue on Facebook's side and should be ignored.
To show cost data in the SKAdNetwork report, Singular needs to know which campaign the SKAdNetwork install data applies to.
Some networks let us know by including a campaign ID, sub-campaign ID, and/or creative ID in the SKAdNetwork postback that they forward to us. Other networks have not yet been able to enrich the postback with this information.
To see which networks support enriched postbacks, see Singular SKAdNetwork Integrated Partners (note that the list is updated frequently as our network partners continue to develop their SKAdNetwork integrations!).
Before showing you SKAdNetwork data, Singular runs each SKAdNetwork postback by Apple to see if the postback is valid. Apple checks the postback signature and returns the result. Postbacks marked as "invalid" may indicate fraud, but at this stage, they may also indicate an issue with how the partner constructs and sends the postbacks.
SKAdNetwork Raw Data FAQ
SKAN is Singular's SKAdNetwork solution. The SKAN dimensions contain SKAdNetwork data, pulled directly from the SKAdNetwork postback. Only the name of the "Publisher" field was changed to match Singular terminology.
|Singular Dimension||Original Field in SKAdNetwork Postback|
|SKAN App ID||app-id|
|SKAN Network ID||ad-network-id|
|SKAN Campaign ID||campaign-id|
|SKAN Publisher ID||source-app-id|
The App, Source, and Country dimensions contain SKAdNetwork postback data that is normalized to match the rest of the data in Singular:
- App: The app name in Singular. This field is populated based on SKAN App ID, which is the ID given to the app in the SKAdNetwork framework.
- Source: The ad network as it's listed in Singular.
- Country: Derived from the IP that's included in the SKAdNetwork postback.
- Conversion Value - Count is the count of SKAN installs for which we have a conversion value. This includes conversion value 0 but does not include conversion values that were passed to Singular as Null.
- Conversion Value - Ratio is the percentage of SKAN installs for which we have a conversion value ("Conversion Value - Count" / "SKAN Installs").
Since all of your estimated revenue, engagement stats, etc., in SKAN Reports are based on decoded conversion values, Conversion Value - Count and Conversion Value - Ratio give you an idea of to what extent your SKAN stats reflect the actual performance of your campaigns.
Note: Google Ads automatically assigns Conversion Value = 0 when it doesn't have a conversion value for a SKAN install. This means that all SKAN installs from Google Ads campaigns will have conversion values (Conversion Value Ratio = 100%).
This is the day for which the information is up to date. Day 1 is the day of the install, day 2 is the next day, and so on.
After that day, the SKAdNetwork postback was sent.
For example, if the Conversion Value Description is "Revenue (10$-20$), day 3," it means:
- The SKAdNetwork postback was sent on day 3 after the install.
- Within that time, 10-20 dollars were gained from the customer.
- If the Conversion Value is "N/A," it means Singular did not receive a SKAdNetwork conversion value for this install. In this case, the Conversion Value Description dimension will also naturally be N/A.
- If the Conversion Value is a number (including 0), but the Conversion Value Description is "N/A," it means we received a postback, but there is no active conversion model defined by the advertiser. Check your models in the Conversion Models page and see the Model Configuration FAQ for help.
This notation is used for Funnel models, where the conversion value encodes information about which events have occurred out of a defined sequence of events.
Only the latest event that occurred (lowest-funnel event) is mentioned by name, but it is assumed that all the earlier events defined in the model (the higher-funnel events) have also occurred.
For more information, see How does a Funnel model work?
Apple's SKAdNetwork postbacks include a "redownload" field. According to Apple, this is set to true if the app has already been downloaded and installed by the same user (same Apple ID). Singular marks every SKAdNetwork install accordingly as either a "download" or a "redownload."
If you don't need this distinction, select to see both.
As a part of Singular's SKAdNetwork solution, we not only receive and parse SKAdNetwork postbacks from ad networks but also check with Apple to confirm that each postback represents an actual install. Validation ensures that installs are not fraudulent.
This is probably a result of Apple's privacy protection measures. To ensure conversion values can't be traced back to specific devices, Apple only includes the conversion value in the SKAdNetwork postback if a certain number of devices have the same conversion value. If you are running a small campaign, e.g., for testing purposes, you may not reach the threshold that enables you to get conversion values.
SKAdNetwork Reports FAQ
This report merges SKAdNetwork data (installs) with ad network data such as cost, clicks, and impressions.
Use this page to measure CPI by network and/or campaign name for your SKAdNetwork campaigns.
The main difference between the SKAN Reports and the regular Reports is that the SKAN Reports shows only SKAdNetwork campaigns, while the regular Reports show all campaigns.
SKAdNetwork (SKAN) and your attribution tracker are two separate mechanisms for attributing an install to an ad network.
- The number of installs measured through the SKAdNetwork framework.
- Supports users with iOS 14+ devices, regardless of whether they use ATT, opt-in or opt-out.
- As users upgrade to iOS 14.5+ and publishers adopt SKAdNetwork-enabled campaigns, we expect SKAN installs to become the more accurate measurement of campaign performance in iOS.
- The number of installs measured by your attribution tracker (whether you're using Singular's attribution service or a third-party tracker).
- Even if SKAdNetwork is enabled for an app, the tracker still looks at each install and attempts to attribute it using traditional means (device ID or probabilistic attribution, when available).
- For iOS 14.5+ devices, we expect the tracker to be unable to attribute most installs to a network, due to the unavailability of IDFA. The tracker would still count these installs but report them as "organic."
- The Tracker Installs metric in SKAdNetwork reports is the same as the Tracker Installs metric in regular reports, which is usually the same as the Installs metric.
Tip: For more information on Installs vs. Tracker Installs vs. Network Installs in regular (non-SKAdNetwork) reports, see What are source metrics?.
Yes - but in regular reports, the same installs may be attributed to different networks or appear as organic installs. This is because Installs are reported by the tracker, which works independently from the SKAdNetwork framework. For more information, see What are Tracker Installs? (Tracker Installs in the SKAdNEtwork report = Tracker Installs in regular reports, which is usually the same as Installs).
- Any install that is attributed through the SKAdNetwork framework is also examined by the tracker. In most cases, if it's an iOS 14.5+ device, the device IDFA would not be available. Lacking the IDFA, the tracker can't attribute the install to a network. It still counts the install, but reports it as "organic."
Sometimes the tracker does manage to attribute an iOS 14.5+ install to a network. This may be because:
- Users gave their consent to share their IDFA (both in the app in which the ad was served and in the advertised app), so the tracker is able to match devices by IDFA.
- Some users were not using iOS 14.5+ in spite of the campaign targeting.
SKAdNetwork (SKAN) and your attribution tracker are two separate mechanisms for attributing an install to an ad network. They both work independently for the same app, sometimes looking at the same installs.
The result is that SKAN Installs and Tracker Installs may overlap in different ways. They cannot be added up. Instead, they should be looked at as two independent measurements.
How do the metrics overlap?
Any install that's included in the SKAN Installs metric is also an install that was examined by the tracker.
If the IDFA is unavailable (as we expect would happen in most iOS 14.5+ devices), the tracker measures the install as organic. You'll then see these installs in the regular report (at Analytics > Reports) as organic installs.
If the IDFA or probabilistic matching is available, the tracker may be able to attribute the install to a network. But this is not necessarily the same network that SKAdNetwork attributed the install to, as the tracker uses a different logic.
SKAN events are the in-app (post-install) events that you chose to measure when you defined your conversion model (see the Model Configuration FAQ).
SKAN events function the same as cohort events (see the Events FAQ), except you don't need to create them in the Events page. They are created automatically when you activate a conversion model.
In the SKAdNetwork reports, Singular decodes the conversion value and shows you event metrics. Select one or more event(s) to see their metrics in the report.
- You can see your SKAN events by going to Settings > Events and clicking the SKAN Events tab. You can't delete these events, but you can rename them (by default, they are named after the SDK event that they track).
- For events defined in an engagement model, Singular auto-creates two events - a count event (e.g., to measure the number of ad views) and a unique event (to measure how many users have viewed an ad).
If you're using a funnel model, whenever the conversion value indicates that a lower-funnel event (an event that is further down the list) has occurred, Singular assumes all the higher-funnel events defined in the model have also occurred. The event counts reflect this assumption.
For example, if you have configured a Funnel model with the following events:
Whenever Singular sees (based on a conversion value in a postback) that the "Level 15 Reached" event has occurred, it also marks that the "Level 5 Reached" and "Level 10 Reached" events have occurred. Your reporting will reflect these counts.
While in this example, the sequence of events is intuitive, it's technically possible to define a model with any events in any order. To prevent falsely inflated event counts, make sure that your event funnel is well-defined in that lower-funnel events can only occur if higher-funnel events have already occurred.
For more information, see How does a Funnel model work?
Estimated Revenue is the revenue gained from users who converted through SKAdNetwork campaigns that use a Revenue model.
The SKAdNetwork postbacks for these campaigns contain a conversion value that represents the approximate revenue gained from the user.
Since the decoded conversion value gives a revenue bucket (range) rather than an exact value, Singular estimates the revenue per user as follows:
- For any bucket except for the last one, Singular averages the lower and upper bounds of the bucket.
- For the last bucket in the model, which only has a lower bound, Singular calculates the average bucket size of the other buckets. Then we add that number twice to the lower bound of the last bucket.
Estimated ROI is similar to the ROI metric, except that it is based on the SKAdNetwork Estimated Revenue.
This metric is available when Estimated Revenue and Cost are both available.