The complexities of measuring ROAS in a privacy-centric world: 3 approaches to consider

By Dubi Furie
The complexities of measuring ROAS in a privacy-centric world - square

Return on ad spend (ROAS) is the holy grail of mobile marketing measurement, especially now in the post iOS 14.5 era, when calculating ROAS has become a challenging task for advertisers.  

The calculation by itself is simple. However, to calculate, you must aggregate the cost and match it to attribution and revenue, and this is becoming more complex than ever. 

This blog post will surface some of these issues and share the different approaches to solutions. Let’s deep dive into it.

Why is ROAS so hard to measure in a privacy-centric world?

Matching cost and attribution data has always been a big challenge for advertisers, mainly due to the data fragmentation across ad networks

The average marketer works with several ad networks, and every ad network has its own data scheme, business rules, business models, data refresh rate, etc. The lack of standardization has made it difficult to normalize cost data and combine it with attribution.

With the onset of the Apple iOS 14.5 release and ATT framework, multiple forms of attribution evolved, leading to more data fragmentation: SKAdNetwork (SKAN), privacy-centric attribution, web-to-app and others. The multiple forms of attribution have resulted in new data challenges.


The true cost of data inaccuracies

Find out more

What issues were created by the new forms of attribution?

1- Varying data granularities across cost and attribution for the same ad network. 

For example, Network A reports on spend at the campaign, adset, ad, and county levels. However, for attribution, Network A has two different levels of granularity. One is for SKAN, and another one for everything else. For SKAN attribution, the reporting hierarchy is at the campaign level. 

The reporting hierarchy is the same for the remaining campaigns as the cost is getting reported. Based on your goal and what you’re trying to optimize, you must combine the data at the right granularity level. 

Sometimes, you’ll even have to store the same data twice and use it differently. And if you’re working with more partners, you must make these adjustments repeatedly. As you might have noticed already, this is not a simple task.

2 – The accuracy of the data – In the new environment, the effective cost per install (eCPI) and ROAS are not 100% accurate. And without accurate measurement of these indicators, it’s hard to optimize campaigns or allocate new budgets to channels. 

The problem is that these numbers deviate from the truth because of overlapping installs across SKAN and the non-SKAN attribution methods. In addition, the cost is reported without the SKAN distinction (a campaign is a campaign). 

So when you look at SKAN attribution reports, you see one number, and when you look at the non-SKAN attribution reports, you see another. How do you know which one to believe? There is no magic method here. And since ROAS and eCPI are critical KPIs, it has enormous ramifications.

Approaches to deal with these issues

There are several ways of addressing data issues, and every approach has its pros and cons.

Approach 1: Do it yourself, manually

Every time you optimize a campaign, you can download a report from the ad network dashboard and perform the matching in a spreadsheet by yourself.


  • A cheap solution
  • Anyone can do it


  • Manual work takes time. Research has shown that the average marketer spends a third of their time on repetitive tasks.
  • Data accuracy is always at risk, as manual work is often prone to errors. Data inaccuracies are the result of making the wrong decisions based on the wrong data.

Approach 2: Do it yourself, programmatically

Another method is to develop the connection to the partner APIs yourself and piece it together with your attribution data. 


  • Saves you the manual work.
  • Enables scale as you grow your marketing efforts.
  • The most flexible option because you own everything, which means it’s more suitable for large teams. Using this method, you can determine when to pull the data, in what granularity, format, how to match it to attribution, and so on.


  • This option de-focuses you from your marketing work. Instead, you’re focused on building a data aggregation product that’s not your main focus.
  • High cost. Developing and maintaining API integrations with ad networks is resource-intensive. You’ll have to pay for the cloud cost and for the team of engineers who’ll need to support this system.
  • The data is complex, and figuring it out takes time. For example, when the name of a campaign changes, all your cost and attribution matchings might break. Your system must support this scenario, among many others, to offer the highest level of accuracy. 
  • Lastly, when introducing new partners, you’ll need to hold off until their integration is fully developed.

Approach 3: Use a cost aggregation software

A different approach could be using a 3rd party software to aggregate your cost and match it to attribution in your internal BI system — programmatically.


  • Saves you the manual work
  • Highly scalable
  • Cost aggregation software is highly specialized
  • When ready to introduce new partners, your requirements are likely covered


  • It’s not your main business focus.
  • Complexity. You’ll have to make sure that you’re getting the data from two different sources (cost and attribution), scheduling the ingestion to your BI accordingly, and managing the varying data granularity levels.
  • Cost-intensive. When choosing this option, you’ll need to pay an attribution vendor and a cost aggregation vendor in addition to the cloud cost designated for managing the data on your BI.

What about my ROAS and eCPI?

When it comes to your ROAS and eCPI, you can’t deduplicate the SKAN and non-SKAN install data by yourself. Neither can the ad network. Unless your attribution partner does that for you, your eCPI and ROAS will continue to be inaccurate when using any of the options mentioned above.

The reason for this is that the SKAN data is anonymized; the postback advertisers get from Apple contains only attribution details and conversion value. In other words, it’s impossible to link the postback to a specific user due to Apple’s privacy-preserving features — like randomized delays in firing the postback. 

Because of that, it’s impossible to determine whether the same event was attributed by more than one attribution method.

Cost and attribution are better together

There is another solution: your MMP. If your attribution partner aggregates cost, you can get cost and attribution data using the same platform. When that’s the case, your attribution partner can take care of the SKAN versus non-SKAN attribution methods while matching it to cost. 

Let’s go back to Network A. In this example, you’d get cost data at the campaign level for SKAN, and the campaign, adset, ad, country, and channel levels for non-SKAN. In this case, your attribution partner connects the cost data at the right granularity level based on your goals, be it SKAN or non-SKAN.

That’s exactly what AppsFlyer’s Xpend does. Instead of focusing on building a sophisticated system, pulling the data manually, or matching it to attribution, you can view your cost with the analytical dashboards, and/or pull the cost tied to attribution data directly to your internal BI system via Cost ETL.

Measuring ROAS in a privacy-centric world: Aggregated performance report

You might be thinking. OK, but how would I deduplicate installs and get accurate ROAS data? AppsFlyer recently introduced its first-to-market Single Source of Truth (SSOT) solution, that allows advertisers to deduplicate the overlapping installs. 

Our data shows that up to 35% of installs may be reported twice, which only goes to show how inaccurate your marketing measurement is. Since Xpend provides the varying granularity of SKAN cost, all you need to do is start analyzing the data in the proper context. 

So, if you’re now looking at the SKAN, organic, or non-SKAN metrics, you can see the correct number of installs alongside your cost, ROAS, and eCPI. Instead of getting confused by the data, you can focus on optimizing your business by making decisions based on the most accurate data.

Measuring ROAS in a privacy-centric world: iOS sources including SKAN


As we saw, measuring ROAS and eCPI on iOS 14.5+ is not an easy task, primarily because of:

  1. Data fragmentation across ad networks and SKAN/non-SKAN attribution
  2. Inaccurate cost data

There are several approaches for solving these problems, and the recommended option is to rely on a single platform to provide you with the most accurate data at the most granular level — and at the right time.

Want to learn more about Xpend? Read more.

Dubi Furie

With over 10 years of extensive experience in SaaS products, Dubi’s skills combine innovation, business, and technological expertise. Dubi is the Director of Product for ROI360, AppsFlyer's ROI measurement solution
Ready to start making good choices?