Послеустановочная аналитика — отслеживание событий и уровней через SDK

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

Содержание


Общие сведения об отслеживании событий

Интеграция ПУА для отслеживания событий работает следующим образом: данные об уровнях игроков – например, о завершении обучения игре – передаются в Chartboost через SDK либо «сервер-сервер» (напрямую или посредством сторонней службы) в виде отдельных «Полей события».

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

Такое поле событий должно соответствовать одному типу данных об уровне.

Доступные поля перечислены в таблице ниже, а следом приводятся примеры использования:

Поле событияПример метки события 1ОпределениеПоследовательное? 2

Операторы
сегментации 3

Пример описания
(необязательное) 4
1 "HIGHEST_LEVEL_REACHED" Макс. числовое обозначение уровня, достигнутого пользователем Да >=, >, ==, <, <= "Chocolate Fudge Level"
2 "CURRENT_AREA" Текущий уровень (или игровая зона) пользователя - ==, != "Lunar Caverns"
3 "CHARACTER_LEVEL" Уровень персонажа в игре Да >=, >, ==, <, <= "Master Wizard"
4 "OTHER_SEQUENTIAL" Дополнительное поле, через которое разработчики могут передавать последовательные данные Да >=, >, ==, <, <= "5"
5 "OTHER_NONSEQUENTIAL" Дополнительное поле, через которое разработчики могут передавать непоследовательные данные - ==, != "Tutorial Completed"
Примечания

1. Метки событий обязательны: они используются для определения типа поля события на панели пользователя Chartboost

2. Поле последовательного события применяется для отслеживания 1) данных об уровне, которые могут только увеличиваться и никогда не уменьшаются; либо 2) численных данных, необходимых для сегментации на основе того, занимает игрок позицию «выше» или «ниже» указанного числа (см. ниже раздел «Примеры использования»)

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

4. Необязательные описания событий помогают определить название уровня (например, «Lunar Caverns») вместо типа события уровня ("Area main character is in")


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

Если ваша игра основана на игровых зонах либо использует непоследовательные уровни, то понадобится составить карту игровых зон с внутренней нумерацией уровней (например, "Exalted Plains" = 1, "Emerald Graves" = 2 и т. д.).

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


Примеры использования

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


Высший пройденный уровень (содержит OTHER_SEQUENTIAL)

Пример использования #1: Простые уровни

В игре "Sugar Smash Story" Джейн достигла уровня 400 15 января 2015. По достижении этого уровня игра передает событие в Chartboost, после чего для ее идентификатора устройства записываются следующие данные, замещающие текущее состояние "level 399".

  • Поле события: 1
  • Метка события: "Sugar Smash Level"
  • Значение основного уровня: 400
  • Значение подуровня: 0
  • Описание уровня: "Chocolate Fudge Level"

Пример использования #2: Сложные уровни

В игре "Foul Mood Fowl" Боб только что прошел уровень 9 зоны 2 (2-9). По достижении уровня 10 зоны 2 (2-10) игра передает в Chartboost это событие со следующими данными:

  • Поле события: 1
  • Метка события: "Foul Mood Fowl Level"
  • Основное значение уровня: 2
  • Значение подуровня: 10
  • Описание уровня: "2-10"

Достигнутая в игре зона / Текущий уровень

Пример использования #1: Уровни открытого мира

В RPG с открытым миром Джо переходит с уровня "Emerald Graves" на уровень "Exalted Plains". Игра передает в Chartboost следующее событие:

  • Поле события: 2
  • Метка события: "Character Current Area"
  • Основное значение уровня: 3
  • Значение подуровня: 0
  • Описание уровня: "Exalted Plains"

В этом примере у игры может быть такая карта соответствия зон и уровней:

  • Hinterlands = 1
  • Fallow Mires = 2
  • Exalted Plains = 3
  • Emerald Graves = 4

Пример использования #2: FTUE (первое восприятие пользователя)

В экшн-игре, где несколько первых уровней часто играют роль обучения и вырабатывают первое восприятие пользователя, можно использовать поле OTHER_SEQUENTIAL или OTHER_NONSEQUENTIAL (в зависимости от того, отслеживаете вы прогресс обучения либо сам факт его завершения) для передачи нам данных об уровнях помимо тех, что отслеживаются через поле события HIGHEST_LEVEL_REACHED:

Для игр с последовательными уровнями обучениями:

  • Поле события: 4
  • Метка события: "Tutorial Progress"
  • Основное значение уровня: 0
  • Значение подуровня: 0
  • Описание уровня: "Tutorial Start"

Для отслеживания только факта завершения обучения:

  • Поле события: 4
  • Метка события: "Tutorial Progress"
  • Основное значение уровня: 1
  • Значение подуровня: 0
  • Описание уровня: "Tutorial Complete"

Уровень персонажа (включая OTHER_SEQUENTIAL)

В некоторых играх (особенно в RPG и мидкорных играх) теми данными, по которым удобно сегментировать и таргетировать игроков, становится уровень персонажа.

Пример использования: мидкорная игра MOBA

Когда эльф-маг игрока Терри достигает 10 уровня, вы передаете в Chartboost событие:

  • Поле события: 3
  • Метка события: "Player character level"
  • Основное значение уровня: 10
  • Значение подуровня: 0
  • Описание уровня: "Elven Mage"

В следующем разделе подробно описаны шаги, которые нужно предпринять для передачи данных об уровнях в Chartboost через SDK, при интеграции «сервер-сервер» или через сторонние службы.


Интеграция отслеживания событий через iOS SDK

Предварительные требования

Прежде чем начать, необходимо:

Интеграция

Сначала нужно пронумеровать пять типов событий, связанных с уровнями:

typedef enum {
// Получен максимальный уровень
 HIGHEST_LEVEL_REACHED = 1,
// Получен текущий уровень игровой зоны
 CURRENT_AREA = 2,
// Получен текущий уровень персонажа
 CHARACTER_LEVEL = 3,
// Получен другой последовательный уровень
 OTHER_SEQUENTIAL = 4,
// Получен текущий непоследовательный уровень
 OTHER_NONSEQUENTIAL = 5
} CBLevelType;

После этого для отслеживания информации об уровнях своего пользователя можно использовать приведенный ниже код. Уровни могут быть последовательными, непоследовательными, уровнями персонажа и т. п.

@interface CBAnalytics : NSObject

// Для игр с подуровнями

+ (void)trackLevelInfo:(NSString*)eventLabel
 eventField:(CBLevelType)eventField
 mainLevel:(NSUInteger)mainLevel
 subLevel:(NSUInteger)subLevel
 description:(NSString*)description;
 
@end
@interface CBAnalytics : NSObject

// Для игр без подуровней

+ (void)trackLevelInfo:(NSString*)eventLabel
 eventField:(CBLevelType)eventField
 mainLevel:(NSUInteger)mainLevel
 description:(NSString*)description;
 
@end

Определения:

  • eventField: любое значение из показанного выше CBLevelType enum; используется для определения типа события. Передается в Chartboost как целое (1-5).
  • mainLevel: ненулевое целое число, указывающее на основной уровень игрока
  • subLevel: целое число, указывающее на подуровень игрока; если неприменимо, используйте второй метод (см. выше)
  • description: необязательная строка с описанием события

Интеграция отслеживания событий через Google Play SDK

Предварительные требования

Прежде чем начать, необходимо:

Интеграция

Сначала нужно пронумеровать пять типов событий, связанных с уровнями:

public class CBAnalytics {
    public enum CBLevelType {
        HIGHEST_LEVEL_REACHED(1),
        CURRENT_AREA(2),
        CHARACTER_LEVEL(3),
        OTHER_SEQUENTIAL(4),
        OTHER_NONSEQUENTIAL(5);
    }
}

После этого для отслеживания информации об уровнях своего пользователя можно использовать приведенный ниже код. Уровни могут быть последовательными, непоследовательными, уровнями персонажа и т. п.

public class CBAnalytics {

// Для игр без подуровней:
 public static synchronized void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, String description) {
 trackLevelInfo(eventLabel, type, mainLevel, 0, description);
 }
 
}
public class CBAnalytics {

// Для игр с подуровнями:
 public static synchronized void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, int subLevel, String description) {
 trackLevelInfo(eventLabel, type, mainLevel, subLevel, description);
 }
 
}

Интеграция отслеживания событий через Amazon SDK

Предварительные требования

Прежде чем начать, необходимо:

Интеграция

Для отслеживания событий под Amazon выполните наши указания для интеграции Google Play (см. выше).


Интеграция отслеживания событий через подключаемый модуль Unity

Предварительные требования

Прежде чем начать, необходимо:

Интеграция

Сначала нужно пронумеровать пять типов событий, связанных с уровнями:

namespace ChartboostSDK {

/// Значения enum для ПУА отслеживания событий
 public enum CBLevelType : int {
// Получен максимальный уровень 
 HIGHEST_LEVEL_REACHED = 1,
// Получен текущий уровень игровой зоны 
 CURRENT_AREA = 2,
// Получен текущий уровень персонажа 
 CHARACTER_LEVEL = 3,
// Получен другой последовательный уровень
 OTHER_SEQUENTIAL = 4,
// Получен текущий непоследовательный уровень 
 OTHER_NONSEQUENTIAL = 5
 };
}

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

