目录
此内容是否有帮助?

# AppsFlyer

このドキュメントでは、TEでAppsFlyerデータを統合する方法について説明します。現在、TEはAppsFlyerのPush API (opens new window)に連携することができます。

TIP

プラットフォームのデータ統合によって生成されたデータは、クラスターのデータ消費量にカウントすることに注意してください。

# 概要

API名 統合タイプ データ粒度 アトリビューション コスト 収益 露出 クリック コンバージョン
Push API
コールバック
ユーザーレベル





Push API (opens new window)はリアルタイムのAppsFlyerユーザーレベルデータを提供し、広告露出、クリック、アクティブ化、収益データなどが含まれます。コストデータはAFプラットフォームの制限により取得できない場合があります。

AppsFlyerデータと連携する前に、TEシステムのユーザー識別ルールの#distinct_idと#account_idの仕様について予めご理解・ご認識ください。

# 統合手順

  1. AppsFlyerのクライアントSDK (opens new window)とTE SDKへ接続後、AF SDKでTEのユーザー識別IDを設定
  2. TEへログイン後、サードパーティー統合ページにてAppsFlyerの統合を設定
  3. AppsFlyerのバックエンドへログイン後、コールバックを設定
  4. TEシステムがデータを正常に受信後、レポートの構築が完了を確認

# クライアントSDK設定

AppsFlyerデータを統合する最初のステップは、TEのSDKとAFのSDKをクライアント側で接続し、AFのSDK内でTEシステムのユーザー識別IDを設定することです。

# 1.1 プラン①(自動統合)

  • TEのSDK のバージョンが2.8.0〜2.8.1である場合、このプランを直接使用することができます。
  • TEのSDK のバージョンが2.8.2以上であれば、サードパーティのデータプラグインをインストールする必要があります。詳細については、Android SDKiOS SDKを参照してください。

このプランは自動統合プランであり、TEクライアントSDKを初期設定した後、以下のコードを呼び出して有効にしてください。

// Initialize the TE SDK
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);

// Enable the AppsFlyer ID association function of the TE SDK
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

// It is strongly recommended that you set the visitor ID again using setCustomerUserId()
String distinctId = ThinkingAnalyticsAPI.GetDistinctId();
AppsFlyerLib.getInstance().setCustomerUserId(distinctId);

// Initialize the AppsFlyer SDK
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);

// After calling the TE SDK's login to set the account ID, you need to synchronize the data with the AF SDK again
instance.login("account_id");
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);

注意

TE SDKのlogin()メソッドまたはidentify()メソッドを呼び出した場合、enableThirdPartySharing()を再度呼び出してデータを同期する必要があります。

もしAF SDKのsetAdditionalData()メソッドを呼び出す必要がある場合、このメソッドは複数回呼び出されると以前のパラメーターを上書きしてしまうため、以下のコードに従ってTE SDKにパラメーターを渡すことで、内部的にパラメーターを結合・マージします。

Map<String, Object> additionalData = new HashMap<>();
additionalData.put("af_test_key1", "test1");
additionalData.put("af_test_key2", "test2");
instance.enableThirdPartySharing(
    TDThirdPartyShareType.TD_APPS_FLYER,
    additionalData
);

このプランの原理は、内部で自動的にAFのsetAdditionalData()メソッドを呼び出し、TEプロジェクトのゲストIDとアカウントIDを渡すことです。

# 1.2 プラン②(手動統合)

手動統合の場合、AF SDKでsetAdditionalData()を使用してTEプロジェクトのゲストIDとアカウントIDを設定する必要があります。以下は、Android側のコード例です。

// Initialize the TE SDK
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);

// Get the distinct ID of TE, corresponding to #distinct_id in TE
String distinctId = ThinkingAnalyticsAPI.GetDistinctId();

// Set the distinct ID to the AF SDK through setAdditionalData()
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id",distinctId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

// It is strongly recommended to set the distinct ID again using setCustomerUserId()
AppsFlyerLib.getInstance().setCustomerUserId(distinctId);

// Initialize the AppsFlyer SDK
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);
...

// After calling the login method of the TE SDK to set the account ID, you need to synchronize the data with the AF SDK again
String accountId = "your_account_id";
instance.login(accountId);
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id", distinctId);
CustomDataMap.put("ta_account_id",accountId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);

上記の設定を行った後、custom_dataには ta_distinct_id と ta_account_id の2つのフィールドが含まれ、customer_user_id はゲストIDです。

# TEのサードパーティ統合設定

SDKの設定が完了したら、次にTEにログインし、「サードパーティ」でAppsFlyerの設定を完了する必要があります。以下はAppsFlyerの設定ページです。「統合スイッチ」を開いて、AppsFlyerの設定を開始してください。

# 2.1 ユーザーの識別と関連付け

