Duolingo · B2C · language learning app
Let a bandit algorithm pick which upgrade ad each user sees after a lesson
Some wins so far, still improving; no numbers
What they did
What happened
In their words
How Clarity and Personalization Help Drive Duolingo’s Growth – Anmol Tiwari, Duolingo
Anmol TiwariAnd one of the first few things that we tried starting to optimize was, "Well, what is the right mix of promoting our own product versus serving other external ads?" And we saw good wins on it. And then that translates also into now, "Well, okay. Now if we know that you're likely to subscribe, we can probably predict how likely are you to subscribe to which plan."
Anmol Tiwari… each tier, but that's quite an inefficient way to operate because we probably have a lot of signals that we can leverage. "Did you ever tap on that plan in the past? Did you try to learn more about a video call when we showed you the video call as your next lesson?" So for us, we've seen actually a lot of great wins, and it's super important to keep collecting signals that can help you personalize not just basically all aspects of upsells. And I think we've just barely scratched the surface of it. And I think there's a lot of wins that we can go just getting all the way into, for example, we have many, many of creatives that run to promote our Super product as an ad at the end of a lesson. And we've had some wins in having a Bandit and trying to optimize which creative will work best for who, and we're continuing to see wins from that.
David BarnardYeah, that's awesome. And always fun to hear the app at Duolingo scale is still early in some of the optimizations that we all wish we had time and budget and teams to work on. It's really cool to hear the wins you have seen on personalization in the app.
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
- Let trial users pick which day they get the reminder before being chargedTested; added friction but built trust and delayed cancel decisions. No numbers given
- Show what happens on each trial day and exactly how refunds workGuest says clarity beats persuasion for trial starts; no numbers
- When users run out of hearts, offer a free trial so they keep their lesson progressUsers much more likely to start a trial; no numbers
- Ask new users in onboarding if they want to learn with or without adsSignificantly higher uptake; one of the biggest wins of the year
- Cut the free trial from 14 days to 7More conversions overall and experiment results twice as fast
- Offer the same user a free trial three or four times over timeEffective in aggregate across attempts, per guest; no numbers
- Give 3 free days of the paid tier, no card needed, even to current subscribersEffective for free-to-paid and for upgrading subscribers to the top tier, per guest
- Give users one free AI video call from the top tierEffective lever for getting people to try the feature, per guest
- Give the free 3 days as a reward right after a finished lessonFelt more rewarding than on the learning path; no numbers
- When free days end, say 'Your benefits have ended' and show how to rejoin
- Use each user's signals to pick between your own upgrade ads and paid adsGood wins, per guest; no numbers
Tags: bandit, creative, personalization, in-app-ads