GameDev,  Блог

Как поставить задачу на A/B-тестирование программисту

Оказалось, что внедрить функционал A/B-тестирования в игру не такая уж тривиальная задача. Когда программист попросил меня расписать ТЗ, я подумал — почему бы не написать задачу в блог? Ведь это решение практически универсальное и его можно использовать влюбом проекте.

Зачем нужны сплит-тесты

Понимаю, что сейчас буду «капитаном-неожиданность», но всё же напишу для чего мы используем a/b-тесты.  В игре разные компоненты, механики и решения могут быть реализованы по-разному. И мы, геймдизайнеры, сомневаемся — какое же решение лучше подойдет для конкретно этого сеттинга, аудитории и вообще каждой отдельной игры. Или мы планируем ввести новый функционал, и не знаем какой эффект он окажет на приложение. Тогда мы сплитуем работу с новым элементом и без него и получаем замеренный эффект.

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

С чего начать?

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

Что будем сплитовать:

  • интерфейсы
  • игровые механики
  • игровая экономика (баланс)
  • последовательность открытия контента
  • эффект от нового контента или фичи

Каждая из этих опций оценивается разными метриками и именно по ним мы будем определять эффективность. Интерфейсы и механики оцениваются KPI вовлечения: целевыми действиями (последовательностю), длинной сессии и их количеством, количеством целевых действий на DAU и прочими. Балансировка и экономика оценивается финансовыми показателями, дефицитом и профицитом ресурсов. Динамика открытия контента, игровые цели и дерево механик — показателями удержания: поздним ретешеном, динамикой времени на сессии в день и кастомными метриками.

Проще говоря — ваша система аналитики и трекинга должна уметь анализировать разные сплиты по разным показателям и наборам KPI. Большая ошибка анализировать все сплиты по одному даш борду с основными метриками. Тем не менее основные метрики должны быть — вдруг ваш функционал, который улучшает вовлечени губителен для монетизации?

Как управлять сплитами

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

Разделение аудитории

И так, при инстале нужно делить пользователей на когорты, чтобы потом делать когортный анализ. Вы можете установить кастомное деление 50 на 50, или деление на 3 и более когорт (по 33,3% в каждую). Так же вы можете установить наливать в какой то сплит только 10% от всех инсталов, а остальные 90% в общую массу — если не хотите рисковать.

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

Дальше

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

Интерфейс a/b тестов

Так как вы предусмотрели различные варианты сплитования — вы создаете таблицы настроек в рамках каждой из областей сплитования и общую таблицу управления.

Таблица сплитов интерфейсов

SplitId Name (description) Setup Target Comment
1 Default A all
2 Lite B ipad; ios8; usa отключить 1 января

Таблица сплитов механик

SplitId Name (description) Setup Target Comment
1 Default 53545 all
2 Midcore 777 ref=clashofclans_fb набрать 10000 пользовтелей

Таблица конфигов

SplitId Name (description) Конфиг баланса Платежное меню Кривая сложности Индекс плтельщика Target Comment
1 Default Normal Def Long None all  —
2 Expencive Normal Exp Long None ref=clashofclans_fb
3 HardWay Hard Exp Long2 100 USA, CA, AU

И общая таблица сплитов

Таблица, которая объединяет все предыдущие таблицы в одну и настраивает

SplitId Name (description) Конфиги UI Механики еще одна таблица Коэфициент Comment
1 Default 1 1 1 1 50% до 2 февраля
2 Expencive 2 1 1 1 50% до 2 февраля
3 Hard Way 3 1 1 1 0 отключен

Надо помнить перед началом проведения тестов

  • Важно одновременно проводить столько тестов, сколько вы можете обеспечить достаточным объемом аудитории и столько, сколько вы можете проанализировать
  • Надо убедиться, что все трекеры расставлены и статистика собирается
  • Аналитик должен протестировать работу сплитов и их настройки на внутренней аудитории перед включением на мир (продакшен сервер)

Как проверить работоспособность системы

Проведите А/А-тест, тест который делит аудиторию пополам и посмотрите на результат. Если результат одинаковый — ваша система работает хорошо, если же результаты отличаются — задайте себе вопрос: «А не ошибся ли я где-то?»

Удачных вам тестов, сомневайтесь, проверяйте и делайте выводы. Именно так вы увеличите ваши доходы, не потеряв аудиторию.

Поделись с коллегами: