ポストインストール・アナリティクス(PIA) — SDKを使ったレベル/イベント トラッキング

最終更新:
Chartboostのイベントトラッキングではプレイヤーのエンゲージメントをモニターし、アプリ内購入の傾向があるユーザーをセグメント化することができます。ユーザーをセグメントで分けることによりユーザー獲得の最適化を図ったり、リターゲティング・キャンペーンなどの収益化を強化できます。

目次


イベントトラッキングの概要

PIAイベントトラッキング統合では、SDKを介し、または(直接、あるいはサードパーティを介した)サーバー間通信により、Chartboostに「チュートリアル終了」といったプレイヤーのレベルのイベントフィールドデータを送ります。

各フィールドはプレイヤーをセグメント化し、再エンゲージメントや収益の最大化に使うためのレベルデータの収集、送信ができるようなものになっています。

イベントフィールドはそれぞれ固有のレベルデータに呼応させます。

使用できるフィールドは以下の通りです。使用例は次のセクションを参照ください。

イベント フィールドイベントラベル例1定義シーケンシャル?2

セグメンテーション
演算子3

オプションの
説明例4
1 "HIGHEST_LEVEL_REACHED" ユーザーが到達した最高レベル(数値) はい >=, >, ==, <, <= "Chocolate Fudge Level"
2 "CURRENT_AREA" ユーザーの現在のレベル/エリア - ==, != "Lunar Caverns"
3 "CHARACTER_LEVEL" プレイヤーのゲーム内キャラクターのレベル はい >=, >, ==, <, <= "Master Wizard"
4 "OTHER_SEQUENTIAL" デベロッパーによるシーケンシャルデータ送信用の追加フィールド はい >=, >, ==, <, <= "5"
5 "OTHER_NONSEQUENTIAL" デベロッパーによる非シーケンシャルデータ送信用の追加フィールド - ==, != "Tutorial Completed"
注記

1. イベントラベルは必須です。これは、Chartboostダッシュボードでイベントフィールドのタイプを識別するのに使います。

2. シーケンシャル イベントフィールドでは、1) レベルの値が上がっていく(レベルが下がることはない)のか、2) プレイヤーのレベル値が特定のレベル値より高いか低いかを判別します(使用例参照)。

3. UA最適化、リターゲティング・キャンペーンなどの収益化強化のためのプレイヤーセグメント作成に使う演算子です。

4. オプションの説明を使うと、レベルを"Area main character is in"(ユーザーの現在のエリア)といったイベントのタイプではなく、"Lunar Caverns"(蒼ざめた洞窟)などの実際のレベル名で識別できます。


統合には、イベントフィールド名とイベントの説明のほかにレベル値(数値)も含めること、またサブレベル値(任意)をサポートしていることが必要になります。

お客様のゲームでエリアや非シーケンシャルなレベルを使っている場合には、これらを内部でレベル値にマッピングする必要があります("Exalted Plains" = 1、"Emerald Graves" = 2など)。

プレイヤーのレベルデータはシステムにより追跡され、新しいレベル イベントを受信する度に更新されます。


使用例

5つのイベントフィールド タイプの使用例を以下に示します。OTHER_SEQUENTIALOTHER_NONSEQUENTIAL イベントは追加のレベルデータを分類し追跡するための予備のフィールドです。


最高レベル達成(OTHER_SEQUENTIAL を含む)

使用例 1: シンプルなレベル

Sugar Smash Storyというゲームでジェーンが2015年1月15日にレベル400に達した場合。このレベルに達したことを示すイベントがゲームからChartboostに送信され、ジェーンのデバイスIDには以下のデータが記録されます。この際、現在の「レベル399」は新しいレベルに更新されます。

  • イベントフィールド: 1
  • イベントラベル: "Sugar Smash Level"
  • メインのレベル値: 400
  • サブレベル値: 0
  • レベルの説明: "Chocolate Fudge Level"

使用例 2: 複雑なレベル

