March 6, 2023

Как Duolingo возобновила рост числа пользователей

Источник

Я пришел в Duolingo в качестве руководителя отдела продуктов в конце 2017 года. Duolingo уже был самым скачиваемым образовательным приложением в мире с сотнями миллионов пользователей, выполняя свою миссию "разработать лучшее в мире образование и сделать его общедоступным". Однако рост числа пользователей замедлялся. К середине 2018 года ежедневные активные пользователи (DAU) росли однозначными темпами в годовом исчислении, что вызывало беспокойство, учитывая взрывной рост, который компания наблюдала в прошлом. Это было проблемой для стартапа, инвесторы которого хотели увидеть быстрый рост монетизации.

В этом посте я расскажу о некоторых наших ранних неудачах, а затем о первых крупных победах, которые помогли нам переломить ход роста, включая запуск таблиц лидеров, переориентацию на push-уведомления и оптимизацию функции "streak". Все это, а также ряд других усилий в рамках продуктов и маркетинга, помогло нам увеличить DAU в 4,5 раза за четыре года. Устойчивый органический рост пользователей способствовал выходу Duolingo на IPO в 2021 году.

Эта статья - углубленный взгляд на это путешествие. Я надеюсь, что обмен этой работой поможет другим людям быстрее найти свои собственные прорывы в развитии.

Этап 1: Повышение уровня геймификации

Наша первая попытка возобновить рост была направлена на улучшение удержания (retention), то есть на решение проблемы "дырявого ведра". Мы отдали приоритет работе над удержанием, а не над привлечением новых пользователей, потому что все наши новые пользователи были органическими, и в то время у нас не было очевидного рычага, за который можно было бы потянуть, чтобы увеличить этот показатель. Кроме того, у некоторых из нас было подозрение, что мы можем повысить уровень удержания с помощью геймификации.

Было две основные причины, по которым мне показалось, что это правильный подход. Во-первых, Duolingo уже успешно внедрил несколько геймификационных механик, таких как система продвижения на главном экране, полосы и система достижений. Во-вторых, у лучших цифровых игр того времени коэффициент удержания был гораздо выше, чем у нашего продукта, что я расценил как доказательство того, что мы еще не достигли потолка влияния геймификации.

Геймифицированные страницы Duolingo "Главная" и "Достижения

Вооружившись короткой презентацией, которую я создал совместно с нашим главным дизайнером, мы смогли добиться достаточной поддержки со стороны остальных членов команды и руководителей, чтобы создать новую команду, команду по геймификации. В состав команды вошли инженерный менеджер, инженер, дизайнер, APM (архитектор) и я.

Но была одна небольшая проблема: мы не знали, какая механика постепенной геймификации подойдет для Duolingo.

В то время наша команда увлеклась игрой под названием Gardenscapes, мобильной игрой-головоломкой в жанре "3 в ряд", похожей на Candy Crush. Эта мобильная игра стала нашим первым вдохновением.

Уровень головоломки Gardenscapes "3 в ряд"

Когда мы рассматривали различные игровые механики в Gardenscapes, мы не знали, что именно мы ищем - мы просто знали, что Gardenscapes кажется более увлекательным, чем Duolingo, и мы увидели несколько параллелей.

Трехминутный урок Duolingo был похож на уровень игры Gardenscapes, а в Duolingo и Gardenscapes использовались индикаторы прогресса для визуальной обратной связи о том, насколько пользователь близок к завершению сессии. Однако в Gardenscapes индикатор прогресса был совмещен со счетчиком ходов, чего не было в Duolingo. Счетчик ходов позволял пользователям иметь только ограниченное количество ходов для завершения уровня, что добавляло ощущение нехватки и срочности в игровой процесс. Мы решили включить механику счетчика в наш продукт. Мы дали нашим пользователям ограниченное количество шансов правильно ответить на вопросы, прежде чем им придется начать урок сначала.

Чтобы добавить счетчик нашей команде потребовалось несколько месяцев работы. С выходом обновления я с нетерпением ждал безоговорочного успеха. К сожалению, результат всех этих усилий оказался совершенно нейтральным.

