How We Achieved $0.20 CPI with Facebook Ads

I used to work for an digital media buying agency (shout out to my friends over at Dialekta) in Montreal where I handled tons of mobile campaigns for our clients. I spent countless hours optimizing and adjusting the campaigns on Facebook, Adwords, Youtube and all the like. All of my colleagues did the same and this made us one of the best digital media agencies in Montreal. Back then, the best CPI I reached for one of our clients was barely under $2.00, and boy did we work to get it down to that level.

A couple of years ago, I quit my job and enrolled into an entrepreneurship program back in my home country (France), after which I founded Pistache with two friends. Pistache is an app that motivates kids to do their daily chores and tasks, like tidying up their room or learning Spanish with one of our partner apps. I won’t elaborate too much, check out if you’re intrigued as to how we do this. Still, here’s some basic context for you to better understand this post :

  1. Our app is free
  2. We target young parents

Phase 1: advertising my own product for the first time

When we released the first version of our app back in October 2015, we tested out a small Facebook campaign. I was super excited, not only because I was finally going to do something I used to be good at, but also because this was the first time I was going to advertise something I actively contributed to. The results were not just unsatisfying, they were catastrophic: $4.07/install. Yeah, that bad. At least I didn’t have too much time to think about what was so bad with the ads. Here’s a sample so you get a sense of what they looked like (pardon my French).

Ads read : “Discover Pistache, the app that motivates your kids to do their chores!”

Fortunately, our app wasn’t great either back then, so we quickly dismissed it, having learned from our mistakes, and went back to work to create a new version. That version (a complete overhaul of the way the app works, looks and feels) came out a few months later, so it was time to start analyzing what went wrong with the previous ads in order to improve.

Phase 2: giving it another shot

That’s pretty much what I look like when I upload new ads on Facebook


We were targeting parents with children aged 3 to 8. Thing is, we now knew our product was more adapted to children aged 6 to 11. Not only because they had more responsibilities at that age then when they are 3, but also because parents of very young children tend to be skeptic about screens and mobile apps (at least in France, our initial target market). What do you think we did? Yes, you guessed it (it was an easy one so don’t get all arrogant): we changed our targeting to parents with kids aged 6 to 12.

Another thing we did is we created other Ad Sets targeting a Lookalike Audience of people using our app. What does that mean, you may ask? Simple: Facebook targets people who are very similar to our app’s users. How do you do that? Facebook SDK is a pretty straightforward answer to that question. Don’t hesitate to write to me if you want to know more about that technique. Full disclosure: we started using Lookalike Audiences a few weeks after the actual redesign of our ads. Performance was still good without Lookalike Audiences which only made it even better.

Important notice: the Facebook SDK is a must have if you want to advertise your app on Facebook. It enables so much things you simply cannot do without it. I’m talking tracking installs, creating very specific audiences, and a lot more.

Ad content