Игры с подуровнями

namespace ChartboostSDK {
  
    public static void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, int subLevel, String description) {
        CBExternal.trackLevelInfo(eventLabel, type, mainLevel, subLevel, description);
    }
    
}

Игры без подуровней

namespace ChartboostSDK {

    public static void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, String description) {
        CBExternal.trackLevelInfo(eventLabel, type, mainLevel, description);
    }
  
}

Определения:

  • type: любое значение из показанного выше CBLevelType enum; используется для определения типа события
  • mainLevel: ненулевое целое число, указывающее на основной уровень игрока
  • subLevel: целое число, указывающее на подуровень игрока; если неприменимо, используйте второй метод (см. выше)
  • description: необязательная строка с описанием события

Интеграция отслеживания событий для «сервер-сервер»

Интеграция ПУА Chartboost для отслеживания событий в системе «сервер-сервер» позволяет отслеживать информацию о вовлеченности игроков и сохранять ее в нашей системе.

Вызовы отслеживания событий «сервер-сервер» содержат информацию об уровнях и токен API для проверки запроса (обратитесь к нам, чтобы получить свой токен):

{
    'app_id': app_id,
    'gaid': gaid,
    'event': {
        'event_label': event_label,  
        'event_field': event_field,  
        'main_level': main_level,
        'sub_level': sub_level,
        'description': description
    }

Ниже приводится информация о самом вызове отслеживания событий; чтобы получить свой токен API, обратитесь в службу поддержки Chartboost.

Подробнее о запросах отслеживания событий «сервер-сервер»

Метод

POST

Конечная точка

https://live.chartboost.com/event_service/v3/track

Заголовки

(учтите, что заголовки содержат информацию для проверки подлинности)

Имя заголовкаПримерОписание
X-Chartboost-Token 9782f24948b6d8125518f421f70240c415e0d25b Ваш токен API (чтобы получить API Token и API Secret для ПУА, напишите на адрес support.integrations@chartboost.com)
X-Chartboost-Signature 173e6aeff28e4b76b488d5acf49ed8ebb8e95559 О генерации см. этот пункт. Это НЕ ТО ЖЕ САМОЕ, что подпись приложения в Chartboost!

Тело JSON: Параметры отслеживания событий

ПараметрыПриложения iOSПриложения AndroidПримерОписание
track_info       Массив объектов ниже
event_label Обязательное Обязательное "Highest level puzzle solved" Пользовательская метка внутриигрового события
event_field Обязательное Обязательное 1 ID, соответствующий типу события; идентификаторы см. в этой таблице
main_level Обязательное Обязательное 2 Main level (ненулевое целое)
sub_level Обязательное Обязательное 1 Целое число для подуровня (используйте 0, если неприменимо)
Описание Необязательное Необязательное "The boss level" Описание уровня

Тело JSON: параметры идентификаторов

ПараметрыПриложения iOSПриложения AndroidПримерОписание
Ид. приложения Обязательное Обязательное "54ecc0535beacdc1e1eff778"  Ид. приложения Chartboost (можно найти на панели пользователя Chartboost)
ifa Обязательное Нет IFA: "7e8ec8092004283043e99d515ab0c51b0ef755ff" (32 знака; допустимы дефисы и верхний регистр) Идентификатор для рекламы
gaid Нет Обязательное "38400000-8cf0-11bd-b23e-10b96e40000d" (32 знака + 4 дефиса) Ид. рекламы Google Services (только для Android)
uuid Нет Необязательное (если не передан GAID либо если приложение Amazon) "358414046356276" Для устаревших идентификаторов Android либо игр Amazon
Начните с endpoint:Building the Request
https://live.chartboost.com/event_service/v3/track

Добавьте параметры в тело JSON, и всё готово – успешные запросы получат: {"status":200,"message":"Success"}.

Если вызов получает HTTP-код ошибки «500», то вашему серверу следует повторить попытку вызова «сервер-сервер», но позднее – скажем, через 2 секунды, потом через 4, 8, 16 секунд и так далее, пока вызов не окажется успешным.

Интеграция отслеживания событий для сторонней системы «сервер-сервер»

Для более полного анализа данных об уровнях со сравнением между платформами и сетями можно также настроить интеграцию «сервер-сервер» для импорта данных об уровнях из сторонних отслеживающих служб. После интеграции вы сможете просматривать сторонние данные на панели пользователя Chartboost. Подробнее ▶


Сегменты пользователей для уровней и событий

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


Аналитическая панель отслеживания уровней и событий

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