How to run ROAS user acquisition campaigns for ad-based games

Amir Shaked

Posted Apr 18, 2019

In a world where ad monetization is taking an increasingly greater share of the revenue generated from apps, ROAS models based solely on IAP data are ultimately inaccurate and insufficient in determining the efficiency of marketing spend. Despite this, accessing and measuring ad revenue on the user level has been a major challenge for the industry, which has prevented developers from driving user growth with maximum efficiency – especially if they are developers who monetize primarily with ads (such as hyper casual games). This piece will show how developers monetizing their game with ads can run UA campaigns based on user-level ad revenue data. Let’s start with 100% ad-based games.

Measuring ARPU for 100% ad-based games

This past year, we’ve witnessed the rise of 100% ad-based games, as well as games that generate the majority of their revenue by serving ads. Several casual games are among this group, with hyper casual games serving as a prime example of this monetization strategy.


Without user-level data and analytics on ad revenue, 100% ad-based developers can’t identify their high-quality users (so-called ‘ad whales’). This prevents them from learning which marketing channel, campaign, or creative drove that individual ad whale’s install. These developers run into two main challenges:

Incomplete formula

To measure ARPU (average revenue per user) without user-level revenue data, some developers average out their ad ARPDAU and retention rates. The problem with this is that users are different and don’t all share the same ad-viewing habits.

Most UA teams would run a very simple formula across all of their buying channels to determine their CPIs:

CPI = average LTV * (1- desired margin)

Some teams might take an extra step and add their K-factor (the assessment of whether organic installs are effected by paid installs) into the formula:

CPI = average LTV * (1- desired margin)*K-factor

Incorrect campaign goals

Additionally, user acquisition teams without user-level revenue data can’t run campaigns optimizing for true ROAS, so they have to resort to other KPIs, such as retention or CPI. But retention is not a great indicator of profit, as hitting D3 retention doesn’t tell developers how much revenue they’ve earned, or even whether D3 users are generating any ad revenue. A segment of users may have high retention, but that doesn’t mean it’s generating more revenue.

The same goes for campaigns aiming to hit an eCPI goal. Without user-level data, developers could only run campaigns with one CPI for all of their sources. While the CPI might be lower than their LTV, each source is different. Developers were likely overbidding on low-performing sources and underbidding on high-performing ones.


By leveraging user-level ad revenue data, ad-based games can now run efficient user acquisition campaigns that accurately optimize for ROAS. For instance, it’s now simple for 100% ad-based developers to define their D3 ROAS goal. Take a look at the chart below, which depicts a hyper casual game’s ad revenue LTV curve:

In the example above, we’re looking at a hyper casual game with an LTV of $0.4. Let’s assume this game has a K-factor of 1.2, meaning the advertiser ‘earns’ an additional organic user for every five paid users. Using the formula above, this puts the LTV+K-factor at $0.48.

To achieve a 30% margin, the advertiser will initially pay a CPI of ~$0.335. Looking at the LTV curve, we can see that on Day 3 this app has an ARPU of $0.2, which means the Day 3 ROAS KPI should be 60% ROAS to hit the desired 30% margin.

Day 3 ROAS goal = ARPU Day 3 / (LTV*K-factor*(1- desired margin))

Measuring ARPU for games with IAPs and ads

Of course, not all games rely entirely on ads. Most developers use a mix of IAPs and ads to monetize their games, integrating various ad formats into core game loops.


Most developers who earn revenue from both IAPs and ads, no matter what the split, run into the following challenges when managing their user acquisition campaigns:

Ignoring ad revenue completely

Some developers run UA campaigns with ROAS goals based solely on IAP, completely ignoring ad revenue. In cases like these, the ROAS figure they are aiming for is ultimately incomplete, leaving a significant gap in knowing the impact of their ad revenue and how to optimize for it. In this case, marketers will often unknowingly underbid on specific sources in UA campaigns, missing out on substantial scale and revenue.

Ignoring user monetization behavior

To mitigate this blind spot, some developers run UA campaigns with ROAS goals based on IAP data, but then add a buffer to account for ad revenue. For example, for a game with an overall revenue share of 90/10 between IAP and ad revenue, a developer would increase the IAP ROAS goal by 10% across the board.

