Adjustリアルタイムコールバック
サードパーティデータ統合によって生成されたデータは、クラスターの消費データ量に含まれますのでご注意ください
概要
インターフェースの概要
| インターフェース名 | タイプ | 粒度 | アトリビューション | コスト | 収益 | 表示 | クリック | コンバージョン |
|---|---|---|---|---|---|---|---|---|
| リアルタイムコールバック | コールバック | ユーザーレベル | ✅ | ✅ | ✅ |
Adjustは、一連のイベントのリアルタイムコールバック機能を提供しています。Adjust管理画面でコールバックするデータタイプを選択し、AEシステムのコールバックリンクをコールバックURLに設定すると、ユーザーレベルの詳細データをコールバックできます。
Adjustデータの統合を始める前に、AEシステムのユーザー識別ルールを読み、AEが#distinct_idと#account_idによってユーザーを識別する仕組みを理解しておいてください
統合の流れ
- AdjustクライアントSDKとAE SDKを統合し、Adjust SDKでAEのユーザー識別IDを設定します
- AE管理画面にログインし、サードパーティ統合モジュールでAdjustリアルタイムコールバックプランを追加して、関連する設定を完了します
- Adjust管理画面にログインし、コールバックの設定を完了します
- AEシステムがデータを正常に受信しているかを確認し、レポートを作成します
1. クライアントSDKの設定
Adjustデータを統合する最初のステップは、クライアント側でAE SDKとAdjust SDKを連携させ、Adjust SDKでAEシステムのユーザー識別IDを設定することです
1.1 方法1(自動統合)
-
統合しているAndroid、iOS SDKについて
- SDKのバージョンが2.8.0~2.8.1の場合は、この方法をそのまま使用できます
- SDKのバージョンが2.8.2以上の場合は、サードパーティデータプラグインもインストールする必要があります。詳しくはAndroid SDKのサードパーティデータとiOS SDKのサードパーティデータを参照してください
-
統合しているUnity SDKのバージョンが2.4.0以上、Unreal SDKのバージョンが1.5.0以上の場合は、この方法をそのまま使用できます
AEのSDKの初期化と自動統合を有効にするコードは、AdjustのSDKの初期化より前に完了する必要があります。次の手順に従って操作してください:
1. AE SDKを初期化します。
2. `enableThirdPartySharing`を呼び出して、ゲストIDを自動設定します。
3. Adjust SDKを初期化します。
各SDKのコードサンプルは次のとおりです:
- Android
- iOS
- Unity
- Unreal
// 1. Android SDKを初期化
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
TDAnalytics.init(config);
// 2. enableThirdPartySharingインターフェースを呼び出し、ta_distinct_idをadjustイベントに設定
TDAnalytics.enableThirdPartySharing(TDThirdPartyType.ADJUST);
// 3. Adjust SDKを初期化
// 。。。
// 4. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
TDAnalytics.login("account_id");
TDAnalytics.enableThirdPartySharing(TDThirdPartyType.ADJUST);
// 1. iOS SDKを初期化
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];
// 2. enableThirdPartySharingインターフェースを呼び出し、ta_distinct_idをadjustイベントに設定
[TDAnalytics enableThirdPartySharing:TDThirdPartyTypeAdjust];
// 3. Adjust SDKを初期化
// 。。。
// 4. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
[TDAnalytics login:@"account_id"];
[TDAnalytics enableThirdPartySharing:TDThirdPartyTypeAdjust];
// 1. Unity SDKを初期化
TDConfig config = new TDConfig("APPID","SERVER");
TDAnalytics.Init(config);
// 2. enableThirdPartySharingを呼び出し、ta_distinct_idをadjustイベントに設定
TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.ADJUST);
// 3. Adjust SDKを初期化
// 。。。
// 4. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
TDAnalytics.Login("account_id");
TDAnalytics.EnableThirdPartySharing(TDThirdPartyType.ADJUST);
// 1. Unreal SDKを初期化
UTDAnalytics::Initialize();
// 2. enableThirdPartySharingを呼び出し、ta_distinct_idをadjustイベントに設定
TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
// 3. Adjust SDKを初期化
// 。。。
// 4. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
UTDAnalytics::Login("account_id", AppID);
TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
AE SDKのlogin()メソッドまたはidentify()メソッドを呼び出した場合は、再度enableThirdPartySharing()を呼び出してデータを同期する必要があります。
この方法の仕組みは、内部でAdjust SDKのaddGlobalCallbackParameter()メソッドを自動的に呼び出し、AEプロジェクトのゲストIDとアカウントIDを渡すというものです。
1.2 方法2(手動統合)
手動統合の方法では、Adjust SDKでaddGlobalCallbackParameter()インターフェースを使用して、AEプロジェクトのゲストIDとアカウントIDを設定する必要があります。
AEのSDKの初期化とaddGlobalCallbackParameterインターフェースの呼び出しは、AdjustのSDKの初期化より前に完了する必要があります。次の手順に従って操作してください:
1. AE SDKを初期化します。
2. `addGlobalCallbackParameter`を呼び出して、ゲストIDを設定します。
3. Adjust SDKを初期化します。
各SDKの手動統合のコードサンプルは次のとおりです:
- Android
- iOS
- Unity
- Unreal
// 1. Android SDKを初期化
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
TDAnalytics.init(config);
// 2. AEのゲストIDを取得(AEの#distinct_idに対応)
String distinctId = TDAnalytics.getDistinctId();
// 3. ゲストIDをadjustの収集イベントに設定
// Adjust sdk V5より前のバージョンでは、addSessionCallbackParameterインターフェースを使用してください
//Adjust.addSessionCallbackParameter("ta_distinct_id", distinctId);
// Adjust sdk V5以降のバージョンでは、addGlobalCallbackParameterインターフェースを使用してください
Adjust.addGlobalCallbackParameter("ta_distinct_id", distinctId);
// 4. Adjust SDKを初期化
// 。。。
// 5. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
String accountId = "ta_account_id";
TDAnalytics.login(accountId);
Adjust.addGlobalCallbackParameter("ta_account_id", accountId);
// 1. iOS SDKを初期化
TDConfig *config = [[TDConfig alloc] init];
config.appid = appid;
config.serverUrl = url;
[TDAnalytics startAnalyticsWithConfig:config];
// 2. AEのゲストIDを取得(AEの#distinct_idに対応)
NSString *distinctId = [TDAnalytics getDistinctId];
// 3. ゲストIDをadjustの収集イベントに設定
/*
Adjust sdk V5より前のバージョンでは、addSessionCallbackParameterインターフェースを使用してください
[Adjust addSessionCallbackParameter:@"ta_distinct_id" value:distinctId];
*/
// Adjust sdk V5以降のバージョンでは、addGlobalCallbackParameterインターフェースを使用してください
[Adjust addGlobalCallbackParameter:distinctId forKey:@"ta_distinct_id"];
// 4. Adjust SDKを初期化
// 。。。
// 5. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
NSString *accountId = @"ta_account_id";
[TDAnalytics login:accountId];
[Adjust addGlobalCallbackParameter:accountId forKey:@"ta_account_id"];
// 1. Unity SDKを初期化
TDConfig config = new TDConfig("APPID","SERVER");
TDAnalytics.Init(config);
// 2. AEのゲストIDを取得(AEの#distinct_idに対応)
var distinctId = TDAnalytics.GetDistinctId();
// 3. ゲストIDをadjustの収集イベントに設定
/**
Adjust sdk V5より前のバージョンでは、addSessionCallbackParameterインターフェースを使用してください:
Adjust.addSessionCallbackParameter("ta_distinct_id", distinctId);
*/
// Adjust sdk V5以降のバージョンでは、AddGlobalCallbackParameterインターフェースを使用してください
Adjust.AddGlobalCallbackParameter("ta_distinct_id", distinctId);
// 4. Adjust SDKを初期化
// 。。。
// 5. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
var accountId = "account_id";
TDAnalytics.Login(accountId);
Adjust.AddGlobalCallbackParameter("ta_account_id", accountId);
// 1. Unreal SDKを初期化
UTDAnalytics::Initialize();
// 2. AEのゲストIDを取得(AEの#distinct_idに対応)
FString distinctId = UTDAnalytics::GetDistinctId();
// 3. ゲストIDをadjustの収集イベントに設定
Adjust::AddSessionCallbackParameter(TEXT("ta_distinct_id"), distinctId);
// 4. Adjust SDKを初期化
// 。。。
// 5. 登録またはキャラクター作成後、loginを呼び出してアカウントIDを設定したら、再度データを同期する必要があります(任意)
FString accountId = "account_id";
UTDAnalytics::Login(accountId);
Adjust::AddSessionCallbackParameter(TEXT("ta_account_id"), accountId);
2. プランの設定
SDKの設定が完了したら、次にAEシステムの管理画面にログインし、「サードパーティ統合」モジュールでAdjustの設定を行います。下図はAdjustの設定画面です:
2.1 ユーザー識別フィールド
Adjustがコールバックするのはユーザーレベルのデータであるため、ユーザー識別ルール、つまりコールバックデータ内で#distinct_idと#account_idに対応するフィールドを設定する必要があります。AEシステムはこの設定に基づき、コールバックデータを変換する際に、これらのフィールドをデータのユーザー識別フィールドとして設定します。
本ドキュメントの前のステップに従ってクライアントSDKを設定した場合は、デフォルト値をそのまま使用できます:
- アカウントID関連フィールド:ta_account_id
- ゲストID関連フィールド:ta_distinct_id
AEシステムはここでの設定に基づいてコールバックデータのユーザー識別を行い、Adjustがコールバックしたユーザー粒度のデータをAEプロジェクト内の対応するユーザーに関連付けます。
デフォルトのルールは次のとおりです:
- アカウントID:コールバックデータにta_account_idが存在するかを確認し、存在する場合は#account_idとして設定し、存在しない場合は空のままにします
- ゲストID:コールバックデータにta_distinct_idが存在するかを確認し、存在する場合は#distinct_idとして設定し、存在しない場合は空のままにします
- アカウントIDとゲストIDがどちらも空の場合、そのデータは無効なデータとみなされ、直接破棄されます
2.2 イベントデータの格納設定
「イベントデータの格納設定」スイッチをオンにすると、Adjustがコールバックしたデータはすべてイベントテーブルに書き込まれます。イベントデータの格納を有効にすることをお勧めします。
2.3 ユーザープロパティの格納設定
デフォルトでは、AEシステムはAdjustのコールバックデータ内のアトリビューションフィールドを、標準化処理後のユーザープロパティに自動的に書き込みます。ユーザープロパティに書き込まれるフィールドとその意味は次のとおりです:
| Adjustフィールド | AEに格納後のユーザープロパティ名 | 説明 |
|---|---|---|
| network_name | te_ads_object.media_source | チャネル |
| campaign_name | te_ads_object.campaign_name | 広告キャンペーン |
| adgroup_name | te_ads_object.ad_group_name | 広告グループ |
| creative_name | te_ads_object.ad_name | 広告クリエイティブ |
旧バージョンのユーザープロパティ格納のデフォルトルールは現在と異なるため、ご注意ください。新旧のプロパティを統合する必要がある場合は、仮想プロパティ機能を使用できます
変更が必要な場合は、「設定ルール」をクリックして、下図のような格納ルールの設定ページに移動します
ここでは、ユーザープロパティをどのイベントから取得するかを変更できます。ユーザープロパティが頻繁に書き込まれないようにしたい場合は、「すべてのイベントを含む」をオフにし、ソースイベント名をinstallに変更します。このように設定すると、AEシステムはAdjustがコールバックしたinstallイベントからのみ、ユーザープロパティに書き込む必要があるフィールドを抽出して書き込みます。格納の方法はデフォルトでuser_setOnceで、初回に送信された情報のみが保持されます。
「プロパティのマッピング」ボタンをクリックして、ユーザープロパティに書き込むフィールドを追加できます。また、左側の「ルール」ボタンをクリックして新しいルールを追加することもできます。たとえば、Adjustがコールバックしたマネタイズデータから広告収益を抽出し、user_addの方式でユーザープロパティに書き込むことで、各ユーザーの累計広告収益を記録できます。
ユーザープロパティの格納を無効にしたい場合は、すべてのルールを停止します:
2.4 ターミナルアドレス
2.4.1 デフォルト設定
システムレベルおよびプロジェクトレベルのデータ受信URLを設定している場合は、次のリンクが表示されます。このアドレスをそのままコピーし、Adjust管理画面のリアルタイムコールバック設定に貼り付けることができます:
ここにアドレスが表示されない場合は、右上のメニュー「プロジェクト管理 → プロジェクト設定 → プロジェクト構成」でパブリックネットワークURLを設定してください。このアドレスは、AE SDKで設定するデータ受信URLです。設定後、Adjustリアルタイムコールバック設定ページの「ターミナルアドレス」に戻ってターミナルアドレスをコピーしてください。
2.4.2 カスタムマクロ
Adjustのコールバックアドレスには、マクロと呼ばれる構造が含まれており、{macro_name}の形式で表されます。マクロはプレースホルダーの一種と考えることができ、コールバックするデータにマクロに対応するフィールドが含まれている場合、Adjustはそのフィールド値をマクロの位置に埋め込みます。{campaign_name}を例にすると、Adjustはデータをコールバックする際に、campaign_nameの値をコールバックアドレス内のマクロの位置に埋め込みます。Adjustのコールバックのデモ動画を参照して、マクロの役割を確認できます。
AEの画面にはコールバックアドレスが表示されるため、そのままコピーすることをお勧めします。アドレス内の次の内容を置き換える必要がありますのでご注意ください:
- {receiver-host}:データ受信URL。AE管理画面の「プロジェクト管理 → プロジェクト設定 → プロジェクト構成」にあるパブリックネットワークURLです
- {app-id}:AEのプロジェクトのAPP ID
旧バージョンのデータソースアドレスは現在のものと異なるため、ご注意ください。新しいアドレスを使用することをお勧めします。
また、他のパラメータを追加したい場合は、こちらのドキュメントを参照してください
2.5 イベントの格納ルール
-
データ内のcreated_at_milliフィールドをイベントの#event_timeとして使用します。created_at_milliが存在しない場合は、created_atの値を#event_timeとして使用します
-
データのイベント名は次のとおりです:
- インストール:install
- 広告収入:ad_revenue
- その他のイベント:Adjust管理画面でのイベント名
-
コールバックリンクで設定したその他のフィールドはすべて格納されます
2.6 標準化フィールド
次のイベントプロパティは標準化処理されます:
| 元フィールド | 標準化フィールド | 意味 |
|---|---|---|
| network_name | te_ads_object.media_source | メディアチャンネル |
| ad_mediation_platform | te_ads_object.media_source | マネタイズチャンネル |
| campaign_name | te_ads_object.campaign_name | 広告キャンペーン名 |
| google_ads_campaign_name | te_ads_object.campaign_name | 広告キャンペーン名(Google Adsデータのみ) |
| google_ads_campaign_id | te_ads_object.campaign_id | 広告キャンペーンID(Google Adsデータのみ) |
| adgroup_name | te_ads_object.ad_group_name | 広告グループ名 |
| google_ads_adgroup_name | te_ads_object.ad_group_name | 広告グループ名(Google Adsデータのみ) |
| google_ads_adgroup_id | te_ads_object.ad_group_id | 広告グループID(Google Adsデータのみ) |
| creative_name | te_ads_object.ad_name | 広告名 |
| google_ads_creative_id | te_ads_object.ad_id | 広告ID(Google Adsデータのみ) |
| ad_revenue_placement | te_ads_object.placement | マネタイズ広告の配置 |
| google_ads_placement | te_ads_object.placement | 広告の配置(Google Adsデータのみ) |
| cost_amount | te_ads_object.cost | 配信コスト |
| cost_currency | te_ads_object.currency | ユーザー獲得配信の通貨 |
| revenue_usd | te_ads_object.revenue | マネタイズ収益 |
| 【USD】固定値 | te_ads_object.currency | マネタイズ収益の通貨 |
| country | te_ads_object.country | 国・地域コード |
| os_name | te_ads_object.platform | プラットフォーム(Android、iOSなど) |
| app_id | te_ads_object.app_id | アプリID |
| app_name | te_ads_object.app_name | アプリ名 |
3. Adjustリアルタイムコールバックインターフェースの設定
AE管理画面での設定が完了したら、次に管理者アカウントでAdjust管理画面にログインします。左側のメニューで「AppView」 - 「すべてのアプリ」(All apps)をクリックし、コールバックを設定する対象アプリを見つけて「サーバーコールバック」(Server callbacks)ボタンをクリックし、コールバック設定ページに移動します。
次に、コールバック設定ページで右上の新規コールバックボタンをクリックし、「クラシック設定」(Classic Setup)で新しいコールバックを作成します。
すべてのコールバックイベントを評価した結果、インストールイベントと広告収入イベントについては、それぞれ個別にイベントコールバックを設定することをお勧めします。コールバックをお勧めするイベントは次のとおりです:
| イベント表示名 | イベント名(Trigger) |
|---|---|
| インストール | install |
| 広告収入(Adjust Growth Solutionの購入が必要) | ad revenue |
インストールイベント(install)のコールバックには、次のマクロを使用することをお勧めします
https://{receiver-host}/attribution/callback/adjust/{app-id}?network_name={network_name}&campaign_name={campaign_name}&adgroup_name={adgroup_name}&creative_name={creative_name}&activity_kind={activity_kind}&created_at_milli={created_at_milli}&timezone={timezone}&event_name={event_name}&cost_amount={cost_amount}&cost_currency={cost_currency}&publisher_parameters={publisher_parameters}&app_id={app_id}&app_name={app_name}&country={country}&os_name={os_name}&app_version={app_version}
広告収入イベント(ad revenue)には、次のマクロを使用することをお勧めします
https://{receiver-host}/attribution/callback/adjust/{app-id}?network_name={network_name}&campaign_name={campaign_name}&adgroup_name={adgroup_name}&creative_name={creative_name}&activity_kind={activity_kind}&created_at_milli={created_at_milli}&timezone={timezone}&event_name={event_name}&cost_amount={cost_amount}&cost_currency={cost_currency}&publisher_parameters={publisher_parameters}&app_id={app_id}&app_name={app_name}&country={country}&os_name={os_name}¤cy={currency}&revenue={revenue_float}&placement={ad_revenue_placement}&ad_revenue_unit={ad_revenue_unit}&ad_revenue_network={ad_revenue_network}&app_version={app_version}
4. その後の利用
4.1 データ格納の確認
「データ管理」ページで、コールバックイベントが格納されているかどうかを確認できます:
- インストール:install
- 広告収入:ad_revenue
- その他のイベント:Adjust管理画面でのイベント名
4.2 レポートの提案
レポート作成に関するいくつかの提案を以下に示します:
- イベント分析モデルで、Adjustのコールバックデータを使用して広告配信と広告マネタイズの主要指標を構築し、広告分析レポートを作成します
- リテンション分析モデルで、コールバックデータの広告マネタイズとゲーム内課金イベントを組み合わせて、メディアチャンネルや広告キャンペーンなどの粒度で、広告マネタイズを含むLTVを計算します
- ファネル分析モデルで、インストールイベントを新規ユーザーのコンバージョンファネルに追加し、メディアチャンネルや広告キャンペーンなどの粒度で、流入元別のユーザーのコンバージョン状況を分析します
5. 付録
5.1 FacebookのユーザーアトリビューションのプレースホルダーがUnattributedと表示される場合の解決方法
背景
Facebookがammを廃止して以降、Facebookからのユーザーアトリビューションのプレースホルダー({campaign_name}など)はすべてUnattributedとしてコールバックされます。AndroidプラットフォームでFacebook経由のユーザーのアトリビューション情報を引き続き取得したい場合は、新しいプレースホルダーを使用する必要があります。
解決手順-Adjust側の設定
- Install Referrerプラグインをインストールする
まず、Androidアプリに次のSDKコンポーネントが統合されていることを確認してください:https://help.adjust.com/zh/article/get-started-android-sdk?src=search_page#set-up-install-referrer
- AdjustのFacebookモジュールにFacebookのDecryption Keyを追加する
次に、Facebook developer account(https://developers.facebook.com/)(ダッシュボード > 設定 > ベーシック > Android (Google Play) Install Referrer Decryption Key)でDecryption Keyを取得できます。各Decryption Keyは一意のFacebook App IDに対応しています。この値はアプリデータのソースを取得するための鍵となるため、Adjustのコントロールパネル(対応するAndroidアプリのアプリ設定 > パートナー設定 > Facebook)に追加してください
- 新しいプレースホルダーを使用する
以下は、この解決方法でアプリデータを取得するための新しいプレースホルダーです。現在、Adjustはこれらのプレースホルダーをインストールアクティビティのコールバックに追加することに対応しており、今後は他のアクティビティにも拡張する予定です。現時点では、Adjustはまず{adid}やその他の内部IDを使用して、インストールおよびインストール後のイベントデータをマッピングすることを推奨しています。
- {fb_install_referrer}:デコードされたFacebook install referrerの完全な値
- {fb_install_referrer_ad_id}:Facebook install referrerの完全な値に含まれる"ad_id"
- {fb_install_referrer_adgroup_id}:Facebook install referrerの完全な値に含まれる"adgroup_id"
- {fb_install_referrer_adgroup_name}:Facebook install referrerの完全な値に含まれる"adgroup_name"
- {fb_install_referrer_campaign_id}:Facebook install referrerの完全な値に含まれる"campaign_id"
- {fb_install_referrer_campaign_name}:Facebook install referrerの完全な値に含まれる"campaign_name"
- {fb_install_referrer_campaign_group_id}:Facebook install referrerの完全な値に含まれる"campaign_group_id"
- {fb_install_referrer_campaign_group_name}:Facebook install referrerの完全な値に含まれる"campaign_group_name"
- {fb_install_referrer_account_id}:Facebook install referrerの完全な値に含まれる"account_id"
- {fb_install_referrer_ad_objective_name}:Facebook install referrerの完全な値に含まれる"ad_objective_name"
解決手順-AE管理画面の設定
Adjustリアルタイムコールバックプランを開きます。主に影響を受けるのは「ユーザープロパティの格納設定」です。Facebookのアトリビューションフィールドをユーザープロパティとして設定したい場合は、「ソースプロパティ名」列にマクロ名を入力し、ターゲットプロパティ名を設定してください:

