An indie game developer discovering the world of user acquisition and advertising (with numbers)

I’ve been developing mobile games as a hobby for more than 5 years. My latest game (Tents and Trees) became quite successful and I decided to found my own company a few months ago. Tents and Trees has today about 800k downloads on Google Play and 100k on iOS (oh, and 112 downloads on Amazon App Store…).

appannie downloads

I didn’t do any marketing beyond posting on social networks (and I don’t have many followers). I’ve been lucky to have as many organic downloads as I’ve had, but I wanted to try user acquisition, as the big guys do.
It is a whole new topic for me, as I’ve been mainly focusing on development, and usually, when I release a game, I move on to the next one rapidly. Also, when this was all a hobby for me, I was a bit reluctant to inject “family money” into it. Now that it’s a company, I can invest more of my personal money and be at ease.
My experience was very interesting, as I learned a lot, discovered many acronyms (UA, LTV, CPI, CPE, KPI…), and got many contacts from companies specialized in user acquisition or publishing.
I’m sharing here my results, my process and some numbers obtained along the way. I hope you’ll find some use for the information presented here, and maybe apply some of these same strategies to your own experience.

The goal

With about 8 times more downloads on Google Play compared to iOS, I am heavily dependent on Google as my source of revenue. That’s a risk I want to lower, as I’ve already had games removed from the Play Store overnight and I can’t afford this risk. I also think the game has a potential to get more players on iOS. My main goal was to learn UA, but with a stronger focus on getting iOS players.

Getting ready for UA

Until now, my downloads came from word of mouth or the Play Store algorithm. I had an initial spike on iOS on release because it was featured in some countries, but once the feature ended, downloads on iOS were terrible.

Obviously, organic downloads are free, but you don’t have much control over it. I’m just glad it happened. When you start to spend money in UA, you need information from your player base. Basically, you “purchase” players, and you want to measure their quality depending on the source (acquisition campaign). The quality of a user is basically its lifetime value (LTV), that is the money it brings back in the game. My revenue comes mostly from ads, and also from in-app purchases of virtual currency.

chart (3)

Attribution SDKs

faaThere are a few SDKs allowing you to perform user attribution. Attribution is being able to tell where the players found out about your game. It’s a complex topic, because you need to find the connection between the click on an ad, the download and the execution (possibly a few days later) of the game. Nearly all SDKs have a cost (usually a few cents per attributed player). I decided to go with FreeAppAnalytics, the light and free version of Kochava’s solution. I found the setup of the partners and campaigns quite complex, but their support was very good. I can then track installs, tutorial completion, level completion but more importantly, ad views and in-app purchases.
And then, I was ready to track my UA campaigns!

Computing LTV

One of the most frightening things in UA and, more generally, in analytics, is that depending on the source, you often get different results. I spent a lot of time trying to compute the LTV of my players. My most precise approach was to use data gathered from Game Analytics. However, the features of the dashboard were a bit light and couldn’t perform it directly on the website. I downloaded hundreds of gigabytes of raw data and wrote multiple computation scripts to gather interesting data. It’s a complex problem and there is a lot of things to consider, such as:

  • Some players play my game for more than a year, and it’s sometimes difficult to get all the data. For example, Game Analytics let me download only 6 months worth of data. I decided that instead of a lifetime value, I’m computing a “30 days value”.
  • Every country has a different eCPM (average revenue for 1000 impressions of ads).
  • When numbers are low, a single player purchasing the biggest pack of coins (worth $20) can really increase the average LTV by a lot. When dividing players by country or another category, how big should the sets be for it to be relevant?
A capture of my google sheet used to compute LTV
Shown above : Capture of my google sheet used to compute the LTV

Partner A

I used FreeAppAnalytics to have my own analytics. However, I was approached by some partners who wanted me to include other SDKs so that they can track the metrics directly on their end. The partner (I don’t know if they want to be named, therefore I’ll call them partner A) asked me to setup Appsflyer and Facebook SDKs in my game. They wanted to measure the retention and session length. If everything was good, they could push for more paid installs..