Никаких изменений в нашем удержании. Никакого увеличения DAU. Мы практически не получили никаких отзывов от пользователей. Я был подавлен. Наибольший эффект инициатива оказала на нашу команду. После получения результатов мы быстро разделились во мнениях. Одни хотели продолжать итерации над идеей, а другие - поворачивать. Команда почти сразу (и очень резко) распалась, и идея была заброшена. Это было довольно ужасно. Единственным плюсом этой неудачи стало то, что я многое узнал о культуре компании и о том, как улучшить свой личный стиль руководства - хотя это для другой статьи.

Фаза 2: Рефералы

Почувствовав себя обгоревшими после усилий по геймификации, мы полностью переключились на улучшение удержания пользователей и создали новую команду по продукту, сфокусированную на привлечении новых пользователей, названную командой по привлечению. В то время Uber хорошо справлялась с привлечением пользователей и, по слухам, росла во многом благодаря своей реферальной программе. Вдохновившись этим, мы создали реферальную программу, аналогичную программе Uber. Вознаграждением был бесплатный месяц нашей премиум-подписки Super Duolingo (в то время она называлась Duolingo Plus). Нам показалось, что это очень хорошее предложение!

Мы внедрили эту функцию и надеялись, что наша вторая попытка будет более успешной. Вместо этого количество новых пользователей увеличилось всего на 3%. Это был положительный результат, но не тот прорыв, который нам был нужен. Тем не менее, команда удвоила усилия и упорно продвигалась вперед, создавая итерации реферальной программы и делая некоторые другие ставки, но безрезультатно.

Пока команда продолжала итерации, мне стало ясно, что мы должны найти другой подход к решению проблемы роста.

Время перегруппироваться

После этих неудач, произошедших всего за несколько месяцев, я задумался о том, как лучше делать ставки на продукт.

Оглядываясь назад, стало ясно, почему счетчик ходов в Gardenscapes не очень подходил для нашего продукта. Когда вы играете в Gardenscapes, каждый ход кажется стратегическим решением, потому что вам приходится обходить динамические препятствия, чтобы найти путь к победе. Но для того, чтобы пройти урок Duolingo, стратегическое решение не требуется - в основном вы либо знаете ответ на вопрос, либо нет. Поскольку в этом не было никакой стратегии, счетчик ходов Duolingo был просто скучной, навязчивой помехой. Это была неправильная механика геймификации, которую нужно было внедрить в Duolingo. Я понял, что был настолько сосредоточен на сходстве между Gardenscapes и Duolingo, что не учел важности основных различий.

Также не потребовалось много времени, чтобы понять, почему наша реферальная программа не принесла успеха, подобного Uber. Рефералы работают в Uber, потому что пассажиры платят за поездки по бесконечной системе оплаты по факту. Бесплатная поездка - это постоянный стимул. В Duolingo мы пытались стимулировать пользователей, предлагая бесплатный месяц Super Duolingo. Однако у наших лучших и наиболее активных пользователей уже был Super Duolingo, и мы не могли предоставить им бесплатный месяц, когда они уже были на тарифном плане. Это означало, что наша стратегия, которая должна была опираться на наших лучших пользователей, фактически исключала их.

В обеих этих ситуациях мы заимствовали успешные функции из других продуктов, но неправильно. Мы не учли, как изменение контекста может повлиять на успех функции. После этих попыток я понял, что мне нужно лучше понимать, как грамотно заимствовать идеи из других продуктов. Теперь, когда я хочу перенять какую-либо функцию, я спрашиваю себя:

  • Почему эта функция работает в этом продукте?
  • Почему эта функция может быть успешной или неудачной в нашем контексте, т.е. будет ли она хорошо адаптирована?
  • Какие адаптации необходимы для того, чтобы эта функция стала успешной в нашем контексте?

Другими словами, нам нужно было использовать лучшее суждение при адаптации. Если бы мы были более систематичными только в этой области, то многое бы изменилось в том, какие механики геймификации мы выбрали. И, возможно, мы бы вообще отказались от фокусировки на рефералах. Я был твердо намерен убедиться, что наши следующие попытки будут более методичными. Мы должны были лучше основывать свои решения на данных, знаниях и основополагающих принципах.

Этап 3: Использование данных и моделей

