Добавить в корзинуПозвонить
Найти в Дзене

Геймификация привычек - как Duolingo стриками подняла вовлеченность на 60%

Вы, вероятно, сталкивались с понятием стриков в приложениях. Задумывались ли вы, почему они популярны и эффективны? Приложения стремятся заполучить ваше внимание. Например, когда Duolingo внедрил виджеты iOS для отображения стриков, приверженность пользователей выросла на 60%. Этот показатель наглядно демонстрирует, как паттерны стрика могут повысить вовлечённость В самом простом понимании стрик — это количество последовательных дней, в течение которых пользователь выполняет определённое действие. Некоторые также определяют его как «геймифицированную» привычку или метрику, призванную поощрять регулярное использование Стрики выходят за рамки простой метрики. Это более глубокое психологическое явление. Человеческие инстинкты легко поддаются влиянию при наличии правильных факторов. Например, прогресс, гордость и страх упустить что-то (FOMO) связаны с усилием. Чаще всего, чем больше усилий вы вкладываете в дело, тем больше это формирует вашу идентичность. Именно так стрики перекликаются с
Оглавление

Вы, вероятно, сталкивались с понятием стриков в приложениях. Задумывались ли вы, почему они популярны и эффективны? Приложения стремятся заполучить ваше внимание. Например, когда Duolingo внедрил виджеты iOS для отображения стриков, приверженность пользователей выросла на 60%. Этот показатель наглядно демонстрирует, как паттерны стрика могут повысить вовлечённость

В самом простом понимании стрик — это количество последовательных дней, в течение которых пользователь выполняет определённое действие. Некоторые также определяют его как «геймифицированную» привычку или метрику, призванную поощрять регулярное использование

-2

Стрики выходят за рамки простой метрики. Это более глубокое психологическое явление. Человеческие инстинкты легко поддаются влиянию при наличии правильных факторов. Например, прогресс, гордость и страх упустить что-то (FOMO) связаны с усилием. Чаще всего, чем больше усилий вы вкладываете в дело, тем больше это формирует вашу идентичность. Именно так стрики перекликаются с поведенческой психологией

С большой силой приходит большая ответственность, и именно поэтому у стриков есть тёмная сторона

Психология стриков

Для успешного проектирования системы стриков важно понимать, как она влияет на наш мозг. Что делает её столь эффективной и вызывает столь сильную преданность к защитам своих стриков?

Существуют три хорошо задокументированных психологических принципа, объясняющих, почему стрики так мощны и вызывают привыкание

-3

Эффект неприятия потерь

Это, пожалуй, самая мощная сила, стоящая за стриками. Говорю это потому, что в большинстве случаев её почти невозможно избежать в жизни

Если представить, что друг дарит вам $100, вы будете счастливы. Но потеря $100 из вашего кошелька вызовет куда больше негативных эмоций. Эти ситуации не равнозначны; потеря приносит гораздо более глубокую боль, чем радость от приобретения

Теперь, предположим, я предлагаю вам сыграть в азартную игру с $100. Есть 50%-ная вероятность выиграть еще $100 и 50%-ная вероятность потерять ваши первоначальные $100. Согласитесь на такую ставку? Большинство людей скажут 'нет', и это иллюстрирует суть неприятия потерь

Если задуматься, это логично, понятно, это по-человечески

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

Вы, вероятно, понимаете, как это связано со стриками. Чтобы сформировать заметный стрик, требуются усилия; по мере роста стрика мотивация, стоящая за ним, начинает угасать — или, точнее, отходит на второй план

Представьте, что у вашего друга трёхдневный стрик закрытия 'Колец активности' на Apple Watch. Он не теряет почти ничего, кроме желания быть последовательным. Но у вас 219 дней, и вы испытываете страх потерять это достижение. Для вас это не просто цель, а необходимость защитить вложенные усилия - вот и суть неприятия потерь

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

Модель поведения Фогга: что заставляет нас действовать

Теперь, когда мы понимаем страх потерять усилия, вложенные в длинные стрики, возникает другой вопрос: что заставляет нас делать это в первую очередь, день за днём, ещё до того, как стрик становится большим?