They got me 206 installs for iOS, and concluded the retention was not good enough and didn’t want to continue. I didn’t get statistics about revenue, so I removed the SDKs in the next app udpate and moved on.


Failure. 0/1 (but I learned a lot about attribution SDKs)

Partner B

Another partner that I had never heard of before offered to try to acquire users on iOS, too. I could then track data using FreeAppAnalytics.


They got me 1296 iOS installs, which is great !
The retention was terrible (2.5% for 1 day retention, where I should expect something between 30% and 40%).


Players bought items for about $32 (raw money spent by players, before any store cuts, taxes and such), which is also very low, but not as bad as the retention rate.
Players watched about 1400 ads, that’s an additional estimated raw revenue of $5 to $10.


Failure. 0/2 (but I learned a lot about using FreeAppAnalytics!)
We’re still working together, they’re trying to improve their player sources to get higher quality users, but our cooperation is quite slow and I’m not sure we’ll get somewhere interesting.

Partner C

A third partner contacted me to help me market my game. They basically wanted to test my game retention with their ads. If it was successful, they would make an offer to “take” my game, market it and split the revenue. I didn’t want to lose my IP and give away my game so I refused to work with them.

Partner D

tat-chineseAnother partner has basically the same approach than Partner C. However, they offered me to do this only for the Chinese market, on iOS. I was hesitant, but they offered me to make a test, while keeping the IP and later, if the test is successful, they’d make me an offer that I still can refuse. I decided to give it a try. I had to include some SDKs. They also created marketing materials (game description and screenshots) to improve marketing value of the game.


They approximately brought me 900 iOS users.
Retention was average and they considered it not good enough to continue our partnership. The process was very professional and interesting, however.
They used their own tracking process, and I didn’t get much more information about revenues. I estimate about $20 in ad revenue and no purchases.


Failure. 0/3 (but I learned to work with a moderately big company and they were very professional).

Apple Search Ads

I already had Apple Search Ads campaign set up months ago when Apple offered $100 for free to try the service. It only got me one or two installs per week for my previous game Thermometers Puzzles due to the low CPI (cost per install) I setup.
I decided to setup a campaign for Tents and Trees and track it properly.


In two months, I got beween 37 (FreeAppAnalytics source) and 39 (Search Ads source) iOS installs, which is very low. It cost me €31.07, which is 0.84 € per install. Even though numbers are probably too low to be relevant, the day 1 retention rate was very good (43.2%).
No in-app purchase were made, and players watched about 600 ads.


Failure. 0/4. I’m losing money with this campaign (except that I’m still using promotional money for now).


facebook previousI often see ads for mobile games in Facebook and decided to try it. The Facebook Ads Manager and Ads Reporting are really impressive tools. There are a lot of possibilities to setup your ads. You can try a lot of different configuration and compare results (testing different headlines, different screenshots), with the targeting and reporting being very precise (country, age, sex, interests…). In my tests, I targeted players above 26 years old, who like sudoku or mobile puzzle games. I made an ad for English-speaking countries (USA, UK, Hong Kong, New Zealand, Canada) and an ad for French-speaking countries (France, Switzerland, Luxembourg, Belgium).
Also, I tried to create a campaign for Google Play, too. That’s the first time I tried to utilize UA on Google Play, and not only iOS.
The tools are so good it feels like a game to create, analyze and tweak campaigns!

facebook stats
Shown above : Facebook statistics from my different campaigns (click to enlarge)


As you can see, numbers are really different depending on the campaigns. CPI goes from €0.30 (a bit expensive for me) to €2.74 (!!).


I got between 421 (Facebook source) and 439 (FreeAppAnalytics source) installs.
Day 1 retention rate was pretty good: 44.6%.
It cost me € 236.76, which is € 0.56 per install.
Players watched 7661 ads.
Players bought items for about $20 (yes, I know I’m mixing US Dollars and Euros, but that’s the way it is ;)).

