Análise de rastreamento
Como funciona
A análise de rastreamento permite coletar e agregar eventos gerados pelo usuário para avaliar o desempenho do programa e o número de referências. Os dados obtidos podem ser usados como uma maneira adicional de engajar as redes de afiliados, pois estatísticas fortes tornam a oferta mais atraente.
Os seguintes eventos podem ser processados:
- Transição para a página de destino
- Transição da página de aterrissagem para a loja
Como obtê-lo
Para integrar a análise de rastreamento, faça o seguinte:
- Obtenha um JSON Web Token (JWT).
- Salve tracking_id do parâmetro de solicitação para os cookies do seu site. Exemplo de uma solicitação com tracking_id:
https://playnewz.com?utm_source=n6LI9yVu&utm_campaign=5b9bff5f9d31b&tracking_id=19e2DLjNTk2YOdXA4d8J3NReNkXNafhC
. - Depois que um novo usuário é criado, envie user_id e tracking_id por meio do método Registration Event Sending.
- É recomendável enviar solicitações de forma assíncrona, para que não interfira no registro do usuário enquanto aguarda a resposta da Xsolla Tracking API.
- Caso contrário, use o tempo limite. Observe que os novos usuários não serão rastreados se a resposta da Xsolla Tracking API demorar mais do que o especificado.
- Para criar e gerenciar eventos personalizados, implemente os seguintes métodos da Tracking API: create, initialize e send um evento.
- Implemente o script de rastreamento em seu site.
Obter token
SOLICITAÇÃO HTTP
- http
POST https://tracking-api.xsolla.com/v1/tokens
Cabeçalho | Descrição |
---|---|
ContentType | application/json |
Authorization | O cabeçalho Authorization: Basic <your_authorization_basic_key> , onde <your_authorization_basic_key> é o par merchant ID:API key, codificado de acordo com o padrão Base64. Vá para Conta de Distribuidor para encontrar estes parâmetros:
|
Para obter mais informações sobre como trabalhar com chaves de API, consulte a Referência de API.
Principais recomendações:
- Salve a chave de API gerada cuidadosamente. Você pode visualizar a chave de API na Conta de Distribuidor apenas uma vez, durante sua criação.
- Mantenha sua chave de API em segredo. Ela fornece acesso à sua conta pessoal e aos seus projetos na Conta de Distribuidor.
- A chave de API deve ser armazenada em seu servidor, e jamais em arquivos binários ou no frontend.
Se uma chamada de API que você precisa não contiver o trajeto-parâmetro project_id
, use a chave de API que for válida em todos os projetos da empresa para configurar a autorização.
Parâmetro | Descrição |
---|---|
sourceType | Tipo de fonte de dados. Ele pode ter os seguintes valores:
|
sourceName | Nome da fonte de dados. |
projectId | ID do projeto. |
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;
}
Código de resposta | Descrição |
---|---|
201 | Token criado |
400 | Os parâmetros de consulta não são válidos |
401 | A chave do projeto não é válida |
Envio do evento de inscrição
Você precisa primeiro obter um token para fazer isso.
SOLICITAÇÃO HTTP
- http
POST https://tracking-api.xsolla.com/v1/events
Ao enviar o método, as seguintes etapas são concluídas:
- O usuário final segue o link de rastreamento encontrado na fonte de tráfego (fluxo do influenciador, página promocional, etc.). A ação recebe seu Click ID.
- O Tracking ID de rastreamento é formado no lado da página Proxy e passado para a página de destino no parâmetro.
- O usuário visita a página de destino e se cadastra.
- O desenvolvedor do jogo passa o User ID e o Tracking ID no parâmetro enviando o evento de registro via Tracking API.
Cabeçalho | Descrição |
---|---|
Authorization | Token obtido anteriormente. |
Parâmetro | Tipo | Descrição |
---|---|---|
type | String | Token obtido anteriormente. |
traits | Objeto | Dados de identificação do usuário:
|
context | Objeto | Deve estar vazio. |
properties | Objeto | Deve estar vazio. |
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;
}
Crie um evento
Você precisa primeiro obter um token para fazer isso.
SOLICITAÇÃO HTTP
- http
POST https://tracking-api.xsolla.com/v1/events
Cabeçalho | Descrição |
---|---|
Authorization | Token obtido anteriormente. |
Parâmetro | Tipo | Descrição |
---|---|---|
type | String | Tipo de evento. |
traits | Objeto | Dados de identificação do usuário: telefone, e-mail, ID no jogo, etc. |
context | Objeto | Dados contextuais. |
properties | Objeto | Propriedades do evento. |
createdAt | Data | Formato: datahora por RFC 3339 ou 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"
}
}
EXEMPLO DE EVENTO: TRANSIÇÃO PARA PAY STATION
- 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"
}
}
Código de resposta | Descrição |
---|---|
204 | Evento adicionado |
400 | O evento não é válido |
401 | O token não é válido |
Inicialize o evento
Você precisa primeiro obter um token para fazer isso.
- html
xnt("init", YOUR_TOKEN);
Enviar evento
- html
xnt("sendEvent", EVENT_TYPE, EVENT_PROPERTIES);
Parâmetro | Descrição |
---|---|
EVENT_TYPE | Nome do evento (cadeia de caracteres). Por exemplo, landing_visit . |
EVENT_PROPERTIES | Propriedades do evento (objeto JS). |
- html
xnt("sendEvent", "landing_visit");
xnt("sendEvent", "buy_btn", { pkg_type: $(this).data('id') });
PARÂMETROS DO EVENTO
Parâmetro | Descrição |
---|---|
source | Origem do evento (paystation, landing_page, etc.). |
type | Tipo de evento (user_visit, hit, etc.). |
traits | Dados do usuário (e-mail, user_id, apelido, etc.). |
context | Contexto do evento (ip, gaClientId, etc.). |
properties | Propriedades do evento (soma, aumento de nível, etc.). |
createdAt | Hora do evento, conforme passado pela origem. |
timestamp | Hora do recebimento do evento pelo sistema. |
context
e traits
, use os seguintes métodos:- html
xnt("putContext", CONTEXT_OBJECT);
xnt("putTraits", TRAITS_OBJECT);
Parâmetro | Descrição |
---|---|
CONTEXT_OBJECT | Contexto do evento (objeto JS). |
TRAITS_OBJECT | Dados do usuário (objeto JS). |
userAgent
e userLocale
do contexto será adicionado automaticamente. Os dados adicionados por esses dois métodos serão combinados com os dados do evento.Implemente o script
Implemente o seguinte script na página de destino:
- 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>
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.