Нам пишет Станислав Смагин.
Современный разработчик должен реагировать на поведение пользователя быстро. Если 80% игроков не могут пройти один и тот же уровень — это провал, и автору игры надо узнать об этом как можно раньше. Справиться с этим помогает аналитика — система отслеживания действий игрока. В этой истории я хочу рассказать про свой опыт работы с аналитикой. Вы сможете узнать:
– как с помощью статистики найти ошибки в приложении, в его интерфейсе;
– что можно сделать, чтобы избежать «паразитных» тестовых данных;
– чем аналитика может помочь в работе над созданием новых игровых уровней;
– как правильно называть события, чтобы потом легко и удобно пользоваться собранным данными.
Начиная работать с системой аналитики, я задавался простой целью — знать количество установок и покупок на данный момент. ItunesConnect показывает данные с отставанием на сутки, а мне хотелось быть в курсе событий здесь и сейчас. Поэтому я обратился к сторонним сервисам сбора данных. Выбор пал на Flurry, который практически в онлайн-режиме ведет запись всех событий. Регистрировать открытие приложения не надо, это делается автоматически, на основе чего считается количество установок. Таким образом единственным моим событием стало событие произведенной покупки. Теперь я держал руку на пульсе: я мог видеть сколько всего человек установили приложение, сколько играют прямо сейчас и главное — сколько из них сделали покупку.
Когда мое первое приложение — «Пунктуацию» — установили порядка 100 тысяч человек, я подумал, что неплохо было бы собрать сведения о грамотности игроков. В игре появилось событие завершение раунда, в котором записывалось количество ошибок, допущенное игроками. Так я стал обладателем по сути бесполезных знаний, которые снова никак не помогли мне улучшить игру.
Сразу после запуска приложения игроки стали жаловаться на некоторые ошибки в игре. Большинство из них были простыми опечатками в правилах или цитатах. Но были и такие, которые попросту мешали играть. Тогда у меня возникла мысль, что с помощью Flurry я мог бы отлавливать такие места. У меня уже было событие завершения раунда с подсчетом количества допущенных ошибок, поэтому я просто решил добавить в него несколько полей. Так появилось поле «карточка с 1 допущенной ошибкой», «карточка с 2 допущенными ошибками» и т. д. до 8 — максимальное количество возможных ошибок в одной карточке. Теперь я мог сделать выборку среди событий по любому из этих полей, увидеть сильно выделяющуюся карточку и проверить ее, не допущено ли там опечаток.
Так я добавил в игру отслеживание первого полезного события. Однако сделал это неверно. Пользоваться этим было крайне неудобно. Плюс ко всему, когда я начал составлять карточки для обновления, я задался вопросом: а в каком правиле люди чаще всего ошибаются? Но не смог дать на него ответ. У меня была информация о карточке, в которой допускаются ошибки, но не о правиле. А все потому, что я не захотел записывать отдельное событие для каждой допущенной ошибки. Это событие появилось только в поздних версиях игры и помогает мне сейчас при подготовке очередного обновления. Не жадничайте на события. Flurry позволяет иметь до 300 событий на одно приложение, этого вполне достаточно для большинства мобильных игр.
Записывайте каждый чих игрока, если это поможет сделать игру лучше
Моя вторая игра — «Орфография» — довольно проста с точки зрения интерфейсов, управление в ней интуитивно и не требует какого-либо пояснения. Однако со временем в нем появилась функция, которую понадобилось объяснить. Тогда я задался вопросом: куда вставить это объяснение? На экран информации, который открывается с главного экрана, или же непосредственно в месте появления новой возможности? Тогда я снова подумал про Flurry и о том, как хорошо было бы, если бы я знал, как часто люди открывают экран информации. Ведь если туда заходят только, скажем, 5% пользователей, то очевидно, что объяснение работы нового функционала они увидят позже, чем впервые с ним столкнутся.
Отслеживайте открытие каждого экрана, каждого окна
Теперь, после того как я добавил отслеживание смены экранов, я знал, сколько пользователей открыли хоть раз экран информации и прочитали правила игры. А помимо этого, у меня появилась возможность отследить последовательность действий игрока. В определенных моментах это помогает понять поведение пользователя и сделать соответствующие выводы. В моей последней игре — «Песневороте» — игроку надо отгадывать песни по отрывкам, в которых каждое слово заменено на обратное ему по смыслу. Правила просты, но все же не каждый поймет, что надо делать, глядя просто на загадку. Поэтому я сделал в игре экран с правилами. С главного меню игрок может попасть на экран информации, а уже там нажать на кнопку «Как играть?».
Однако у меня были сомнения в том, что эти правила будет хоть кто-нибудь читать. Во-первых, мне казалось, что игроки сразу начнут играть и будут разбираться на месте. А во-вторых, экран с правилами получился достаточно глубоко, в двух кликах от главного меню. Я просмотрел цепочку действий игроков и понял, что опасения были не напрасны: лишь единицы добираются до правил с главного экрана. Хорошо, что я добавил кнопку правил на страницу с загадкой.
На этом изображении, кстати, есть события ScreenMain, ScreenRules и ScreenBlock. Но сперва эти события были одним «Open Screen», в параметры которого я записывал тип открываемого экрана. В результате этим было довольно сложно пользоваться: во всех таблицах и графиках я видел только название события и не понимал, о каком именно экране идет речь.
Не используйте одно событие с параметрами для отслеживания открытия экранов и окон
Работая над игрой «Песневорот» я долго думал над балансом игры. Изначально игроку доступна одна категория, то есть 12 песен. За каждую отгаданную загадку он получает монеты, которые тратит на покупку подсказок или открытие новой категории. Если монеты кончаются, игрок может докупить их за деньги.
Целью баланса игры было подобрать оптимальные значения наград и цен, такие, чтобы у игрока была возможность пользоваться подсказками в каждой категории, открывать новые, но при этом, чтоб он не мог угадывать каждую песню с подсказкой. Плюс ко всему, весь баланс накладывается на то, что сложность загадок крайне субъективна: один игрок хорошо знает рок-песни, а другой нет. В итоге у первого возникнет избыток монет, а у второго — нехватка. В общем, мне снова нужна была статистика. Я добавил параметр количества монет почти в каждое событие. В результате теперь я знаю, например, сколько было монет у игрока, когда он открывал новую категорию, по этому значению я могу судить о балансе и делать выводы.
На изображении видно, что открывая новый набор, большинство игроков не испытывают проблем с монетами, а значит можно не бояться за баланс.
Определите общие для всех событий поля и добавьте их в отслеживание действий игрока
«Песневорот» был запущен всего лишь на прошлой неделе, а у него уже было одно обновление. Плюс во время разработки версии приложения меняются по несколько раз в день. У «Орфографии» было 4 обновления и множество рабочих версий. Все это приводит к тому, что в таблице аналитики появляются паразитные данные. За время разработки я захожу в игру и делаю те же действия, что и игрок, но данные эти ложные, они мне не интересны и не должны попадать в результирующую таблицу.
В Flurry есть возможность просмотреть статистику определенной версии, но это не удобно, когда нужны данные по пользователям всех версий.
Создайте тестовое приложение и записывайте в него события во время разработки
Главное не забыть переключиться с тестового приложения на релизное, когда будете собирать проект для загрузки в AppStore. Перекинуть данные из одного приложения в другое потом будет невозможно, Flurry не предоставляет такой возможности. Часть данных о пользователях будет фактически потеряна, оторвана от данных прошлых версий.
Оглядываясь назад, я ясно вижу все свои ошибки. В «Орфографии» и «Пунктуации» я отслеживал события завершения раунда, записывал количество допущенных ошибок. Но единственное, что мне действительно нужно было — это отдельное событие на каждую ошибку. В результате это дало мне сведения о самых сложных правилах, и я сделал на них упор в будущих обновлениях.
Определитесь, на какие вопросы вы хотите ответить с помощью аналитики
Аналитика — это мощный инструмент, с помощью которого можно ответить на важные вопросы, надо только уметь им пользоваться. Я попытался показать возможности аналитики на примере моей новой игры «Песневорот».
iPhone + iPad: Free [Скачать в App Store]
3 комментария
Форум →Лично я устал от внутренних покупок, лучше было когда прога стояла денег…И вещи и тому подобное что продается, лучше получать, при выполнение каких нибудь миссий, а так прога стоит на много много дороже, если туда закидывать…
Станислав, большое спасибо! Неожиданно полезная статья. Думаю, у неё незаслуженно мало комментариев :) Успехов Вам!
Станислав, хорошая статья, но сегодня уже поздно начинать работать с Flurry. Имеет смысл перейти на более современную платформу Fuseboxx. гораздо больше возможностей по аналитике и по сравнению с Flurry + управление контентом дистанционно через JSON.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как на Mac узнать IP-адрес роутера в текущей сети. Есть 3 способа
Как на iPhone убрать виджет плеера на экране блокировки при подключении гарнитуры
Почему приложение Напоминания выдает уведомления даже после удаления
Какие жесты появились на iPad в iOS 12
Почему на iPhone не отключается звук камеры
Как на iPad разблокировать все вкладки в приложении DaVinci Resolve
Не работает разблокировка при открытии Smart Cover на iPad
Как в watchOS 9 работает режим энергосбережения Apple Watch