Google Play

I got between 18 (FreeAppAnalytics source) and 29 (Facebook source) installs.
It cost me € 81.10, which is a huge cost to me.
Players watched 7 ads and there were no purchases.



Failure. 0/5 (but I had a lot of fun with the Facebook tools)

Google Play

Failure. 0/6 (but I learned that Google Play acquisition is not always cheaper than iOS).

Google AdWords

gadspreviewI set up Google AdWords for Google Play before installing any attribution SDK, because Google Play has tracking integrated into the Google Play Developer Console. Setting up a campaign is not as complete as it was with Facebook. You don’t create precise ads, but just give some hints and resources to create the ad.
I setup multiple campaigns, one using CPI (cost per install), and another using CPA (cost per action, where it targets people that should purchase in the game). I have very low volumes for CPA. I tried multiple value for CPI, it’s actually 0.25 €.
Funny story: one day, I decided to tweak my ad and to add more countries to the ad list. The next day, I was happy to see I had a lot of downloads. I then realized that I had mistakenly added Russia, and after analyzing my stats, Russian players are worth 10 times less than American players. I should have created another ad with a lower CPI if I had wanted to target Russia.
I later tried also to create GoogleAds for iOS acquisition. As you will see with the numbers below, even with a CPI of €0.55, numbers are very low.



6 downloads (this time, I have the same value with FreeAppAnalytics and GoogleAds).
It cost me € 4.43 (€ 0.74 per install).
Players watched 5 ads.
No purchases.


Google Play

Between 2600 and 3009 (numbers from Google Play and Google Ads, I didn’t install FreeAppAnalytics immediately).
It cost me €782.
FreeAppAnalytics tracked 807 ad views. By interpolating, I estimate the total number of ad views to be about 8000.

I have weird numbers for purchases. I think some hackers can mess my numbers. Google Play tracked 0 purchases, which I think is the proper number. As you can see with the image below, FreeAppAnalytics tracks 56 purchases. Since these purchases occurred on a single day, it’s probably a hacker.




Failure. 0/7

Google Play

Failure. 0/8


shareAnother important acronym is ROI: return on investment. It’s basically the percentage of revenue from any investment. At 0%, you don’t earn or lose money. In my case, my ROI is about -90%. Of course, I didn’t account for other factors, such as virality of the game. For example, an acquired player can talk about the game to some friends and bring more organic downloads (also called the k-factor). I recently made an update to my game to add a “share” button to help improve the virality of the game. I can even use FreeAppAnalytics to track installs coming from the share button.


I had 8 installs and 9 ad views from this button.

Final conclusion

I tried 8 different sources, and none of them was profitable. There can be multiple explanations for that:

  • My game is not monetizing well enough, even though it’s the most profitable game I ever made. The trends being hyper-casual games, bloated with ads. In my game, I only have rewarded ads, that are run and shown only when the players asks for it.
  • I’m not creating engaging ads. That’s highly probable, but when I let professionals do it, it still wasn’t good enough.
  • My audience is made up of players who can be considered difficult to target. That’s possible, being in a specific puzzle game market.

I spent quite a lot of time and put quite a bit of money into this, and it’s really interesting. I’m pretty sure there is something I can do to successfully implement UA, but it’s scary to see how far off I still am to be profitable with it.
I’m currently rewriting entirely my previous game, Thermometers Puzzles, to improve its visual appeal, gameplay, monetization, and business model, and will try some more UA with this game in the following months, probably injecting at least € 5000 into the project.
I found it quite difficult to find information for beginners on this topic. This blog post will hopefully give you some precious information if you plan to try UA. Feel free to comment, share and tweet (@Frozax) this article if you liked it!
And if you have experience, ideas, useful tips, or if you are a user acquisition actor and want to work with me, I’d love to hear from you!


Comments are closed.