Duolingo · B2C · language learning app
Block gambling and sketchy ad types, even if it costs revenue
Accepted lost ad revenue for better experience; no numbers
What they did
What happened
In their words
Why Your Free Users Are Your Real Growth Engine – Cem Kansu, Duolingo CPO
Cem KansuYeah. I mean, ad quality, I would say we are incredibly strict on, but with programmatic, you'll of course have some amount of control, not full control.
Cem KansuBut with anything that is, honestly, it could be even slightly dicey. We blocked all those categories, like if it's gambling, even if it's games that look kind of sketchy, pick your category. Any of those that we didn't feel was also young audience safe or just brand safe, we blocked.
Cem KansuSo the starting point is we used AdMob first and then we integrated other sources like Facebook ads or at the time Flurry and now we use also I think multiple networks. We use Unity.
Cem KansuThat was to mainly broaden demand, but for category and what kind of ads we allow, we tried our best to block off any categories that are dicey, even though it might be a revenue loss, we were like, "We don't care." The more important thing is good user experience and ad quality.
Cem KansuSo we did a lot of category blocking and if we needed to do custom blocking, we went and tried to work with ad networks to be like, "This type of ad has three X buttons to exit. We don't want this in our app. Please don't give us this thing." So we also did some of that back and forth as well. That's our stance.
Cem KansuThis year also to improve ad quality, we're also doing our own direct ads more and more because then we control quality entirely. It's an advertiser that we know, we shook hands with, and the format is what we've created. So it's beautiful and it's a great advertiser.
Get tactics like this every Monday
New tactics from the week's founder interviews, each linked to where it was said.
More from this episode
- Keep lessons free and sell learners' translations to news sitesSmall revenue; dropped by 2016 (price race and low translation quality)
- Charge $1-3 to fix a broken streakA good share of users paid; showed how much users value their streak
- Show one ad only after a lesson ends, and test it against retentionRetention mostly neutral, at most a slight hit, across ad tests
- Count ad complaints per million users and compare them to other complaintsMissing-course complaints were 3x ad complaints; ads launched
- Sell ads directly to brands and have app characters introduce themUsers like the format; slow to sell because it's custom
- Use the end-of-lesson ad slot to advertise your own paid planGuest says house ads beat programmatic ads; no numbers
- Run 3-6 month holdouts for changes whose effects show up lateNew push lifts can turn negative after about 6 weeks
- Sell a one-time ad-free month at $3, $5 or $10 to test demandUptake far above expectations; led to the subscription
- Launch a plan with no ads, offline use, and 'support our mission'About half of early buyers paid to support the app; started a run rate
- Offer a free trial even though the app is already freeOne of the biggest unlocks; guest had expected it to flop
- Tell users on the paywall you'll remind them on day 5 of a 7-day trialWon A/B tests by easing fear of subscription traps
- Change the buy button to say 'Try for $0.00'Beat 'Try for free' on both trial starts and trial-to-paid
- Give subscribers unlimited hearts so mistakes never stop their lessonsBig turning point: raised subscription conversion and retention
- Make paid features free when a test shows they earn littleTook a small revenue hit on purpose to grow free users
- Add new subjects inside the main app instead of launching new appsSeparate apps were 'hard mode'; in-app works better, but many users still don't know
- Offer live human tutors on demand in a higher-priced planFailed: users joined, panicked and left; later replaced by AI video call
Tags: ads, ad-quality, category-blocking, ad-networks