Продакт, не забудь про safe mode

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

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

Случилось так, что, выкатив новое обновление на сервере, команда «убила» клиент старых версий. Клиент после первого запуска получил от сервера команду показывать кастомизированный экран загрузки, которого нет на старых версиях приложения. Поэтому при следующем входе игра не могла загрузится и крешилась еще до первого запроса к серверу. Да, благодаря системам мониторинга, эта проблема была оперативно найдена и исправлена. Однако, те пользователи, которые уже зашли в приложение, никогда не смогут его запустить без обновления на самую актуальную версию (а таких пользователей обычно 10-30%, в зависимости от проекта и аудитории).

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

Чтобы таких ситуаций у вас не возникало, при разработке приложения следует помнить о Safe Mode — то, что было сделано в Windows очень давно. Вы, как хозяин продукта, должны иметь возможность при любой ситуации достучаться до пользователя: показать нативное или кастомное уведомление даже при незагрузке приложения, отключения всех дополнительных фичей, сброс всех локальных хранилищ до первоначального состояния и другое… При этом, во всех случаях, когда приложение не может загрузиться более N секунд, лучше слать ивенты в систему статистики и поднимать окно со связью с поддержкой — пользователю приятно думать, что есть, с кем решить проблему.

Если бы у нас был такой функционал на момент возникновения проблемы, мы бы потратили меньше времени и лучше справились с последствиями. Но, инструментов нет, а проблему нужно решать. Что мы сделали? Во-первых, PUSH-уведомления у нас все-таки работают — мы отправили сообщения с призывом обновиться и получить в качестве компенсации хард-валюту. Во-вторых, мы вручную связались со всеми плательщиками в социальных сетях, чьи контакты у нас были (игра подразумевает авторизацию через соцсети), и объяснили ситуацию и рассказали, как обновить приложение. В-третьих, запустили ретаргетинг-кампанию во всех крупнейших рекламных сетях. Таким образом, мы смогли вернуть около 40% пользователей за сутки. Ну и конечно, запустили в разработку safe mode, чтобы больше подобной проблемы не возникало.

Работаю аналитиком в игровой сфере. Участвую в различных хакатонах. Область интересов - монетизация проектов и применение ML в продуктах и бизнесе.

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *