GTM Sauce

Duolingo · B2C · language learning app

Let an algorithm pick from 250 reminder messages, and A/B test adding new ones

Notifications called a top retention driver; no numbers shared

Workednotificationsexperimentationretention

What they did

Daily practice reminder sent every day; stops after 7 days of inactivity. ~250 copy templates are eligible, and a multi-armed bandit learns which to send to each user. Templates carry eligibility criteria (e.g. streak length) instead of feeding many user features into the model. PMs keep writing new templates; each batch is A/B tested: control = bandit with 250 templates, variant = bandit with 260 (10 new). Measured locally (click-through of the new ones) and globally (top-line metrics). Bandit tuning changes can be A/B tested the same way. CTR is also drilled down by UI language; weak languages (e.g. Romanian) go to the localization team.

What happened

Guest says notifications are a big driver of retention and user growth for many years.
26:28
“and we have a machine-learning algorithm that optimizes the best ones to send to a user. What we do as PMs is iterate on those 250 copy templates, adding more, changing existing copy templates”
Osman Mansur
28:39
“Yeah, the A/B test would be, and control is the multi-armed bandit with 250 templates, and then the experiment is the multi-armed bandit with 260, um, adding the 10 new ones.”
Osman Mansur
25:55
“So we send you a reminder to practice every day, and if you if you've been inactive for seven days, then we'll stop sending it to you.”
Osman Mansur
39:48
“So the bandit will just optimize for the eligible templates that a given user is eligible for.”
Osman Mansur

Related topics

Get tactics like this every Monday

New tactics from the week's founder interviews, each linked to where it was said.

More from Duolingo

All 61 Duolingo tactics

More from this episode