Именно об этом модель поведения Фогга (Fogg Behaviour Model). Она относительно проста. Поведение (B) происходит только тогда, когда три фактора — Мотивация (M), Способность (A) и Подсказка (P) — совпадают в один момент. Отсюда уравнение B=MAP

Если хотя бы один из этих факторов отсутствует в данный момент, поведение не произойдёт

Таким образом, чтобы система стриков была эффективной и повторяющейся, все три фактора должны присутствовать

Мотивация. Она нестабильна и не присутствует постоянно. Бывают дни, когда вы полны энтузиазма учить испанский, и дни, когда у вас нет ни капли силы воли для этого. Мотивация сама по себе для формирования привычки ненадёжна и с первого дня обречена на провал

Способность. Чтобы компенсировать ограничения мотивации, способность имеет решающее значение. В данном контексте способность означает лёгкость действия, то есть усилие настолько мало, что нереалистично говорить, что это невозможно. Большинство приложений намеренно используют это. Apple Fitness требует лишь, чтобы вы простояли одну минуту в час, чтобы получить отметку к цели «Стоять» (Stand)

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

Подсказка. Именно она завершает уравнение. Люди по природе своей забывчивы, поэтому способность может привести нас на 90% к цели. Но подсказка напоминает нам действовать. Стрики по своей природе постоянны, поэтому пользователей нужно постоянно напоминать о необходимости действовать

Чтобы увидеть, насколько мощной может быть подсказка, Duolingo провёл A/B-тест, чтобы выяснить, увеличивает ли маленький красный значок на иконке приложения регулярное использование. Это дало 6%-ный прирост ежедневных активных пользователей. Просто красный значок

При всём сказанном у модели Фогга есть ограничение: критики и современные исследования заметили, что дизайн, слишком сильно опирающийся на подсказки, например агрессивные уведомления, рискует создать умственную усталость. Постоянные уведомления со временем могут привести к оттоку пользователей. Так что имейте это в виду

Эффект Зейгарник

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

Именно поэтому цифровые продукты используют искусственные индикаторы прогресса, например полосу заполнения профиля на Upwork, сообщающую пользователю, что его профиль заполнен лишь на «60%». Это подталкивает пользователя завершить начатое

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

Эффект Зейгарник был продемонстрирован психологом Блюмой Зейгарник, которая описала, что мы склонны удерживать незавершённые задачи в памяти дольше, чем завершённые

Паттерн стрика естественным образом задействует это в UX-дизайне. Допустим, вы на 63-м дне стрика обучения. В этот момент вы находитесь в продолжающемся паттерне незавершённых дел. Ваш мозг редко забудет об этом — это сидит в глубине сознания. В этот момент ваш мозг сам начинает отправлять вам уведомления

Когда вы объединяете эти психологические силы, вы начинаете по-настоящему понимать, почему стрики — это не просто обычная функция приложения; они способны изменить человеческое поведение

Но в какой-то момент — я не могу сказать точно когда, поскольку это индивидуально — наступает точка, когда стрик переходит из категории «веселья» в нечто, что вы не можете позволить себе потерять. Вы же не хотите, чтобы 58 дней усилий пропали зря? Именно это делает систему стриков эффективной. При правильном подходе стрики помогают пользователям формировать удивительные привычки, ведущие к достижению цели. Это может быть ежедневное чтение или регулярные походы в спортзал

Эти повторяющиеся действия — порой небольшие — накапливаются со временем и становятся заметны в нашей повседневной жизни. Но у каждой медали есть две стороны

Тонкая грань между привычкой и навязчивостью

-4

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

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

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

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

Хорошо спроектированная этичная система стриков должна ощущаться пользователем как поощрение, а не как давление или обязательство. Это связано с балансом внутренней и внешней мотивации

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

Хорошая система должна тяготеть к внутренней мотивации с осторожным использованием внешних элементов, то есть напоминать пользователям о том, как далеко они продвинулись, а не угрожать им тем, что они могут потерять. И снова — это тонкая грань

Простой тест при проектировании системы стриков — это действительно потратить время и подумать, зарабатывает ли ваш продукт деньги, продавая решения для тревоги, которую сам же и создал. Если да, то с высокой вероятностью вы эксплуатируете пользователей

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

UX хорошего дизайна системы стриков

Именно здесь большинство проектов либо создают эффективную систему стриков, либо полностью её проваливают. Разберём несколько UX-принципов хорошего дизайна стриков

-5

Сделайте действие простым

Вы, вероятно, уже слышали это раньше, возможно, из таких книг, как Atomic Habits, но стоит упомянуть, что один из самых простых способов формирования привычек — сделать действие маленьким и лёгким. Это похоже на фактор способности, который мы обсуждали в рамках модели поведения Фогга

Первое правило любого дизайна стриков — сделать требуемое действие настолько маленьким, насколько это вообще возможно, при этом всё равно достигая прогресса

Если ежедневное действие требует силы воли для выполнения, это действие не продержится дольше пяти дней. Почему? Потому что нельзя быть мотивированным пять дней подряд

Показательный пример: если вы запускаете приложение для медитации, вам не нужно заставлять пользователей проходить 20-минутную сессию только для поддержания стрика. Попробуйте одну минуту, а может, даже что-то такое маленькое, как тридцать секунд

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

Обеспечьте чёткую визуальную обратную связь

Люди по своей природе визуальны. Чаще всего нам нужно что-то увидеть, чтобы поверить; есть эта потребность визуализировать вещи, чтобы лучше их понять и расставить всё по местам

Именно поэтому паттерны стриков часто используют визуальные элементы — графики, галочки, кольца прогресса и сетки — для визуализации усилий. Посмотрите на граф вкладов GitHub. Это простая визуализация последовательности. Тем не менее разработчики дышат ею как кислородом

Ключевое — не давать системе стриков ощущаться абстрактной. Она должна ощущаться реальной и заслуженной. Например, Duolingo и кольца активности Apple Fitness используют чистые анимационные дизайны при завершении стрика, а GitHub показывает исторические данные о последовательности пользователя с течением времени

Используйте правильный тайминг

Люди в целом забывчивы по своей природе, и подсказки могут помочь поддерживать движение вперёд. Без подсказок большинство новых пользователей забывают продолжать. Жизнь может быть насыщенной, мотивация исчезает, и случаются разные вещи. Даже давние пользователи получают пользу от подсказок, хотя чаще всего они уже заперты внутри петли привычки. Тем не менее даже самый преданный человек может случайно пропустить день

Ваша система стриков определённо нуждается в напоминаниях. Наиболее используемые напоминания — это push-уведомления. Тайминг действительно важен при работе с push-уведомлениями. Тип приложения тоже имеет значение

Отправлять уведомление в 9 утра со словами «Вы ещё не практиковались сегодня» — это просто странно для обучающего приложения, потому что у многих есть дела в течение дня, прежде чем они вообще подумают о выполнении урока. Если же речь идёт о фитнес-приложении, то напоминание раньше в течение дня вполне разумно и, возможно, даже ожидаемо

Push-уведомления существенно различаются в зависимости от категории приложения. Фитнес-приложения, например, демонстрируют более высокую вовлечённость при утренних уведомлениях (7–8 утра), тогда как приложения для продуктивности могут показывать лучшие результаты в начале полудня

Ключевое — проводить A/B-тестирование тайминга вашего приложения на основе поведения пользователей, а не предполагать, что один подход подходит всем. То, что работает для приложения медитации, может не работать для трекера программирования

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

Только не переусердствуйте; подсказка должна служить напоминанием, а не надоедать

Отмечайте вехи

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

Когда пользователь достигает 7-го дня, 30-го дня, 50-го дня, 100-го дня, 365-го дня — вы должны сделать из этого большое событие. Признавайте достижения — особенно для давних пользователей

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

Ещё одно преимущество — это предвкушение, которое возникает перед достижением вех. Речь идёт не просто о бесконечном поддержании стрика; у пользователей есть то, чего они могут ждать с нетерпением

Используйте механизмы снисхождения

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

«Этичная» система стриков должна предоставлять пользователю некоторую свободу. Допустим, у вас есть 90-дневный стрик по изучению шахмат. Вы были последовательны на протяжении трёх хороших месяцев, и однажды ваш телефон разряжается во время путешествия, и вот так, 90 превращается в 0 — всё, все усилия стёрты, прогресс исчезает. Пользователь может быть полностью опустошён

Мысль о том, чтобы начинать всё с нуля, настолько деморализует, что усилия того не стоят. В худшем случае пользователь может бросить приложение, чувствуя себя неудачником

Рассмотрите возможность добавления механизма «снисхождения» в вашу систему стриков:

  • Заморозка стрика — позвольте пользователям намеренно пропустить день без штрафов.
  • Дополнительное время — разрешите несколько часов (2–3) после обычного дедлайна, прежде чем запускать сброс.
  • Модели затухания — вместо жёсткого сброса стрик уменьшается на небольшую величину, например, 10 дней вычитается из стрика за каждый пропущенный день.

Используйте поощрительный тон

-6

Давайте сравним два сообщения, показываемых пользователям при прерывании стрика:

«Вы потеряли свой 42-дневный стрик. Начните заново.»

«Вы появлялись 42 дня подряд. Это невероятный прогресс! Хотите попробовать ещё раз?»

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

Проблемы проектирования систем стриков

Прежде чем перейти к техническим деталям построения системы стриков, стоит разобраться с трудностями, с которыми вы можете столкнуться. Всё может оказаться сложнее, чем кажется

-7

Работа с часовыми поясами

Работа со временем и датами — одна из самых сложных задач для разработчиков, и на это есть причины. Здесь нужно учитывать форматирование, интернационализацию и многое другое

Позвольте задать вопрос: что считать одним днём?

Мы знаем, что мир живёт в разных часовых поясах, и как будто этого мало — в некоторых регионах дважды в год происходит переход на летнее время (DST, Daylight Saving Time). С чего вообще начинать обработку этих граничных случаев? Что считать «началом» завтрашнего дня?

Некоторые разработчики пытаются избежать этой проблемы, используя единый центральный часовой пояс, например UTC (Coordinated Universal Time, всемирное координированное время). Для одних пользователей это даст корректные результаты, но для других время может отличаться на час, два или больше. Такая непоследовательность разрушает пользовательский опыт

Пользователей мало волнует, как вы обрабатываете время за кулисами; они ожидают лишь одного: если они выполнили действие для стрика в 23:40, оно должно быть зафиксировано именно в это время — в их контексте. Определять «один день» следует на основе локального часового пояса пользователя, а не серверного времени

Конечно, можно пойти по простому пути и сбрасывать стрики для всех пользователей одновременно в полночь по UTC, но тем самым вы создаёте несправедливость. У кого-то в Калифорнии всегда будет на восемь часов больше для выполнения задачи, чем у жителя Лондона. Это несправедливый изъян дизайна, который наказывает определённых пользователей за их местоположение

А что если этот человек из Лондона просто приехал в гости, выполнил задачу, а затем вернулся в другой часовой пояс?

Одно из эффективных решений — попросить пользователей явно указать свой часовой пояс при онбординге (желательно после первой аутентификации). Хорошей идеей будет добавить ненавязчивую пометку о том, что информация о часовом поясе используется только для точного отслеживания прогресса в приложении, а не как персональные идентификационные данные. И ещё одна хорошая идея — сделать этот параметр изменяемым в настройках

Рекомендую избегать самостоятельной реализации логики работы с часовыми поясами в приложении. Используйте проверенные библиотеки для работы с датами, такие как Moment.js или pytz (Python) и другие. Нет смысла изобретать велосипед для чего-то настолько сложного

Пропущенные дни и граничные случаи

Ещё одна проблема, о которой стоит беспокоиться, — неконтролируемые граничные случаи: пользователь проспал, сервер упал, возникли лаги, сбои сети и так далее. Здесь могут помочь механизмы снисхождения, о которых мы говорили ранее

Окно снисхождения в два часа может быть полезно как для пользователя, так и для разработчика: пользователи не наказываются жёстко за неподконтрольные им жизненные обстоятельства. Для разработчиков такие окна выручают в те неконтролируемые моменты, когда сервер падает посреди ночи

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

Предотвращение читерства

