추적 분석

작동 방식

추적 분석을 통해 사용자가 생성한 이벤트를 수집하고 집계하여 프로그램 실적과 추천인 수를 평가할 수 있습니다. 정확한 통계가 제안을 보다 매력적으로 만들기 때문에 제공된 데이터는 회원 네트워크에 참여하는 추가 방법으로 사용할 수 있습니다.

다음과 같은 이벤트를 처리할 수 있습니다.

  • 랜딩 페이지로 전환
  • 랜딩 페이지에서 스토어로 전환

사용자

  • 파트너 네트워크를 통합하고 회원/회원 네트워크 프로그램을 구성한 파트너.
  • 파트너 네트워크를 통합하고 무료 게임을 제공하고 있는 파트너.

획득 방법

트래킹 분석을 통합하려면:

  1. JSON 웹 토큰을 가져옵니다(JWT).
  2. tracking_id를 요청 매개변수에서 웹사이트 쿠키로 저장합니다. tracking_id 요청의 예: https://playnewz.com?utm_source=n6LI9yVu&utm_campaign=5b9bff5f9d31b&tracking_id=19e2DLjNTk2YOdXA4d8J3NReNkXNafhC.
  3. 새로운 사용자가 생성된 후, 등록 이벤트 전송 방식을 통해 user_idtracking_id를 전송합니다.
    • 엑솔라 트래킹 API 응답을 기다리는 동안 비동기 형식으로 요청을 전송하면 사용자 등록을 방해하지 않습니다.
    • 혹은 타임아웃을 사용합니다. 엑솔라 트래킹 API 응답을 기다리는 경우 지정한 시간보다 대기 시간이 길어지면 새 사용자는 트래킹되지 않습니다.
  4. 사용자 정의 이벤트를 만들고 관리하려면 다음 트래킹 API 방식을 적용합니다. 생성, 초기화전송 이벤트.
  5. 웹 사이트에 트래킹 스크립트를 적용합니다.

토큰 가져오기

HTTP 요청

POST https://tracking-api.xsolla.com/v1/tokens

매개변수설명
AuthorizationAPI_KEY. 게시자 계정에서 API 키를 가져올 수 있습니다.
sourceType데이터 소스 유형. 이는 "client", "server"가 될 수 있습니다. 클라이언트 소스는 신뢰할 수 없는 것으로 간주되며 저장소의 모든 개별 이벤트는 "trusted: false"으로 표시됩니다. 서버 소스는 신뢰할 수 있는 것으로 간주되며 저장소의 모든 이벤트는 "trusted: true"로 표시됩니다.
sourceName데이터 소스 이름.
projectId프로젝트 ID.

예시: 토큰 가져오기

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"
}

응답 코드설명
201Token created
400Query parameters are not valid
401Project key is not valid

등록 이벤트 전송

이를 수행할 토큰을 가져와야 합니다.

HTTP 요청

POST https://tracking-api.xsolla.com/v1/events

메소드를 전송하는 동안 다음 단계가 완료됩니다.

  1. 최종 사용자가 트래픽 소스(인플루언서 스트리밍, 프로모션 페이지 등)에서 발견한 추적 링크를 팔로우합니다. 해당 작업에는 클릭 ID가 부여됩니다.
  2. 프록시 페이지에 Tracking ID가 생성되며 이는 매개변수의 방문 페이지로 전달됩니다.
  3. 사용자가 방문 페이지를 방문하여 가입합니다.
  4. 게임 개발자는 추적 API를 통해 등록 이벤트를 전송하는 방식으로 사용자 Tracking ID를 전달합니다.

매개변수설명
Authorization이미 가져온 토큰입니다.
type이벤트 유형(여기서는 'registration').
traits객체. 사용자 식별 데이터:
  • trackingId - 사용자의 Tracking ID는 게임 웹 사이트로 리디렉션. 리디렉션 후 엑솔라가 이를 요청 매개변수에서 전송.
  • userId사용자 ID 토큰 생성 시 지정.
context객체는 비워 있어야 합니다.
properties객체는 비워 있어야 합니다.

예제

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": {
  }
}'

이벤트 생성하기

이를 수행할 토큰을 가져와야 합니다.

HTTP 요청

POST https://tracking-api.xsolla.com/v1/events

매개변수설명
Authorization이미 가져온 토큰입니다.
type이벤트 유형.
traits객체. 사용자 식별 데이터: 전화, 이메일, 인게임 ID 등.
context객체. 문맥 데이터.
properties객제. 이벤트 속성.
createdAt날짜. 형식: RFC 3339 또는 ISO 8601에 따른 날짜 시간.

예제 이벤트: 랜딩 페이지로 전환

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"
  }
}

예제 이벤트: 결제 스테이션으로 전환

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토큰이 유효하지 않습니다

이벤트 초기화하기

이를 수행할 토큰을 가져와야 합니다.

xnt("init", YOUR_TOKEN);

이벤트 전송하기

xnt("sendEvent", EVENT_TYPE, EVENT_PROPERTIES);

매개변수설명
EVENT_TYPE이벤트 이름(문자열). 예: "landing_visit".
EVENT_PROPERTIES이벤트 속성(JS 오브젝트).

예제

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

이벤트 매개변수

매개변수설명
source이벤트 소스(결제 스테이션, landing_page 등).
type이벤트 유형(user_visit, 히트 등).
traits사용자 데이터(이메일, user_id, 예칭 등).
context이벤트 컨텍스트(ip, gaClientId 등).
properties이벤트 속성(합계, 레벨업 등).
createdAt소스가 전달한 이벤트 시간입니다.
timestamp시스템이 수신한 이벤트 시간.

'context' 및 'traits' 매개변수를 사용하여 이벤트를 보충하려면 다음 방법을 사용하십시오.

xnt("putContext", CONTEXT_OBJECT);
xnt("putTraits", TRAITS_OBJECT);

매개변수설명
CONTEXT_OBJECT이벤트 컨텍스트(JS 오브젝트).
TRAITS_OBJECT사용자 데이터(JS 오브젝트).
Note: 컨텍스트의 'userAgent' 및 'userLocale'이 자동으로 추가됩니다. 이 두 가지 방법으로 추가된 데이터는 이벤트 데이터와 결합됩니다.

스크립트 구현하기

랜딩 페이지에 다음 스크립트를 구현합니다.

<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>