跟踪分析

运行机制

跟踪分析允许您收集并累计用户生成的事件以评估活动成效及引荐数量。所获数据可用于吸引联盟网络的参与,因为越有力的数据会让邀请更具吸引力。

该功能可处理以下事件:

  • 到着陆页的切换
  • 从着陆页到商店的切换

如何获取

要集成跟踪分析,请执行以下操作:

  1. 获取JSON Web令牌(JWT)。
  2. 将请求参数中的tracking_id保存到您的网站cookie。包含tracking_id请求的示例:https://playnewz.com?utm_source=n6LI9yVu&utm_campaign=5b9bff5f9d31b&tracking_id=19e2DLjNTk2YOdXA4d8J3NReNkXNafhC
  3. 每当创建了新用户,通过注册事件发送方法发送user_idtracking_id
    • 建议异步发送请求,因为这样在等待艾克索拉跟踪API响应的过程中不会干扰用户注册。
    • 否则,请使用超时。请注意,如果等待艾克索拉跟踪API响应的时间超过指定时间,将不会跟踪新用户。
  4. 要创建及管理自定义事件,请实现以下跟踪API方法:创建初始化发送事件。
  5. 在您的网站上实现跟踪脚本。

获取令牌

HTTP请求

Copy
Full screen
Small screen
POST https://tracking-api.xsolla.com/v1/tokens

描述
ContentTypeapplication/json
AuthorizationBasic your_authorization_basic_key。必需。
your_authorization_basic_key是根据Base64标准编写的merchantId:apiKey参数对。可在您发布商帐户中找到merchantIdapiKey的值:
  • merchantId公司设置 > 公司 > 商户ID
  • apiKey公司设置 > API密钥
参数描述
sourceType数据源类型。可接受以下值:
  • client。此数据类型视为不可信,数据存储中所有相关事件均具有trusted: false状态。
  • server。此数据类型视为可信,数据存储中所有相关事件均具有trusted: true状态。
sourceName数据来源名称。
projectId项目ID。

示例

Copy
Full screen
Small screen
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请求参数无效
401项目密钥无效

注册事件发送

在此之前需先获取令牌

HTTP请求

Copy
Full screen
Small screen
POST https://tracking-api.xsolla.com/v1/events

发送方法时会完成以下步骤:

  1. 最终用户打开其在流量来源处(圈内达人的直播页面、推广页等)找到的跟踪链接。该动作会生成一个点击ID
  2. 代理页面侧会生成一个跟踪ID,并以参数形式传入着陆页。
  3. 用户访问着陆页并注册。
  4. 游戏开发者通过跟踪API发送注册事件,从而将用户的用户ID跟踪ID传入参数。

描述
Authorization之前获取的令牌。
参数类型描述
type字符串之前获取的令牌。
traits对象用户身份数据:
  • trackingId — 重定向到游戏网站的用户的Tracking ID。艾克索拉在重定向后将其包含在请求参数中发送。
  • userId创建令牌时分配到的user ID
context对象必须为空。
properties对象必须为空。

示例

Copy
Full screen
Small screen
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请求

Copy
Full screen
Small screen
POST https://tracking-api.xsolla.com/v1/events

描述
Authorization之前获取的令牌。
参数类型描述
type字符串事件类型。
traits对象用户身份数据:电话、电子邮箱、游戏ID等。
context对象上下文数据。
properties对象事件属性。
createdAt日期格式:RFC 3339或ISO 8601格式的日期和时间。

示例事件:切换到着陆页

Copy
Full screen
Small screen
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"
  }
}

示例事件:切换到支付中心

Copy
Full screen
Small screen
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令牌无效

初始化事件

在此之前需先获取令牌

Copy
Full screen
Small screen
xnt("init", YOUR_TOKEN);

发送事件

Copy
Full screen
Small screen
xnt("sendEvent", EVENT_TYPE, EVENT_PROPERTIES);

参数描述
EVENT_TYPE事件名称(字符串)。例如:landing_visit
EVENT_PROPERTIES事件属性(JS对象)。

示例

Copy
Full screen
Small screen
xnt("sendEvent", "landing_visit");
xnt("sendEvent", "buy_btn", { pkg_type: $(this).data('id') });

事件参数

参数描述
source事件来源(支付中心、landing_page等)。
type事件类型(user_visit、hit等)。
traits用户数据(电子邮箱、user_id、昵称等)。
context事件上下文(ip、gaClientId等)。
properties事件属性(sum、levelup等)。
createdAt事件时间,由来源传入。
timestamp系统收到事件的时间。

如要使用contexttraits参数补充事件,请使用以下方法:

Copy
Full screen
Small screen
xnt("putContext", CONTEXT_OBJECT);
xnt("putTraits", TRAITS_OBJECT);

参数描述
CONTEXT_OBJECT事件上下文(JS对象)。
TRAITS_OBJECT用户数据(JS对象)。
Note
上下文的userAgentuserLocale将自动添加。这两个方法添加的数据将合并到事件数据中。

实现脚本

在着陆页面实现以下脚本:

Copy
Full screen
Small screen
<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>

本文对您的有帮助吗?
谢谢!
我们还有其他可改进之处吗? 留言
非常抱歉
请说明为何本文没有帮助到您。 留言
感谢您的反馈!
我们会查看您的留言并运用它改进用户体验。
为此页面评分
为此页面评分
我们还有其他可改进之处吗?

不想回答

感谢您的反馈!
上次更新时间: 2021年6月25日

发现了错别字或其他内容错误? 请选择文本,然后按Ctrl+Enter。

报告问题
我们非常重视内容质量。您的反馈将帮助我们做得更好。
请留下邮箱以便我们后续跟进
感谢您的反馈!