Duolingo всегда преуспевал в сборе данных, особенно для поддержки A/B-тестирования. Но не так много усилий было приложено к использованию данных для генерации идей. Увидев изнутри, как Zynga и MyFitnessPal (прошлые места работы автора - прим.автора) используют данные, я почувствовал, что мы можем использовать данные Duolingo, чтобы найти метрику "северной звезды" (North Star Metric, далее NSM) и добиться нужного нам прорыва.

Моя работа в Zynga и MyFitnessPal вдохновила нас на то, как сегментировать и моделировать наших пользователей по уровню вовлеченности. Zynga разделила своих пользователей и измерила уровень удержания на основе следующих еженедельных показателей удержания:

  • Коэффициент удержания текущих пользователей (CURR): Вероятность того, что пользователь вернется на этой неделе, если он приходил к продукту в течение двух последних недель.
  • Коэффициент удержания новых пользователей (NURR): Вероятность того, что пользователь вернется на этой неделе, если на прошлой неделе он был новым пользователем продукта.
  • Коэффициент удержания повторно активированных пользователей (RURR): Вероятность того, что пользователь вернется на этой неделе, если он был реактивирован на прошлой неделе.

Позже, когда я работал в MyFitnessPal, я обнаружил, что они переняли и расширили работу Zynga по удержанию. Они использовали не только CURR, NURR и RURR для измерения роста, но и для моделирования будущих сценариев. Они также добавили SURR:

  • Коэффициент удержания пользователей (SURR): Вероятность того, что пользователь вернется на этой неделе, если он вернулся (после более длительного отсутствия) на прошлой неделе.

Блоки, или "ведра", представляют собой различные сегменты пользователей с разным уровнем вовлеченности. И каждый пользователь, когда-либо использовавший продукт, находится в одном, и только в одном, блоке в любой конкретный день. Это означает, что ведра в этой модели представляют собой всю базу пользователей, которые когда-либо использовали Duolingo. Стрелки измеряют перемещение пользователей между ведрами (они включают CURR, NURR, RURR и SURR, но превратились в ежедневные показатели удержания, а не еженедельные). Сочетание ведер и стрелок позволяет создать почти замкнутую систему, в которой единственным разрывом является появление новых пользователей.

Удобно, что четыре верхние графы модели складываются в DAU. Эти группы определяются следующим образом:

  • Новые пользователи: первый день вовлечения в приложение.
  • Текущие пользователи: вовлечение сегодня и хотя бы один раз за предыдущие 6 дней
  • Реактивированные пользователи: первый день вовлечения после отсутствия в течение 7-29 дней
  • Возобновленные пользователи: первый день взаимодействия после отсутствия в течение 30 дней и более

Остальные три группы представляют пользователей, которые не были активны сегодня и имеют разную степень неактивности.

  • WAU с риском: неактивны сегодня, но активны хотя бы в один из предыдущих 6 дней.
    • WAU + DAU = WAU
  • MAU с риском: неактивны в течение последних семи дней, но активны хотя бы в течение одного из предыдущих 23 дней
    • MAU + WAU = MAU
  • Неактивные пользователи: неактивны в течение последних 31 дня или дольше
    • MAU + неактивные пользователи = Общая база пользователей

Тот факт, что DAU, WAU и MAU могут быть легко рассчитаны на основе этих ведер, облегчает их моделирование во времени. Это ключевая особенность модели. Кроме того, манипулируя ставками, представленными стрелками, мы можем моделировать суммарное и кумулятивное воздействие изменения этих ставок во времени; другими словами, ставки - это рычаги, за которые могут потянуть продуктовые команды для роста DAU.

Создав модель, мы начали делать ежедневные снимки данных, чтобы составить историю развития всех этих групп пользователей и показателей удержания на ежедневной основе за последние несколько лет. На основе этих данных мы могли создать перспективную модель, а затем провести анализ чувствительности, чтобы предсказать, какие рычаги окажут наибольшее влияние на рост DAU. Мы провели имитационное моделирование для каждого тарифа, в котором каждый квартал в течение трех лет изменяли один тариф на 2%, сохраняя все остальные тарифы неизменными.