However, adding a buffer based on aggregated ad revenue data still doesn’t show the high-quality ad revenue users and how they were acquired. As we said earlier, different kinds of users have different monetization habits. For example, users in the US usually tend to make more in-app purchases than users in Brazil, so these users should be treated differently.

In addition to users in different locations, organic users and paid users also behave differently when it comes to ad revenue and IAPs. With IAPs, organic user quality is often superior, but when it comes to ad revenue, it’s often the opposite. Paid users generate higher ad revenue, which makes sense when you consider that these users installed the game through ads, and are likely to do the same for other games. This means that developers who add a fixed buffer are unable to optimize for and source different types of users – whether they’re from varying geos, organic/paid, and so on.


With user-level ad revenue data, developers can run ROAS campaigns with goals that combine in-app purchases and ad revenue data.

Calculating a combined ROAS goal

Developers can follow these steps to calculate a combined LTV curve that includes both IAP and user-level ad revenue data, enabling them to set a combined ROAS goal.

  1. Calculate separate LTV curves for IAP and user-level ad revenue.
  2. Determine the margin goal based on the curves’ behavior to maximize profit.
  3. Determine daily ROAS goals by dividing each day’s ARPU (IAP + ad revenue) by the total LTV to define your combined Day 7 ROAS goal.

Upgrade Bid Optimization

Today, when developers only run ROAS campaigns based on IAP, they are effectively assuming that three different users who all generated $1 after 7 days will have the same LTV. But running a combined ROAS campaign based on IAP and ad revenue brings new challenges in optimization. In this case, three different users who each generated $1 after 7 days could have completely different LTVs. User A could have generated $1 from IAPs, User B $1 by watching ads, and User C may have generated $0.50 from each.

Predicting that these three users will have the same LTV is a mistake. The behavior of ad revenue curves is completely different than the behavior of IAP curves, which largely depend on game type. For example, IAP-heavy games have a much steeper user ad revenue LTV curve on the first few post-install days and weeks, while the IAP LTV curve is stronger on longer cohorts.

This chart represents the LTV curve of a large casual title with strong presence on the charts, where we find an almost even 50-50 IAP/ad LTV split. It’s easy to see how the two curves behave differently. One explanation for the behavior of these curves is that users who make in-app purchases tend to develop strong loyalty for that game, inevitably playing for much longer than non-paying users and continuing to pay even at a more advanced ‘user age.’

Let’s look at another example, this time of an IAP-heavy large Match3 title with an 80/20 split.

It’s clear that IAP generates much higher LTV than ads, and from a high-level perspective it seems as if this is true for all different user ages. But when zooming in to review Day 7, we find that the split is only 60/40 in favor of IAP. This means that, by optimizing using Day 7 metrics, you would make huge optimization errors by not breaking down the two different curves.

In fact, ad revenue is so high for the shorter-term cohorts that on this Match 3 game, users reach 27% of their total ad LTV by Day 7, while generating only 12% of their IAP LTV within that time frame.

This is true for almost all the games we’ve analyzed across all genres.

The solution is to add a new layer of optimization, treating the IAP curve and the user-level ad revenue curve differently. Usually, this is an extremely challenging and time-consuming manual process. But an automatic ROAS optimizer which leverages ad revenue data can automatically and constantly update the different curves to calculate the perfect bid for each user.

Wrapping up

Any developer monetizing with ads can optimize their user acquisition with complete LTV data, taking user-level ad revenue and IAP revenue into account. Even developers who are almost wholly invested in IAP monetization can benefit from user-level ad revenue.
With the right ad placements, these developers can generate 10-20% of incremental revenue from ads. The challenge is sourcing and incorporating this new data in the most efficient and accurate way. This is why developers who are fast to adopt user-level ad revenue data in their user acquisition strategies will be the ones to win a considerable market share this coming year.

Amir Shaked is the VP Revenue at ironSource, responsible for helping global advertisers grow their user acquisition efforts. Amir manages ironSource's global UA operations, overseeing the growth and strategy teams as well as data analytics.

Want to get the latest from Adjust?