Foul Mood Fowlというゲームでボブがエリア2 のレベル9(2-9)を終了した場合。エリア2 のレベル10(2-10)に達すると、以下のイベントがゲームからChartboostに送信されます。

  • イベントフィールド: 1
  • イベントラベル: "Foul Mood Fowl Level"
  • メインのレベル値: 2
  • サブレベル値: 10
  • レベルの説明: "2-10"

到達したエリア/現在のレベル

使用例 1: オープンワールドのレベル

オープンワールドのRPGゲームでジョーが"Emerald Graves"(エメラルドの墓場)から"Exalted Plains"(有徳の平原)に到達した場合。ゲームから以下のイベントがChartboostに送信されます。

  • イベントフィールド: 2
  • イベントラベル: "Character Current Area"
  • メインのレベル値: 3
  • サブレベル値: 0
  • レベルの説明: "Exalted Plains"

このゲームでは、エリアを次のようなレベルにマッピングしてみます。

  • Hinterlands = 1
  • Fallow Mires = 2
  • Exalted Plains = 3
  • Emerald Graves = 4

使用例 2: FTUE(First Time User Experience:ファーストタイム ユーザーエクスペリエンス)

最初の数段階のレベルがFTUE/チュートリアルになっているアクションゲームの場合、HIGHEST_LEVEL_REACHED で追跡しているレベルデータのほかに、OTHER_SEQUENTIAL または OTHER_NONSEQUENTIAL フィールドを使ってChartboostに追加のレベルデータを送ることもできます(どちらを使うかは、チュートリアルの進捗を細かく追跡するか、単にチュートリアル完了を追跡するかによります)。

チュートリアルレベルをシーケンシャルに追跡する場合。

  • イベントフィールド: 4
  • イベントラベル: "Tutorial Progress"
  • メインのレベル値: 0
  • サブレベル値: 0
  • レベルの説明: "Tutorial Start"

チュートリアル完了のみを追跡する場合。

  • イベントフィールド: 4
  • イベントラベル: "Tutorial Progress"
  • メインのレベル値: 1
  • サブレベル値: 0
  • レベルの説明: "Tutorial Complete"

キャラクターのレベル(OTHER_SEQUENTIAL を含む)

RPGやミドルゲーマー用のゲームは特にその傾向がありますが、ゲームによってはキャラクターのレベルがターゲティングやセグメント化の肝になります。

使用例: ミドルゲーマー用MOBA(Multiplayer Online Battle Arena:マルチプレイヤー オンラインバトルアリーナ)ゲーム

テリーのエルフマージがレベル10に達した場合。Chartboostにイベントが送信されます。

  • イベントフィールド: 3
  • イベントラベル: "Player character level"
  • メインのレベル値: 10
  • サブレベル値: 0
  • レベルの説明: "Elven Mage"

次のセクションでは、SDKを介して、またはサーバー間統合やサードパーティを介してレベルデータを送る方法を説明します。


iOS SDKイベントトラッキング統合

前提条件

まず、次のことを行ってください。

統合手順

まず、以下の5つのタイプのレベル イベントを列挙します。

typedef enum {
// 到達した最高レベル
 HIGHEST_LEVEL_REACHED = 1,
// 現在の到達エリア/レベル
 CURRENT_AREA = 2,
// キャラクターの現在の到達レベル
 CHARACTER_LEVEL = 3,
// 到達したその他のシーケンシャル レベル
 OTHER_SEQUENTIAL = 4,
// 現在到達している非シーケンシャル レベル
 OTHER_NONSEQUENTIAL = 5
} CBLevelType;

その後は、以下のコードを使ってユーザーのレベル データを追跡できます。レベル データは、シーケンシャル、非シーケンシャル、キャラクターのレベルなどに設定可能です。

@interface CBAnalytics : NSObject

// サブレベルのあるゲーム