Мы сразу же увидели, что CURR оказал гигантское влияние на DAU - в пять раз больше, чем вторая лучшая метрика. Оглядываясь назад, можно сказать, что вывод CURR имеет смысл, потому что у ведра Current User есть интересная особенность: текущие пользователи, которые остаются активными, возвращаются в то же ведро.

Это создает эффект компаундирования, что означает, что CURR гораздо труднее сдвинуть с места, но когда это произойдет, это будет иметь большее влияние. На основе этого анализа мы поняли, что CURR - это та метрика, которую мы должны сдвинуть с места, чтобы добиться желаемого стратегического прорыва. Мы решили создать новую команду, команду по удержанию, для которой CURR станет метрикой "Северной звезды".

Одним из самых больших преимуществ сосредоточения на CURR стало решение не работать над тем, что раньше казалось первостепенным, особенно над удержанием новых пользователей. Это был огромный сдвиг в сознании компании, которая добилась огромного успеха, проводя в течение многих лет основную часть своих экспериментов по росту сначала на новых пользователях.

Еще одним важным уроком стал огромный разрыв между тем, как метрика может повлиять на DAU и MAU; например, влияние CURR на DAU было в 6 раз больше, чем влияние на MAU. iWAURR (коэффициент реактивации неактивных WAU) был вторым лучшим рычагом для продвижения DAU, но далеко четвертым для продвижения MAU, после увеличения количества новых и возрожденных пользователей. Это означает, что в какой-то момент нам все равно придется найти новые векторы роста для привлечения новых пользователей, если мы хотим добиться существенного улучшения MAU. Но на данный момент наше внимание было сосредоточено только на увеличении DAU, поэтому мы отдали предпочтение CURR перед всеми другими рычагами роста. И это оказалось правильным выбором.

Вектор лидерства

Получив такое четкое указание, мы просмотрели наши исторические данные модели и наши А/Б-тесты за несколько лет, чтобы выяснить, не сделали ли мы случайно чего-нибудь, что сдвинуло CURR в прошлом. Удивительно, но мы этого не сделали. На самом деле, CURR не двигался уже несколько лет. Мы должны были определить наши первые шаги по продвижению CURR, основываясь на первых принципах.

Я все еще считал, что геймификация - это хорошее начало в попытках повысить уровень удержания. Наша неудача со счетчиком ходов в стиле Gardenscapes не опровергла ни одной из первоначальных причин, по которым мы считали, что геймификация все еще имеет преимущества для Duolingo- мы только узнали, что счетчик ходов был неуклюжей попыткой. В этот раз мы будем более методично и разумно подходить к выбору функций, которые мы добавляем или заимствуем. Мы постарались применить уроки наших предыдущих попыток геймификации.

После некоторых раздумий мы решили сделать ставку на таблицы лидеров. Вот почему и как. В Duolingo уже была доска лидеров, с помощью которой пользователи могли соревноваться со своими друзьями и родственниками, но она не была особенно эффективной. Основываясь на своем опыте работы в Zynga, я чувствовал, что есть лучший способ. Когда я начал работать над игрой FarmVille 2 от Zynga, в ней была предусмотрена таблица лидеров, аналогичная существующей таблице лидеров Duolingo, где пользователи соревновались со своими друзьями. Основываясь на своем личном опыте игрока, я предположил, что близость соперников будет важнее, чем близость личных отношений. Я думал, что это будет особенно верно в зрелом продукте, где многие друзья пользователей уже не активны. По результатам нашего тестирования в Zynga, эта идея оказалась верной. Исходя из этого, я чувствовал, что система таблиц лидеров, подобная той, которую я помогал разрабатывать в Zynga, будет успешной в контексте нашего продукта.

Таблица лидеров FarmVille 2 также включала систему "лиг". Помимо попадания на вершину еженедельной таблицы лидеров, пользователи имели возможность продвигаться по ряду уровней лиги (например, от Бронзовой лиги к Серебряной лиге и Золотой лиге). Лиги давали пользователям большее ощущение прогресса и вознаграждения, что является неотъемлемым элементом игрового дизайна. Они также повышают вовлеченность со временем, так как пользователи, участвующие в игре, переходят в более конкурентные лиги неделю за неделей. Мы посчитали, что эта функция хорошо впишется в существующий продукт Duolingo, поскольку она напрямую связана с такими распространенными человеческими мотивами, как соревновательность и продвижение вперед.

