Трекинговая аналитика
Как это работает
Трекинговая аналитика позволяет собирать и агрегировать события, генерируемые пользователем, для оценки эффективности программы и количества рефералов. Полученные данные используются в качестве дополнительного способа привлечения аффилированных сетей — наличие статистики повышает вероятность взятия программы.
Поддерживается обработка следующих типов событий:
- переход на сайт;
- переход в магазин с сайта.
Как настроить
Для интеграции трекинговой аналитики:
- Получите JSON Web Token (JWT).
- Сохраните tracking_id из параметра запроса в cookie вашего сайта. Пример запроса с tracking_id:
https://playnewz.com?utm_source=n6LI9yVu&utm_campaign=5b9bff5f9d31b&tracking_id=19e2DLjNTk2YOdXA4d8J3NReNkXNafhC
. - После создания нового пользователя отправьте user_id и tracking_id с помощью метода Отправка события регистрации.
- Рекомендуется использовать асинхронную отправку запросов, это позволит не прерывать регистрацию новых пользователей на время ожидания ответа Xsolla Tracking API.
- Вы также можете использовать timeout вместо асинхронной отправки запросов. Обратите внимание, что Xsolla не сможет отследить новых пользователей, если ожидание ответа Xsolla Tracking API превысит заданные временные рамки.
- Для создания и управления кастомными событиями добавьте следующие методы Tracking API: создание, инициализация и отправка событий.
- Добавьте трекинговый скрипт на ваш сайт.
Получение токена
HTTP-ЗАПРОС
- http
POST https://tracking-api.xsolla.com/v1/tokens
Заголовок | Описание |
---|---|
ContentType | application/json |
Authorization | Заголовок базовой HTTP-аутентификации в формате Authorization: Basic <your_authorization_basic_key> , где <your_authorization_basic_key> — пара ID продавца:ключ API, закодированная по стандарту Base64. Значения параметров вы можете найти в Личном кабинете:
|
Подробная информация о работе с ключами API приведена в справочнике API.
Основные рекомендации:
- Сохраните созданный ключ API на вашей стороне. Вы можете посмотреть ключ API в Личном кабинете только один раз при его создании.
- Никому не сообщайте ваш ключ API, так как он дает доступ к управлению аккаунтом и проектами в Личном кабинете.
- Ключ API должен храниться на вашем сервере и никогда — в бинарных файлах или на фронтенде.
Если необходимый метод API не включает в себя path-параметр project_id
, используйте для авторизации ключ API, который действует во всех проектах.
Параметр | Описание |
---|---|
sourceType | Название источника данных. Может принимать следующие значения:
|
sourceName | Название источника данных. |
projectId | ID проекта. |
http
- http
- php
POST https://tracking-api.xsolla.com/v1/tokens
Headers:
Content-Type: application/json
Authorization: Basic 12kj3hlk1j2hlkjhlk1j2h3lkj
Body:
{
"sourceType": "client",
"sourceName": "landing",
"projectId": 1
}
HTTP/1.1 201 Token created
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaW5rIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2 g_dj1kUXc0dzlXZ1hjUSJ9.aVigY6UVY3jgoEKoBv31cZnROL3I6WKtcr5K-Z7B1du"
}
<?php
$curl = curl_init();
$merchantId = 1;
$projectId = 2;
$apiKey = '<apiKey>';
$payload = [
'sourceType' => 'server',
'sourceName' => 's1',
'projectId' => $projectId,
];
curl_setopt($curl, CURLOPT_USERPWD, $merchantId . ":" . $apiKey);
curl_setopt_array($curl, array(
CURLOPT_URL => "https://tracking-api.xsolla.com/v1/tokens",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
"Content-type: application/json"
],
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Код ответа | Описание |
---|---|
201 | Токен успешно создан |
400 | Query-параметры недействительны |
401 | Ключ проекта недействителен |
Отправка события регистрации
Для выполнения команды необходим токен.
HTTP-ЗАПРОС
- http
POST https://tracking-api.xsolla.com/v1/events
Во время выполнения метода:
- Конечный пользователь переходит по трекинговой ссылке из определенного источника трафика (трансляция инфлюенсера, рекламный сайт и прочее). Переходу присваивается Click ID.
- На стороне Proxy page формируется Tracking ID, который передается в параметре на сайт игры.
- Пользователь переходит на сайт игры и регистрируется.
- Игровой разработчик отправляет событие о регистрации через Tracking API, передавая в параметре Tracking ID и ID пользователя.
Заголовок | Описание |
---|---|
Authorization | Токен, полученный по запросу. |
Параметр | Тип | Описание |
---|---|---|
type | Строковый | Токен, полученный по запросу. |
traits | Объект | Идентификационные данные пользователя:
|
context | Объект | Должен быть пустым. |
properties | Объект | Должен быть пустым. |
http
- http
- php
POST https://tracking-api.xsolla.com/v1/events
Headers:
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaW5rIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_d j1kUXc0dzlXZ1hjUSJ9.aVigY6UVY3jgoEKoBv31cZnROL3I6WKtcr5K-Z7B1yU
Body:
{
"type": "registration",
"traits": {
"trackingId": "19e2DLjNTk2YOdXA4d8J3NReNkXNafhC",
"userId": "20181126"
},
"properties": {
},
"context": {
}
}'
<?php
$curl = curl_init();
$token = '<token>';
$payload = [
'type' => 'registration',
'traits' => [
'trackingId' => "19e2DLjNTk2YOdXA4d8J3NReNkXNafhC",
'userId' => "20181126",
],
'properties' => [],
'context' => [],
];
curl_setopt_array($curl, array(
CURLOPT_URL => "https://tracking-api.xsolla.com/v1/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($payload,JSON_FORCE_OBJECT),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer {$token}",
"Content-type: application/json"
],
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
}
Создание события
Для выполнения команды необходим токен.
HTTP-ЗАПРОС
- http
POST https://tracking-api.xsolla.com/v1/events
Заголовок | Описание |
---|---|
Authorization | Токен, полученный по запросу. |
Параметр | Тип | Описание |
---|---|---|
type | Строковый | Тип события. |
traits | Объект | Идентификационные данные пользователя: телефон, email, ID в игре и т. д. |
context | Объект | Контекстные данные. |
properties | Объект | Свойства события. |
createdAt | Дата | Формат: RFC 3339 или ISO 8601. |
- http
POST https://tracking-api.xsolla.com/v1/events
Headers:
Content-Type: application/json
Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaW5rIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_d j1kUXc0dzlXZ1hjUSJ9.aVigY6UVY3jgoEKoBv31cZnROL3I6WKtcr5K-Z7B1yU
Body:
{
"type": "landing_visit",
"traits":{
},
"properties":{
},
"context": {
"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", "user_locale":"ru"
}
}
ПРИМЕР СОБЫТИЯ: ПЕРЕХОД В ПЛАТЕЖНЫЙ ИНТЕРФЕЙС
- http
POST https://tracking-api.xsolla.com/v1/events
Headers:
Content-Type: application/json
Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaW5rIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_d j1kUXc0dzlXZ1hjUSJ9.aVigY6UVY3jgoEKoBv31cZnROL3I6WKtcr5K-Z7B1yU
Body:
{
"type": "buy_btn",
"traits":{
},
"properties":{
"pkg_type":"bronze"
},
"context": {
"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", "user_locale":"ru"
}
}
Код ответа | Описание |
---|---|
204 | Событие успешно добавлено |
400 | Событие недействительно |
401 | Токен недействителен |
Инициализация события
Для выполнения команды необходим токен.
- html
xnt("init", YOUR_TOKEN);
Отправка события
- html
xnt("sendEvent", EVENT_TYPE, EVENT_PROPERTIES);
Параметр | Описание |
---|---|
EVENT_TYPE | Название события (string). Например, landing_visit . |
EVENT_PROPERTIES | Свойства события (JS object). |
- html
xnt("sendEvent", "landing_visit");
xnt("sendEvent", "buy_btn", { pkg_type: $(this).data('id') });
ПАРАМЕТРЫ СОБЫТИЯ
Параметр | Описание |
---|---|
source | Источник события (paystation, landing_page и т. д.). |
type | Тип события (user_visit, hit и т. д.). |
traits | Данные о пользователе (email, user_id, nickname и т. д.). |
context | Данные о контексте события (ip, gaClientId и т. д.). |
properties | Свойства самого события (sum, levelup и т. д.). |
createdAt | Время события, переданное источником. |
timestamp | Время получения сообщения системой. |
context
и traits
, необходимо воспользоваться следующими методами:- html
xnt("putContext", CONTEXT_OBJECT);
xnt("putTraits", TRAITS_OBJECT);
Параметр | Описание |
---|---|
CONTEXT_OBJECT | Контекст события (JS object). |
TRAITS_OBJECT | Данные пользователя (JS object). |
userAgent
и userLocale
для Context будут встроены автоматически. Данные, добавленные этими методами, будут объединены с данными события.Подключение скрипта
Подключите на сайт игры следующий скрипт:
- html
<script>
(function(i,s,o,g,r,a,m){i['XsollaNetworkTrackingObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(ar guments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.inse rtBefore(a,m)})(window,document,'script','https://cdn.xsolla.net/network/xtracking-0.1.js','xnt');
xnt("init", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsaW5rIjoiaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g_ dj1kUXc0dzlXZ1hjUSJ9.aVigY6UVY3jgoEKoBv31cZnROL3I6WKtcr5K-Z7B1du");
xnt("sendEvent", "buy_btn", { pkg_type : "gold" });
</script>
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.