Suivi des analyses
Comment ça marche
Le suivi des analyses vous permet de collecter et d’agréger les événements générés par les utilisateurs afin d’évaluer les performances du programme et le nombre de références. Les données recueillies peuvent être utilisées comme un moyen supplémentaire d’engager les réseaux d’affiliation, car des statistiques solides rendent l’offre plus attrayante.
Les événements suivants peuvent être traités :
- Passage à la page d’accueil ;
- Passage de la page d’accueil au magasin.
Comment configurer
Pour intégrer le suivi des analyses, procédez comme suit :
- Obtenez un JSON Web Token (JWT).
- Enregistrez tracking_id issu du paramètre de la requête dans les cookies de votre site Web. Exemple de requête avec tracking_id :
https://playnewz.com?utm_source=n6LI9yVu&utm_campaign=5b9bff5f9d31b&tracking_id=19e2DLjNTk2YOdXA4d8J3NReNkXNafhC
. - Après la création d’un nouvel utilisateur, envoyez user_id et tracking_id via la méthode Registration Event Sending.
- Il est recommandé d’envoyer des requêtes de manière asynchrone, afin de ne pas interférer avec l’enregistrement de l’utilisateur en attendant la réponse de l’API de suivi Xsolla.
- Sinon, utilisez timeout. Notez que les nouveaux utilisateurs ne seront pas suivis si l’attente de la réponse de l’API de suivi Xsolla dure plus longtemps que prévu.
- Pour créer et gérer des événements personnalisés, implémentez les méthodes API de suivi suivantes : créer, initialiser et envoyer un événement.
- Mettez en œuvre le script de suivi sur votre site Web.
Obtenir un jeton
REQUÊTE HTTP
- http
POST https://tracking-api.xsolla.com/v1/tokens
En-tête | Description |
---|---|
ContentType | application/json |
Authorization | L’en-tête Authorization: Basic <your_authorization_basic_key> , où <your_authorization_basic_key> est la paire merchant ID:API key encodée conformément à la norme Base64. Accédez au Compte éditeur pour trouver les paramètres suivants :
|
Pour plus d’informations sur l’utilisation des clés API, consultez la référence API.
Recommandations principales :
- Enregistrez la clé API générée de votre côté. Lors de sa création dans le Compte éditeur, la clé API ne s’affiche qu’une seule fois.
- Gardez votre clé API secrète. Elle donne accès à votre compte personnel et à vos projets dans le Compte éditeur.
- Stockez la clé API sur votre serveur et non dans des fichiers binaires ou sur le client.
Si l’appel API nécessaire ne contient pas le paramètre de chemin project_id
, utilisez la clé API valide dans tous les projets de l’entreprise pour l’autorisation.
Paramètre | Description |
---|---|
sourceType | Type de source de données. Valeurs possibles :
|
sourceName | Nom de la source de données. |
projectId | ID de projet. |
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;
}
Code de réponse | Description |
---|---|
201 | Jeton créé |
400 | Paramètres de la requête non valides |
401 | Clé de projet non valide |
Envoi de l'événement d'enregistrement
Pour ce faire, vous devez d’abord obtenir un jeton.
REQUÊTE HTTP
- http
POST https://tracking-api.xsolla.com/v1/events
Lors de l’envoi de la méthode, les étapes suivantes sont réalisées :
- L’utilisateur final suit le lien de suivi qu’il a trouvé sur la source de trafic (flux de l’influenceur, page de promotion, etc.). L’action reçoit son Click ID.
- Tracking ID est formé du côté de la page Proxy et passé à la page de destination dans le paramètre.
- L’utilisateur visite la page de destination et s’inscrit.
- Le développeur du jeu passe l’utilisateur User ID et Tracking ID dans le paramètre en envoyant l’événement d’inscription par l’intermédiaire de l’API de suivi.
En-tête | Description |
---|---|
Authorization | Jeton obtenu précédemment. |
Paramètre | Type | Description |
---|---|---|
type | String | Jeton obtenu précédemment. |
traits | Object | Données d’identification de l’utilisateur :
|
context | Object | Doit être vide. |
properties | Object | Doit être vide. |
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;
}
Créer un événement
Pour ce faire, vous devez d’abord obtenir un jeton.
REQUÊTE HTTP
- http
POST https://tracking-api.xsolla.com/v1/events
En-tête | Description |
---|---|
Authorization | Jeton obtenu précédemment. |
Paramètre | Type | Description |
---|---|---|
type | String | Type d’événement. |
traits | Object | Données d’identification de l’utilisateur : téléphone, e-mail, ID en jeu, etc. |
context | Object | Données contextuelles. |
properties | Object | Propriétés de l’événement. |
createdAt | Date | Format : datetime selon 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"
}
}
EXEMPLE D’ÉVÉNEMENT : PASSAGE À 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"
}
}
Code de réponse | Description |
---|---|
204 | Événement ajouté |
400 | Événement non valide |
401 | Jeton non valide |
Initialiser un événement
Pour ce faire, vous devez d’abord obtenir un jeton.
- html
xnt("init", YOUR_TOKEN);
Envoyer un événement
- html
xnt("sendEvent", EVENT_TYPE, EVENT_PROPERTIES);
Paramètre | Description |
---|---|
EVENT_TYPE | Nom de l’événement (string). Par exemple, landing_visit . |
EVENT_PROPERTIES | Propriétés de l’événement (JS object). |
- html
xnt("sendEvent", "landing_visit");
xnt("sendEvent", "buy_btn", { pkg_type: $(this).data('id') });
PARAMÈTRES DE L’ÉVÉNEMENT
Paramètre | Description |
---|---|
source | Source de l’événement (paystation, landing_page, etc.). |
type | Type d’événement (user_visit, hit, etc.). |
traits | Données utilisateur (e-mail, user_id, pseudo, etc.). |
context | Contexte de l’événement (ip, gaClientId, etc.). |
properties | Propriétés de l’événement (sum, levelup, etc.). |
createdAt | Heure de l’événement, telle que passée par la source. |
timestamp | Heure de réception de l’événement par le système. |
context
et traits
, utilisez les méthodes suivantes :- html
xnt("putContext", CONTEXT_OBJECT);
xnt("putTraits", TRAITS_OBJECT);
Paramètre | Description |
---|---|
CONTEXT_OBJECT | Contexte de l’événement (objet JS). |
TRAITS_OBJECT | Données utilisateur (JS object). |
userAgent
et userLocale
seront ajoutés automatiquement. Les données ajoutées par ces deux méthodes seront combinées avec les données de l’événement.Implémenter un script
Implémentez le script suivant sur la page de destination :
- 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>
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.