What we were doing wrong

  • Our visuals contained text: Google Play / App Store logos and a huge “Gratuit” (which means “free” in French as you may have guessed).
  • Some of our ads were quite clearly photoshopped (see ad #2 above).
  • Our texts were also not very convincing as they didn’t empower the viewer or ask him to perform an important task (except for the “Download” button).

Let me translate our first set of ads for you: they read “Discover Pistache, the app that motivates your kids to do their chores!”. “Discover” isn’t a very strong verb. It doesn’t imply much: when have I truly “discovered” something? What is it to “discover” something? If I’ve seen the ad, have I already discovered the product? Or do I need to download it to discover it?

What we did to improve

Since the performance was so bad, we made a choice to do exactly the opposite of what we had done. No text, no logos, and better quality pictures. We also thought we needed to make the ad clearer about what our app does. So we took the concept of ad #1 (on the left above) and tried to improve upon it.

We also took another direction for our ad’s text. Here’s what our ads now say: “Download Pistache and start motivating your children in their little daily chores!” (that translation isn’t great in terms of ad copy, but it’s what comes closer to the truth). See how we’re both asking the viewer to do something specific (download) and how we empower him/her to do something WITH the app (instead of having the app do all the work).

Here’s how our ads look today.

Ads read : “Download Pistache and start motivating your children in their little daily chores!”

As you can see, we also did some small changes in the headline, where it reads “100% Free” and “Install Now” (instead of “Download”). I actually believe that last change made a big impact. And I believe Facebook adding the “X people use this” gives us quite an edge when it comes to convincing future users (that only appeared after a few thousand users).

Believe it or not, these ads’ performance is incredible. We’ve gone from over $4/install to under $0.20/install by applying those changes. To be honest, we did have to wait a few days for the app to accumulate a few downloads, but even in the first few hours we were seeing downloads around $0.80/install.

Now obviously this performance would be meaningless if only applied to a couple hundred downloads. As of today, these ads have generated over 20 000 downloads in the French market alone.

What to make of all this?

I don’t think giving a set of very specific instructions to create app install ads is a good idea. Thing is, every app is different and we were targeting a specific group of people in a specific country. However, I do have a few tips I think most app marketers should observe when doing Facebook Ads:

  1. Pay attention to your ad’s text.

Your ad copy should be engaging and prompting users to perform a specific action (like downloading your app) while at the same time describing the benefits they will get out of the app.

Example: let’s say I’m advertising for UberEats. Maybe I’ll say something like “Get the UberEats app and enjoy great food delivered to your doorstep!”

2. Get all that text OUT of your image!

Most trafic on Facebook now comes from mobile. And if you’re advertising a mobile app, 100% of the trafic is going to come from a smartphone (ok, maybe a little from tablets as well). Think people take the time to look at everything you’ve written in your ad’s image? Think again: people are in a hurry, they weren’t even interested in your app initially and technically you’re just bothering them while they try to see what their friends have been up to lately. Be extremely clear about what your app does, but DO NOT USE TEXT TO DO SO. Even app store logos are useless. Bonus: you won’t get angry at Facebook for not allowing your ad because “it contains too much text” (yeah, you know that horrible feeling).

Example: okay so now let’s say I’m advertising for a SaaS analytics tool for apps like AppsFlyer. All I need is to show professionals looking at pie charts and bar charts, and voilà!

Look at all these smart business-savvy professionals using analytics software like they’re in Minority Report. I want to be like them!

3. Try all sorts of targeting options, but let Facebook have a sizeable amount of people in your audience.

As soon as you start targeting a niche audience, Facebook is going to have to work harder to get your ad budget delivered. If Facebook is working harder, then it has to be paid more (seems fair). So in order for your CPI to go down, you need to make it easy for Facebook to deliver installs, and one of the best ways to do this is to target large groups of people.

Lookalike Audiences are a great way to create those large pools of people. Use them in whatever way you can: once you get how they work, they’re very easy to deal with and can provide huge ROI.

Example: now let’s say I’m advertising for Shazam. I need to target music-loving millennials who often go out in clubs or listen to the radio and frequently ask “What song is this?”. Agreed, if I target people who love “music” and “clubs” on Facebook, that’s already a pretty big audience. But maybe I’ve analyzed that most users in Shazam search for european rap and electronic music (who knows?). A way to target the right people would be to create an audience of people who like european rap and electro, and use Lookalike Audiences to find people who are very similar to them and target them as well. Or, since I’m an app developer, I can also just target people similar to those who are already using my app using the same tools.

4. Test out bidding strategies

For us, oCPM is what’s been working the best. However, it may change down the road and I may want to limit how much I’m going to pay for an install, in which case I’ll switch to CPI. Just know that at the beginning, your best case scenario is to be able to do oCPM because your app won’t have enough downloads yet for you to use CPI.

5. Force Facebook to use ALL your ads

Facebook’s advertising algorithm is excellent. Yet it does fall short of one option that nearly all other ad networks offer : allowing you to show all your ads equally before optimizing. Not only that, but Facebook’s algorithm doesn’t even give a real chance to all your ads. You’ll often see that Facebook will stop an ad from rolling after 50–100 impressions if it doesn’t convert immediately (which is utterly stupid as 100 impressions is FAR from significant).

Tools exist to help you roll all your ads equally, but they cost money and startups don’t have money. So, every time I upload a campaign, I spend my first day switching most of my ads on and off every couple of hours so that all of them get at least a few thousand impressions before I let Facebook’s algorithm choose which ones it wants to use.

One way to see if Facebook has been optimizing prematurely is to compare your best performing ad in different Ad Sets. Say you have 4 Ad Sets, all containing the same ads. If the best performing ad in each Ad Set is different (or let’s say 3 out of 4), then it’s possible Facebook hasn’t given enough of a chance to all your ads (unless your Ad Sets target very different demographics, such as women vs men, or Americans vs Brazilians).

6. Consider allowing 20% of your ad budget to experiences and testing

Do you know how people go from being amazing performance marketers to lousy ones? They stop doing new things and therefore stop learning, which is when the young wolves attack to take their place. You should ALWAYS be experimenting new things and stay up to date. Status quo is how you end up losing.

7. Don’t follow my advice

Having been a diligent observer of digital marketing news for years, I have seen quite a few posts (some from very well-known professionals, others less) which contradict some of the things I’ve said. Typically, a lot of people recommend using App Store and Google Play logos. Others say you should ask a question in your ad copy, like “Where would you go tonight if you knew a Uber could get you home safely?”. This is not science: some things are going to work for you and others won’t. Keep reading every post where the author seems to know what he’s talking about, and aggregate all these infos into your own tailor-made tactics.

What can I still do to keep a good performance?

Facebook Ads is no 100m race: it’s a marathon and you need to keep working for as long as you use them

I think we can all agree, our ads’ performance is exceptional over at Pistache. I’m still not sure what percentage of that performance is due to luck and what’s due to working hard and knowing what we’re doing. Nevertheless, I’m not an optimistic person, so I believe that our CPI is going to go upwards (granted it’s pretty hard to go downwards from where we stand).

I still have a few ideas to keep it at it’s current level, and here are a some of them.

  1. Keep using new images, texts and CTAs

Ad fatigue is a real thing, and the only way to overcome it is to target new people or change the message you’re sending to the same audience. So you should consider regularly changing your ads, even if everything is going well.

2. Use new ad formats

Facebook regularly creates new ad formats for all kinds of stuff. Right now, I’m pretty curious about carrousel and canvas ads, and thinking about how I could use them to do something cool and effective. I’ll tell you all about it!

3. Focus on new demographics

Obviously, keeping your CPI low can be done by finding a whole new relevant audience. Still, it can be a challenge to go in other geographic markets our target other user segments. You never know how that new target will react and your CPI might be 4 times what it used to be. So beware and use those 20% of your budget that you set aside for experiences and tests!

4. Diversify ad placements

Facebook’s ad tool can also be used to serve ads on Instagram or on Facebook’s Audience Network. In our case, Instagram is not performing as well as Facebook (which is logical since we target parents and not millennials), but I have seen other startups generate a lot of low-cost downloads through IG (especially ones that focus on food, fashion and lifestyle). Shoutout to @jesseboskoff on who reminded me I could use Facebook Ads to target people outside Facebook.

5. You tell me!

I’d love to hear from you if you have ideas to keep your app’s CPI as low as possible! Please share in the comments section so that everyone can enjoy your tips & tricks. If you’d prefer to keep this private, you can reach me at

Thanks for reading,

Thomas Jacquesson

Like what you read? Give Thomas Jacquesson a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.