Повторю ещё раз, и это нельзя переоценить: убедитесь, что всё валидируется на стороне сервера. Пользователи — люди, а люди могут жульничать, если им предоставить такую возможность. Это неизбежно

Можно попробовать следующее:

Хранить все действия с временными метками в UTC. Клиент может отправлять своё локальное время, но сервер немедленно конвертирует его в UTC и сверяет с серверным временем. Таким образом, если временная метка клиента подозрительно далека от серверной, система может отклонить её как ошибку, а интерфейс — отреагировать соответствующим образом

Использовать отслеживание на основе событий (event-based tracking). Иными словами, хранить запись каждого действия с метаданными, включая такую информацию, как идентификатор пользователя, тип выполненного действия, временная метка и часовой пояс. Это помогает с валидацией

Построение движка системы стриков

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

-8

Базовая архитектура

Как я уже неоднократно говорил, сделайте сервер единственным источником истины для данных о стриках. Архитектура на стороне сервера может выглядеть примерно так:

  • Хранить данные каждого пользователя в базе данных.
  • Хранить текущее значение стрика (по умолчанию 0) в виде целого числа.
  • Хранить предпочтение по часовому поясу, то есть строку часового пояса IANA (либо неявно из локальной временной метки, либо явно, попросив пользователя выбрать свой часовой пояс). Например, "America/New_York".
  • Обрабатывать всю логику определения того, продолжается стрик или прерывается, с проверкой часового пояса относительно локального часового пояса пользователя.

На стороне клиента:

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

Итак, если коротко: мозг находится на сервере, а клиент служит для отображения и отправки событий. Это избавляет от множества сбоев и граничных случаев, а также упрощает обновления и исправления

Логический поток

Давайте смоделируем пошаговый сценарий того, как будет работать минимальный эффективный движок системы стриков, когда пользователь выполняет действие:

  1. Пользователь выполняет квалифицирующее действие для стрика.
  2. Клиент отправляет событие на сервер в виде метаданных. Это может быть что-то вроде «Пользователь X выполнил действие Y в момент времени Z».
  3. Сервер получает это событие и выполняет базовую валидацию. Это реальный пользователь? Прошёл ли он аутентификацию? Является ли действие допустимым? Соответствует ли часовой пояс?
  4. Если проверка пройдена, сервер извлекает данные о стрике пользователя из базы данных.
  5. Затем конвертирует полученную временную метку действия в локальный часовой пояс пользователя.
  6. Сервер сравнивает календарные даты (не временные метки) в локальном часовом поясе пользователя: если это тот же день, то действие избыточно и стрик не меняется.
  7. Если это следующий день, стрик продолжается и увеличивается на 1.
  8. Если разрыв составляет более одного дня, стрик прерывается. Однако именно здесь можно применить механику снисхождения.
  9. Если окно снисхождения пропущено, стрик сбрасывается до 1.
  10. Если вы решили сохранять исторические данные для достижений по вехам, обновите такие переменные, как «наибольший стрик» или «всего активных дней».

Затем сервер обновляет базу данных и отвечает клиенту. Примерно так:

{ "current_streak": 48, "longest_streak": 50, "total_active_days": 120, "streak_extended": true

}

В качестве дополнительной меры сервер должен либо повторить попытку, либо отклонить запрос и уведомить клиента, если в процессе что-то пошло не так

Построение надёжной системы

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

Если сервер недоступен из-за технического обслуживания (или по любой другой причине), рассмотрите возможность предоставления временного дополнительного окна в несколько часов для его восстановления, чтобы действия можно было отправить с опозданием и они всё равно засчитывались. Также можно уведомлять пользователей, особенно если ситуация способна повлиять на текущий стрик

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

Одно остаётся очевидным: стрики обладают огромной силой — именно потому, как устроена человеческая психология на фундаментальном уровнеЛучшая система стриков — та, о которой пользователи не думают осознанно. Она превратилась в рутину немедленных результатов или видимого прогресса, как чистка зубов, которая становится регулярной привычкойИ скажу прямо: не всем продуктам нужна система стриков. Стоит ли действительно навязывать последовательность только потому, что вы хотите получить ежедневных активных пользователей? Ответ вполне может быть «нет»