SKAdNetwork Reports FAQ

The SKAdNetwork Reports page (SKAdNetwork > Reports) merges SKAdNetwork data (installs) with ad network data such as cost, clicks, and impressions. Use it to measure CPI by network or campaign name for your SKAdNetwork campaigns.

To understand the differences between this and other reports offered by Singular, see Short Guide to Singular's iOS Reporting Options.

If you're new to SKAdNetwork, see How to Get Started with SKAdNetwork.

Having trouble using the SKAdNetwork Report? Seeing unexpected data in your reports?
See the troubleshooting section below.


SKAdNetwork Reports FAQ

What does the SKAdNetwork Reports page offer?

This report merges SKAdNetwork data (installs) with ad network data such as cost, clicks, and impressions.


Use this page to measure CPI by network or campaign name for your SKAdNetwork campaigns.

The main difference between the SKAN Reports and the regular Reports is that the SKAN Reports show only SKAdNetwork campaigns, while the regular Reports show all campaigns.

What are Tracker Installs? What is the difference between SKAN Installs and Tracker Installs?

SKAdNetwork (SKAN) and your attribution tracker are two separate mechanisms for attributing an install to an ad network.

SKAN Installs:

  • 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.

Tracker Installs:

  • 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). 
  • 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/Tracker Installs/Network Installs in regular (non-SKAdNetwork) reports, see What are source metrics?.

Are SKAN Installs (in the SKAdNetwork report) included in the Installs in regular reports?

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).

Why do I have any Tracker Installs at all for SKAdNetwork campaigns?
  1. 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."
  2. 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 can match devices by IDFA.
    • Some users were not using iOS 14.5+ despite the campaign targeting.
Why can't I add up SKAN Installs + Tracker Installs to get a complete picture of the campaign performance?

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 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.
What are the Conversion Value - Count and Conversion Value - Ratio metrics?

The two metrics are defined as:

  • 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%).

Is this report available through the Singular API or Data Destinations (ETL)?


What is the Date Type?

Select Postback Date to run reports based on the date in which Singular received the SKAdNetwork postback from the ad network. Select Estimated Install Date to run reports based on Singular's calculation of what the app install date was (see How does Singular calculate the install date?).

What is the SKAN View Through field?

SKAdNetwork includes a parameter called "Fidelity Type" that indicates whether the install was StoreKit-rendered (followed by an ad click) or based on a View Through (followed an ad view). Select SKAN View Through to breakdown the SKAN Installs by the fidelity type - "True" refers to Installs generated from View-Through, while "False" refers to Installs generated from ad clicks.

What are SKAN Events?

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).
How do SKAN events work with a Funnel model?

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?

What is SKAN Revenue and how is it calculated?

SKAN Revenue is the revenue gained from users who converted through SKAdNetwork campaigns that use any revenue-enabled conversion model.

The SKAdNetwork postbacks for these campaigns contain a conversion value that represents the approximate revenue gained from the user.

Note: This metric replaces the older Estimated Revenue. If you use the SKAdNetwork Reporting API, we encourage you to use the skan_revenue metric, which comprises revenue from any conversion model you may be using.


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.


What is SKAN ROI and how is it calculated?

SKAN ROI is similar to the ROI metric in regular (non-SKAdNetwork) reports, except that it is based on the SKAdNetwork Revenue. This metric is available when SKAN Revenue and Cost are both available.

What is SKAN advanced analytics?
What are SKAN modeled metrics/events?
What are Events Postbacks Periods (P1/P2/P3)?
What are Downloads and Redownloads?

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.

What is the SKAN Validation Status?

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.

There can be various reasons for a postback to be detected as invalid, for example:

  • The postback has an invalid cryptographic signature by Apple
  • The postback is a duplicate based on its transaction ID
  • The postback has manipulated or missing expected fields

Troubleshooting SKAdNetwork Reports

Why don't I see Apple Search Ads (ASA) data in the SKAdNetwork 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.

Should I use standard reports or SKAN reports?

Use SKAdNetwork > Reports when you're running SKAdNetwork campaigns for iOS 14.5 and above.
Use Analytics > Reports when you're running iOS campaigns that use Snapchat Advanced Conversions and all non-iOS campaigns.

Why don't I see any SKAdNetwork data for a specific partner?

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."

Why are installs lower than expected?

To understand the installs you see, note the following limitations of SKAdNetwork:

  • The SKAdNetwork framework doesn't support web-to-app installs.
  • SKAdNetwork does not support re-engagements as they are defined by Singular (see the Re-engagement FAQ). SKAdNetwork does support redownloads, where the user downloads an app that is not installed but was attributed to the user in the past. To include redownloads in your Singular SKAN report, select "Show Both" under SKAN Conversion Types.
  • 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.

You may also need to confirm whether your point of comparison is from the same date range as your Singular report.

Why are Revenue metrics lower than expected?

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 SKAN 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.
Why is there a discrepancy between Singular's SKAdNetwork report and the partner dashboard?

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).

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?

Why is there a discrepancy between SKAN Revenue in Singular and estimated revenue in the Facebook dashboard?

Singular pull raw conversion values from Facebook, decode them based on the conversion model you configured, and estimate the revenue - the way we do for other SKAdNetwork partners.


In some cases Facebook sends us a Modeled Conversion Value depends on their internal modeling. Thus, we might see a Conversion Value which does not exists in the configured Conversion Model. As a result we cannot Decode this Conversion Value and ignore it in our Advanced SKAN Metrics.

We run our own SKAN Model Revenue based on the SDK Events and SKAN raw data, see here for more details  

Why is there a discrepancy between SKAN Installs and Tracker Installs (or installs in the regular report)?

SKAN Installs and Tracker Installs are two independent metrics that are not supposed to match, though there may be overlap between them.

Tracker installs refer to attributions made through traditional means, i.e., the device ID (if shared by the end-user). See What are Tracker Installs?

I have a campaign targeted at iOS 14.5+ devices. Why does it have any Tracker Installs at all (or regular installs in the non-SKAdNetwork report)?
Why don't I see cost data for some networks/campaigns?

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, 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!).

Why are there "Censored" or "N/A" values in SKAdNetwork logs and reports?

Some partners require Singular to hide some dimensions, such as SKAN Publisher ID (the equivalent of Apple's source-app-id), to comply with the partner's data-sharing policies. In that case, the dimension value appears as "Censored" in SKAdNetwork logs and "N/A" in aggregate reporting.

Why are some installs marked as Invalid?

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.

Where do I see Snapchat Advanced Conversions reports?

Snapchat uses a proprietary method to attribute installs instead of SKAdNetwork. To see Snapchat Advanced Conversions, make sure you have , and use the "Network Installs" dimension in the regular reports (Singular > Analytics > Reports).

Why are some campaigns missing country data?

The SKAdNetwork framework does not provide country or other geographic information. Singular can sometimes fill out this dimension based on the campaign's targeting settings, but only if the campaign is targeted at a single country.