+ (void)trackLevelInfo:(NSString*)eventLabel
 eventField:(CBLevelType)eventField
 mainLevel:(NSUInteger)mainLevel
 subLevel:(NSUInteger)subLevel
 description:(NSString*)description;
 
@end
@interface CBAnalytics : NSObject

// サブレベルがないゲーム

+ (void)trackLevelInfo:(NSString*)eventLabel
 eventField:(CBLevelType)eventField
 mainLevel:(NSUInteger)mainLevel
 description:(NSString*)description;
 
@end

定義:

  • eventField: 上記のCBLevelType 列挙値の任意の値。イベントタイプを定義する。整数(1~5)としてChartboostに送られる。
  • mainLevel: プレイヤーのメインレベルを示す0以外の整数。
  • subLevel: プレイヤーのサブレベルを示す整数。サブレベルがない場合は上記の2番目を使う。
  • description: イベントの説明をする文字列(オプション)。

Google Play SDKイベントトラッキング統合

前提条件

まず、次のことを行ってください。

統合手順

まず、以下の5つのタイプのレベル イベントを列挙します。

public class CBAnalytics {
    public enum CBLevelType {
        HIGHEST_LEVEL_REACHED(1),
        CURRENT_AREA(2),
        CHARACTER_LEVEL(3),
        OTHER_SEQUENTIAL(4),
        OTHER_NONSEQUENTIAL(5);
    }
}

その後は、以下のコードを使ってユーザーのレベル データを追跡できます。レベル データは、シーケンシャル、非シーケンシャル、キャラクターのレベルなどに設定可能です。

public class CBAnalytics {

// サブレベルがないゲーム:
 public static synchronized void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, String description) {
 trackLevelInfo(eventLabel, type, mainLevel, 0, description);
 }
 
}
public class CBAnalytics {

// サブレベルのあるゲーム:
 public static synchronized void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, int subLevel, String description) {
 trackLevelInfo(eventLabel, type, mainLevel, subLevel, description);
 }
 
}

Amazon SDKイベントトラッキング統合

前提条件

まず、次のことを行ってください。

統合手順

Amazonイベントトラッキングは、上記のGoogle Play統合手順に従ってください。


Unityプラグイン イベントトラッキング統合

前提条件

まず、次のことを行ってください。

統合手順

まず、以下の5つのタイプのレベル イベントを列挙します。

namespace ChartboostSDK {

/// PIAイベントトラッキングの列挙値
 public enum CBLevelType : int {
// 到達した最高レベル 
 HIGHEST_LEVEL_REACHED = 1,
// 現在の到達エリア/レベル 
 CURRENT_AREA = 2,
// キャラクターの現在の到達レベル 
 CHARACTER_LEVEL = 3,
// 到達したその他のシーケンシャル レベル
 OTHER_SEQUENTIAL = 4,
// 現在到達している非シーケンシャル レベル 
 OTHER_NONSEQUENTIAL = 5
 };
}

その後は、以下に該当するブロックのコードを使ってユーザーのレベル データを追跡できます。レベル データは、シーケンシャル、非シーケンシャル、キャラクターのレベルなどに設定可能です。

サブレベルのあるゲーム

namespace ChartboostSDK {
  
    public static void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, int subLevel, String description) {
        CBExternal.trackLevelInfo(eventLabel, type, mainLevel, subLevel, description);
    }
    
}

サブレベルがないゲーム

namespace ChartboostSDK {

    public static void trackLevelInfo(String eventLabel, CBLevelType type, int mainLevel, String description) {
        CBExternal.trackLevelInfo(eventLabel, type, mainLevel, description);
    }
  
}

定義:

  • type: 上記のCBLevelType 列挙値の任意の値。イベントタイプを定義する。
  • mainLevel: プレイヤーのメインレベルを示す0以外の整数。
  • subLevel: プレイヤーのサブレベルを示す整数。サブレベルがない場合は上記の2番目を使う。
  • description: イベントの説明をする文字列(オプション)。

サーバー間イベントトラッキング統合

