Flurry
Объект flurry используется для сбора статистики об использовании приложения.
По умолчанию записывает такие параметры как время сессии, количество сессий, устройство, версия ОС, количество пользователей, и представляет эти данные в виде графиков и таблиц. Также можно записать какие кнопки нажимались, время между нажатиями определённых кнопок. Для сбора общих данных достаточно добавить в соответствующем виде flurry-id приложения в app.icf или в viewer.xml соответствующей платформы перед сборкой. Для сбора данных о нажатиях кнопок и др. необходимо кроме добавления flurry-id приложения в app.icf или в viewer.xml соответствующей платформы, также добавить в проект объект типа flurry и передавать ему интересующие события.
Общая статистика на сервисе Flurry выглядит примерно так:
Параметры и состояния объекта flurry
Параметры объекта flurry
Чтобы в игре установить сбор статистики нажатий определённых кнопок необходимо в редакторе сцен добавить объект Flurry (желательно на глобальный экран) и передать ему определённые параметры. У объекта flurry есть 3 параметра которые можно задавать. Это:
- event - задаёт имя события
- param_name - задаёт имя параметра
- param_value - задаёт значение параметра
Для корректной работы сбора статистики с нажатия кнопки все три поля должны быть обязательно заполнены. Рассмотрим принцип формирования названий событий на примере кнопки выбора пака в пазлах.
Параметр event должен обозначить общее название группы событий, на пример Pack_select;
Параметр param_name должен указывать на конкретный параметр который будет записываться, в нашем случае его можно назвать pack_name;
Параметр param_value задаёт конкретное значение параметра, на пример pack_1.
Состояния объекта flurry
- event - отправляет накопленные данные
В самом объекте flurry можно задать начальные параметры, но при изменении его параметров те которые были - изменятся, а если до изменения параметров перевести объект flurry в состояние event, то на сервер статистики отправятся значения по-умолчанию, которые были записаны.
- send_log - отправляет файл walkthrough.log на сервер
В файл walkthrough.log флури пишет прохождение по игре: каждая строка лога содержит значения ключевых параметров (опыт, монеты, кристаллы, последний выполненный таск и т.д.) на момент записи, запись новой строки вызывается при наступлении различных событий (повышение уровня, начисление ресурса, выполнение задния и т.д.)
Внимание!!! В проекте, собранном без дебага, лог не пишется. Для логирования прохождения без дебага нужно в app.icf в группе Flurry указать log_walkthrough = 1 (это касается файла walkthrough.log). С дебагом будет логироваться вне зависимости от этого.
Пример применения объекта flurry
Пример того как кнопка отправляет на сервер информацию о том, что она была нажата:
В данном случае кнопка записывает событие, название параметра, значение параметра, и сразу отправляет на сервер статистики.
Настройки приложения для отправки статистики
Для отправки статистики также необходимо добавить flurry-id в app.icf или в viewer.xml соответствующей платформы. Т.к. нагляднее выглядит статистика отдельно для платформы ios и отдельно для android, а также поскольку сервис предоставляет разные flurry-sdk для каждой из платформ, то flurry-id лучше всего вставлять в viewer.xml соответствующей платформы.
В app.icf необходимо добавить строки:
[Flurry]
game_id="здесь указывается flurry-id приложения"
или добавить в viewer.xml соответствующей платформы такую строку после globaltop, если таковой имеется, если его нет, то после настроек банеров (<banners platform_id="".../>):
<flurry game_id="здесь указывается flurry-id приложения"/>
Реклама
Управление показом рекламы идёт через объект типа Advertisement.
В объекте Advertisement в качестве провайдера должен быть указан объект типа flurry и должны быть указаны тип, space, size.
Также в app.icf или viewer.xml должен быть указан flurry id приложения, согласно ему идет работа банерной системы.
Кроме этого в итоговый AndroidManifest.xml должны быть добавлены следующие строки:
<activity android:name="com.flurry.android.FlurryFullscreenTakeoverActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode" android:hardwareAccelerated="true" > </activity>
Также должно быть следующее разрешение:
<uses-permission android:name="android.permission.INTERNET"/>
Примечания
Исходя из значений параметров будет строиться на сервисе Flurry диаграмма по параметру указанному в param_name. К примеру, если для одной кнопки зададим в param_value значение pack_1, второй кнопке зададим значение pack_2, то в итоге, на странице сервиса в статистике приложения в раздеде Events получим список событий, которые были записаны, если выберем событие и выберем отобразить статистику по параметрам, для наглядности в круговой диаграмме, то увидим круговую диаграмму с долями которые занимает определённый параметр. Доли высчитываются исходя из количества пришедших значений параметров, то есть если 3 раза придёт значение pack_1 и один раз придёт значение pack_2, то доля pack_1 будет 75%, а pack_2 - 25% .
Также можно выбрать из выпадающего списка по каким параметрам(которые указывались в param_name в рамках текущего имени события) необходимо отобразить статистику по значениям параметра.
Рекомендации Flurry к событиям
- Составьте цели и план действий вокруг приложения
- Если Вы хотите изменять функционал - отслеживайте его
- Убедитесь что Вы собираете события вокруг навигации и монетизации
- Имена событий должны легко различаться и поддаваться категоризации
- Используйте временные события. Flurry автоматически разобьёт их по группам и Вы получите наглядную информацию.
- Не тратьте много времени на планирование. Вы можете добавить события позже.
Рекомендации Flurry к параметрам
Отправка объектом Economics Flurry событий и параметров
Объект Economicsавтоматически оправляет следующие Flurry события и параметры:
1) При достижении уровня - xplevel_ _reached:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- xplevel - Уровень опыта
- coins_spent_log - Сколько потрачено монет
- coins_left_log - Сколько осталось монет
- diams_spent - Сколько потрачено кристаллов
- diams_left - Сколько осталось кристаллов
- hints_used - Сколько хинтов использовано
2) При покупке в банке - purchase_ok_<item>:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- price_usd - Цена в долларах
- history - История покупок через запятую
- total_usd - Сколько суммарно потрачено денег
- last_location - Последняя локация
- last_task - Последняя мода
- was_discount - Была ли скидка
- from_hidden - 1-из хиддена, 0 -из меню
- last_anomaly - Последняя аномалия
3) При первой покупке энергии - 1st_run_buy_energy:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
- energy_left - Сколько осталось энергии
4) При первом использовании энергии - 1st_run_use_energy:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
- energy_left - Сколько осталось энергии
5) При покупке энергии - buy_energy:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_pric - Цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
6) При покупке энергии - buy_energy:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_pric - Цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
7) При покупке хинтов - buy_hints:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
- from_game - 1- да, 0 -нет
- was_anomaly - 1 - да, 0 -нет
8) При покупке амулетов - buy_amulets:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
- from_game - 1- да, 0 -нет
- from_main_menu - 1 - да, 0 -нет
9) При использовании амулетов - use_amulets:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- last_task_open - Последняя открытая таска
- last_loc - Последняя сыгранная локация
- xp_level - Уровень пользователя
- from_game - 1- да, 0 -нет
- from_main_menu - 1 - да, 0 -нет
10) При покупке чарджеров - buy_chargers:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- coins_price - Цена в монетках
- xp_level - Уровень пользователя
11) При покупке доступов к локациям - buy_keys:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- coins_price - Цена в монетках
- xp_level - Уровень пользователя
12) При покупке ингридиентов для крафта - buy_Ingridients (buy_parts):
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- coins_price - Цена в монетках
- xp_level - Уровень пользователя
13) При покупке ингридиентов для крафта - buy_Ingridients:
- t_log_play - Время логарифмическое игровое
- t_log_cal - Время логарифмическое календарное
- id - Id предмета
- diams_price - Цена в кристаллах
- coins_price - Цена в монетках
- xp_level - Уровень пользователя
Перечень source для событий coins_get, energy_get, diams_get
SOURCE_UNKNOWN = 0, //!< неизвестный источник SOURCE_PURCHASE = 1, //!< покупка SOURCE_HIDDEN_WIN = 2, //!< выигрыш в хиддене SOURCE_MINIGAME_WIN = 3, //!< выигрыш в миниигре SOURCE_DAILY_BONUS = 4, //!< дейли бонус SOURCE_SOCIAL_BONUS = 5, //!< бонусы за социалку SOURCE_CASINO = 6, //!< казино SOURCE_EXCHANGE = 7, //!< биржа SOURCE_DEPOSIT = 8, //!< депозит SOURCE_COLLECTION_GOT = 9, //!< сдача коллекций SOURCE_GUES = 10, //!< угадайка SOURCE_TASK_COMPLETE = 11, //!< выполнена задача SOURCE_TRIVIA = 12, //!< миллионер SOURCE_REDEEM = 13, //!< начисление из админки SOURCE_LEVEL_UP = 14, //!< достижение уровня SOURCE_USE_ITEM = 15 //!< использование предмета