AppsFlyerが返すのはユーザーレベルのデータであるため、AppsFlyerが返すデータと#distinct_idおよび#account_idに対応するフィールドを設定する必要があります。TEシステムはこの設定に基づいて、返されたデータを変換する際にこれらのフィールドをデータ内のユーザー識別フィールドとして設定します。

  • アカウントID:custom_data.ta_account_id
  • ゲストID:customer_user_id,custom_data.ta_distinct_id

# 2.2 イベントテーブル格納設定

SDKの設定が完了しましたら、次にTEへログイン後「サードパーティ」でAppsFlyerの設定を完了する必要があります。「統合スイッチ」を開いてAppsFlyerの設定を開始してください。

イベントデータの格納を有効にすることをお勧めします。ただし、デフォルトではすべての AF から送信されたデータを受信します。送信されるイベントタイプが多すぎる場合、TEプロジェクトのイベント数が過剰に膨張する可能性があります。そのため、AFプラットフォームでコールバック設定を行う際は、必要なイベントのみを選択してください。

# 2.3 ユーザープロパティ格納

デフォルトでは、TEシステムは AF コールバックデータのアトリビューションフィールドを自動的に標準化されたユーザープロパティに書き込みます。以下はユーザープロパティに書き込まれるフィールドとその意味です。

AppsFlyer フィールド 標準化フィールド 説明
media_source
te_ads_object.media_source
メディアチャネル
campaign
te_ads_object.campaign_name
広告キャンペーン名
af_adset
te_ads_object.ad_group_name
広告グループ名
af_ad
te_ads_object.ad_name
広告名

「設定ルール」をクリックして格納ルールの設定ページに移動し、必要な変更を行ってください。

イベントからユーザープロパティの変更が可能です。ユーザープロパティが頻繁に書き込まれるのを避けたい場合は「すべてのイベントを含める」をOFFに設定後、ソースイベント名を「install」へ変更することができます。このような設定ではTEシステムがAFから返されたインストールイベントから必要なフィールドだけ抽出後それらを書き込みます。デフォルトではuser_setOnce方式で保存されるため、最初に格納されたデータしか保存されません。

「プロパティマッピング」ボタンをクリック後ユーザープロパティへ書き込む必要があるフィールドを追加することができます。また、左側の「ルール」ボタンをクリックして新しいルールセットを追加することもできます。例えば、AFから送信された収益データから広告収益を抽出し、「user_add」という方法でユーザープロパティへ書き込んで各ユーザーの累計広告収益を記録したい場合などです。

すべてのルールを停止することでユーザープロパティの格納を停止できます。

# 2.4 データソース

データソースには、TEシステムがAFからのデータを受信するためのアドレスが表示されています。このアドレスを直接コピーし、AFコールバック設定を行う際にこのアドレスを入力してください。

このアドレスが表示されていない場合、右上のメニュー「プロジェクト管理」-「アクセス設定」-「データ送信先アドレス」へ進み、パブリックアドレスを設定してください。 このアドレスはTE SDKで設定されたデータ送信先アドレスです。 設定後AppsFlyer設定画面へ戻り「データソース」からアドレスをコピーしてください。

# AppsFlyer Push API 設定

TE側の設定が完了後、管理者アカウントでAFバックエンドへログインし「Integration」-「API Access」でPush APIセクションで以下の方法に従ってコールバックアドレスを設定してください。

  • Push API Version
    • 2.0ver を選択してください
  • HTTP method
    • TEシステムはPOSTとGETの両方の方法で送信をサポートしていますが、POST方式を選択することをお勧めします。
  • Endpoint URL
    • TEシステムのバックエンドのAppsFlyer設定ページの「データソース」からエンドポイントアドレスを取得し、直接貼り付けてください。
  • Event Messages
    • 少なくとも「インストール」イベントを選択する必要があります。他のアプリ内イベントを返す場合は、ここでチェックし、コールバックのアプリ内イベントにイベント名(In-app events)を入力してください。
  • Message Fields
    • メッセージフィールドには少なくとも以下の情報が含まれている必要があります:
      • アトリビューション関連フィールド:media_source、channel、af_adset、af_ad など
      • ユーザー識別ID:custom_data、customer_user_id、event_value など
      • イベントプロパティまたはユーザープロパティとして必要なフィールド
      • イベント関連フィールド:event_time_selected_timezone
  • In-app events
    • 必要に応じてイベントのコールバックを選択し「Event Messages」でInstall in-app eventsをチェックしてください。

::: caution 注意

Facebookのデータをコールバックする必要がある場合は、AFバックエンドのFacebookチャネル設定でFacebookデータ使用規約(Terms of Service (opens new window))に同意する必要があります。そうしないと、Facebookのユーザーレベルのデータを取得できません。

:::

# データ格納ルール

# 4.1 ユーザー識別ルール

TEシステムは「ユーザーの識別と関連付け」の設定に基づいて、コールバックデータをユーザー識別することができます。これによりAFから返信されたユーザーレベルのデータを対応するTEプロジェクトのユーザーに関連付けることができます。

以下はユーザー識別ルール:

  • アカウント ID:custom_dataにta_account_idが含まれているかを確認し、存在する場合はデータの#account_idとして使用し、存在しない場合は空白のままにします。
  • ゲスト ID:「customer_user_id」が存在するかどうかを確認し存在している場合は #distinct_id へ設定します。存在しない場合は「custom_data」フィールドへ「ta_distinct_id」が含まれているかを確認し含まれている場合 #distinct_id へ設定します。含まれていない場合は空白のままにしてください。
  • アカウントIDとゲストIDが両方空の場合、そのデータは無効なデータと見なされ直接破棄されます。

# 4.2 イベント格納ルール

  • ユーザー識別ルールに従って、イベントデータをTEユーザーに関連付けます。
  • 「event_time_selected_timezone」フィールドから時間とタイムゾーン情報を取得し、「#event_time」として時間、「#zone_offset」としてタイムゾーンを設定します。もしフィールドが空の場合は、「event_time」を「#event_time」として使用し、タイムゾーンは0に設定されます。
  • データイベント名は、そのイベントがAppsFlyerでのイベント名です。
  • コールバックリンクに設定された他のフィールドはすべて格納されます。

# 4.3 標準化フィールド

以下のイベントプロパティは標準化処理されます:

メタフィールド 標準化フィールド 説明
media_source
te_ads_object.media_source
メディアチャネル
monetization_network(マネタイズ)
te_ads_object.media_source
マネタイズチャネル
campaign
te_ads_object.campaign_name
広告キャンペーン名
af_c_id
te_ads_object.campaign_id
広告キャンペーンID
af_adset
te_ads_object.ad_group_name
広告グループ名
ad_unit(マネタイズ)
te_ads_object.ad_group_name
マネタイズ広告のUnit名
af_adset_id
te_ads_object.ad_group_id
広告グループ ID
af_ad
te_ads_object.ad_name
広告名
af_ad_id
te_ads_object.ad_id
広告 ID
placement(マネタイズ)
te_ads_object.placement
広告位置
af_cost_value
te_ads_object.cost
コスト
af_cost_currency
te_ads_object.currency
コスト通貨
event_revenue
te_ads_object.revenue
収益
event_revenue_currency(マネタイズ)
te_ads_object.currency
収益通貨
country_code
te_ads_object.country
国家地域コード
platform
te_ads_object.platform
プラットフォーム Android、iOS など
app_id
te_ads_object.app_id
APP ID
app_name
te_ads_object.app_name
APP 名

# 4.4 ユーザープロパティの格納ルール

  • ユーザー識別ルールに従って、イベントデータを対応するTEユーザーに関連付けます。
  • ユーザープロパティの格納ルールに基づいて、ユーザープロパティ設定ロジックをuser_set、user_setOnceまたはuser_addに決定します。
  • 指定されたイベントまたは全体のイベントから、ユーザープロパティに書き込む必要があるフィールドを取得し、指定されたプロパティ名とタイプでユーザーテーブルに書き込みます。

# 後続利用

# 5.1 データ格納検証

TEシステムがAFからのコールバックデータを受信したかどうかを確認してください。以下の方法に従って確認できます:

  • データ詳細の中で確認

「統合済み」のプラットフォームは、そのプラットフォームからデータを受信し、データがデータベースに格納されたことを示します。この時点で、「詳細」タブページで直近1000件の受信したデータを表示することができます。特定のレコードをクリックすると、変換前および変換後の情報など、そのデータの詳細情報を確認できます。また、そのレコードのデータをコピーまたはエクスポートしたり、「ダウンロード完了」という右上にあるボタンをクリックして全体的なデータをダウンロードすることもできます。

  • その他プロダクトモジュールで確認

「統合ページ」以外にも、「データ管理」ページでイベントの送信やユーザープロパティの作成状況を確認することができます。

イベント分析モデルやユーザープロパティ分析モデルなどで使用し、データが正しく格納されているかどうかをチェックすることもできます。

# 5.2 レポート提案

以下はレポートを構築するためのいくつかの提案です。

  1. イベント分析モデルではAFリアルタイムデータを使用して広告配信および収益化の主要指標を構築し、広告分析レポートを作成します。
  2. リテンション分析モデルでは、フィードバックデータを組み合わせた広告収益化とゲーム内課金イベントを考慮し、各メディアチャネルや広告キャンペーンなどの粒度においてLTVに含まれる広告収益を計算します。
  3. ファネル分析モデルにおいて、インストールイベントに新規ユーザー変換のファネルに追加し、メディアチャンネルや広告キャンペーンなどの粒度で異なるソースからのユーザーの変換状況を分析します。