Chartboostのサーバー間(S2S)PIAイベントトラッキング統合では、プレイヤーのエンゲージメント データを追跡し、システムに保管します。

リクエスト確認のために、S2Sイベントトラッキング呼び出しにはレベルデータとAPIトークンを含みます(トークン情報は、こちらにお問い合わせください)。

{
    'app_id': app_id,
    'gaid': gaid,
    'event': {
        'event_label': event_label,  
        'event_field': event_field,  
        'main_level': main_level,
        'sub_level': sub_level,
        'description': description
    }

以下はイベントトラッキング呼び出しに関する情報です。お客様のAPIトークンはサポートにお問い合わせください。

イベントトラッキング S2S リクエスト詳細

メソッド

POST

エンドポイント

https://live.chartboost.com/event_service/v3/track

ヘッダー

(注:ヘッダーには認証データが含まれます。)

ヘッダー名説明
X-Chartboost-Token 9782f24948b6d8125518f421f70240c415e0d25b お客様のAPIトークン(PIA APIトークンおよびAPIシークレットについてはsupport.integrations@chartboost.comまでご連絡ください)
X-Chartboost-Signature 173e6aeff28e4b76b488d5acf49ed8ebb8e95559 生成方法はこちらのGistをご覧ください。Chartboostアプリ署名と同じ値ではありません。ご注意ください!

JSONボディ:イベントトラッキング パラメータ

パラメータiOSアプリAndroidアプリ説明
track_info       以下のオブジェクトの配列
event_label 必須 必須 "Highest level puzzle solved" ゲーム内イベント用カスタム ラベル
event_field 必須 必須 1 イベントタイプに一致するID。IDはこちらの表参照
main_level 必須 必須 2 メインレベル(0以外の整数)
sub_level 必須 必須 1 サブレベルの整数(該当しない場合は0
description オプション オプション "The boss level" レベルの説明

JSONボディ:識別子パラメータ

パラメータiOSアプリAndroidアプリ説明
アプリID 必須 必須 "54ecc0535beacdc1e1eff778"  ChartboostアプリID(Chartboostダッシュボードにあります)
ifa 必須 該当なし IFA: "7e8ec8092004283043e99d515ab0c51b0ef755ff"(32文字、ダッシュOK、大文字OK) 広告識別子
gaid 該当なし 必須 "38400000-8cf0-11bd-b23e-10b96e40000d"(32文字+ダッシュ4つ) Google Play Services広告 ID(advertising ID)(Androidのみ)
uuid 該当なし オプション(GAIDが送信されない場合、またはAmazonアプリの場合) "358414046356276" 古いAndroid ID/Amazonゲーム用
まずendpoint:Building the Requestからはじめます。
https://live.chartboost.com/event_service/v3/track

JSONボディにパラメータを追加すれば完了です。リクエストが成功すると、次を受信します。{"status":200,"message":"Success"}.

呼び出しが500 HTTPエラーコードを受信した場合には、少し時間をおいてから、サーバーによるS2S呼び出しを再試行する必要があります。2秒後、4秒後、8秒後、16秒後と成功するまで再試行してください。

サードパーティサーバー間イベントトラッキング統合

プラットフォームやネットワーク間の、より詳しいレベル分析データが欲しい場合には、S2S統合設定を行い、サードパーティのトラッキング サービスからレベルデータをインポートすることもできます。サーバー間統合をすれば、Chartboostダッシュボードでサードパーティのデータを見られるようになります。もっと見る ▶


レベル/イベントユーザーセグメント

レベル/イベントデータにもとづいてユーザーセグメントを作成する方法については、ユーザーセグメント ビルダーのヘルプを参照ください。


レベル/イベントトラッキング アナリティクスダッシュボード

ポストインストール・アナリティクス(PIA)ダッシュボードでイベントトラッキング アナリティクスを見ることができます。詳細は ポストインストール・アナリティクス(PIA)ダッシュボードのヘルプを参照ください。