Пользователи сопоставляются с другими пользователями, которые имели аналогичный уровень вовлеченности на предыдущей неделе. Лучшие игроки по итогам недели переходят в более высокую лигу на следующей неделе.

Однако не все аспекты таблиц лидеров FarmVille 2 хорошо переносятся на Duolingo. Нам пришлось применить свое суждение, чтобы адаптировать эту игровую механику к контексту Duolingo. В FarmVille 2 соревнование в таблице лидеров требовало выполнения дополнительных заданий помимо основного игрового процесса. Это было то, что мы намеренно оставили без внимания. В контексте Duolingo дополнительные задания только добавили бы ненужную сложность в изучение языка. Мы намеренно сделали нашу таблицу лидеров максимально непринужденной и не требующей особых усилий; пользователи автоматически регистрировались в ней и могли продвигаться к вершине первой лиги, просто постоянно занимаясь изучением языка. Сохранив интересную игровую механику, но сделав ее более простой, чем в FarmVille 2, мы почувствовали, что достигли правильного баланса между адаптацией и адаптацией.

Функция таблиц лидеров оказала огромное и почти мгновенное влияние на наши показатели. Общее время обучения увеличилось на 17%, а количество высоко вовлеченных учеников (пользователей, уделяющих обучению не менее 1 часа в день в течение 5 дней в неделю) утроилось. На тот момент мы еще не знали, как рассчитать статистическую значимость для CURR, но мы увидели, что наши традиционные показатели удержания (D1, D7 и т.д.) улучшились существенно и со статистической значимостью. В дальнейшем функция доски лидеров стала вектором для улучшения показателей, и команды продолжают оптимизировать эту функцию по сей день. Также важно отметить, что доска лидеров стала первым прорывом команды по удержанию!

Вектор Push-уведомлений

Команда по удержанию пользователей была полностью воодушевлена поиском новых методов, чтобы удержать текущих пользователей и мотивировать их заниматься каждый день. Одной из областей, которую они начали изучать, были push-уведомления. Основываясь на значительном A/B тестировании в предыдущие годы, Duolingo установил, что уведомления могут быть важным вектором роста, но с годами это влияние ослабло. С обновленной командой, полной новых идей, мы почувствовали, что настало подходящее время пересмотреть этот вектор.

Когда мы начали погружаться в эту тему, один принцип стал главным. Он возник из поучительной истории, рассказанной генеральным директором Groupon. Он рассказал Луису фон Ану, нашему генеральному директору, что долгое время Groupon придерживался одного уведомления по электронной почте в день. Но их команда начала задумываться о том, улучшит ли рассылка большего количества писем показатели. В итоге генеральный директор сдался и разрешил своей команде протестировать отправку еще одного письма каждому пользователю каждый день. Этот тест привел к значительному увеличению целевых показателей. Воодушевленная, Groupon продолжила экспериментировать, отправляя больше писем, даже до пяти в день. Затем, по ощущениям, их канал электронной почты потерял большую часть своей эффективности. Со временем накопление агрессивных тестов электронной почты Groupon практически уничтожило их канал. Один из часто недооцениваемых рисков агрессивного A/B-тестирования электронных писем и push-уведомлений заключается в том, что это приводит к отказу пользователей от канала; и даже если вы прекратите тестирование, эти пользователи навсегда останутся в отказе. Проделайте это много раз, и вы разрушите свой канал. Такого результата нужно было избежать. Для наших push-уведомлений мы установили одно основополагающее правило: защищать канал.

Учитывая это ограничение, мы решили дать команде большую свободу в оптимизации таких параметров, как время, шаблоны, изображения, копии, локализация и т.д., но они не могли увеличивать количество уведомлений без веского обоснования и одобрения генерального директора. Со временем, благодаря бесчисленным итерациям, A/B-тестированию и алгоритму бандита, команда смогла создать десятки мелких и средних побед, которые год за годом приводили к существенному росту DAU.

Вектор роста

В поисках еще большего количества векторов роста APM из команды по удержанию пользователей начал исследовать, существует ли сильная корреляция между удержанием пользователей и использованием определенных функций Duolingo. Он обнаружил, что если пользователь достигает 10-дневной полосы, его шансы на отсев значительно снижаются. Очевидно, что многое из этого было просто корреляцией и предвзятостью отбора, но мы посчитали этот факт достаточно интересным, чтобы снова начать инвестировать в улучшение этой функции.

Концепция стрима на самом деле довольно проста: показать пользователям количество дней подряд, в течение которых они выполняли какие-либо действия в приложении. Но оказалось, что вокруг полос существует удивительно большое количество возможностей для оптимизации.

Мы добились первой большой победы с уведомлением о сохранении полос - уведомлением, которое предупреждает пользователей с полосами, если они вот-вот потеряют свою полосу. Это ночное уведомление доказало, что оптимизация полос действительно имеет значительные преимущества. После этого последовало несколько улучшений: просмотр календаря, анимация, изменения в замораживании полос и вознаграждение за полосу, среди прочих. Каждое из них помогло улучшить первоначальную идею полос и привело к существенному улучшению удержания.

На сегодняшний день функция полосы является одной из самых мощных механик вовлечения в Duolingo. Когда люди рассказывают о своем опыте использования Duolingo, они часто упоминают о своей полосе. Недавно я встретил одного пользователя, который сказал мне: "У меня полоса в 1 435 дней!" и добавил: "И ни одной заморозки!". Его хвастовство было вполне заслуженным, поскольку он ежедневно изучал выбранный язык в течение почти четырех лет.

Полосы работают по нескольким причинам. Одна из них заключается в том, что полоса со временем повышает мотивацию пользователя; чем длиннее полоса, тем больше стимул продолжать ее. Когда речь идет об удержании пользователей, именно такого поведения мы хотим добиться от наших пользователей. Каждый день, когда ученик приходит в Duolingo, он заботится о том, чтобы вернуться на следующий день, немного больше, чем за день до этого, а значит, повышается уровень удержания и DAU. В качестве мета-урока, наш успех с механикой полос еще раз показал нам, что мы можем извлечь большую пользу из существующих функций. Мы увидели ценность как в больших прорывах, так и в быстрой оптимизации. А в команде класса "А+" часто сочетается и то, и другое.

Рост за пределами CURR

Мы не остановились на CURR; существовала очень здоровая паранойя, что в какой-то момент CURR достигнет потолка, и рано или поздно нам придется искать векторы роста для привлечения новых пользователей. Команда по удержанию пользователей оставалась сфокусированной на увеличении CURR, но как компания мы постоянно увеличивали наши инвестиции в рост, создавая все новые и новые команды по продукту и маркетингу для поиска новых векторов (как для удержания, так и для привлечения пользователей). К счастью, некоторые из этих ставок сработали, включая международную экспансию, создание социальных функций (именно на это в конечном итоге переключилась команда Acquisition, причем с большим успехом), ускорение создания контента курсов, работу с влиятельными людьми, увеличение нашего присутствия в школах, инвестиции (немного) в платные каналы привлечения и безумный вирус на TikTok. Каждый из этих примеров заслуживает отдельного исследования.

Общие результаты

Благодаря нашим усилиям за четыре года мы смогли увеличить CURR на 21%, что представляет собой снижение ежедневного оттока наших лучших пользователей более чем на 40% и, вместе с другими нашими успешными ставками, привело к увеличению нашего DAU в 4,5 раза. Прошлый год стал одним из самых быстрых темпов роста в истории Duolingo. Качество пользовательской базы также улучшилось; доля наших пользователей со стажем 7 дней и более увеличилась почти в 3 раза и составила более половины наших пользователей. Это означает, что у Duolingo теперь не только гораздо больше активных пользователей, но и то, что эти пользователи с гораздо большей вероятностью будут возвращаться, рекомендовать своих друзей и подписываться на Super Duolingo. Такой рост стал залогом успешного IPO Duolingo.

Размышления на прощание

Я надеюсь, что эта статья вдохновит вас на поиск новых векторов роста для вашего продукта. Если вы возьмете что-то из моего опыта работы в Duolingo, я надеюсь, что вы адаптируете это к своему контексту, используя свои лучшие суждения. Не стоит слепо доверять тому, что сделала Duolingo или любая другая компания. Это точно не сработало для меня. Счастливых экспериментов!

Источник