AppsFlyer Pull Raw Data
サードパーティデータ統合によって生成されたデータは、クラスターの消費データ量に含まれますのでご注意ください
概要
インターフェースの概要
| インターフェース名 | タイプ | 粒度 | アトリビューション | コスト | 収益 | 表示 | クリック | コンバージョン |
|---|---|---|---|---|---|---|---|---|
| Pull API Raw Data | API | ユーザーレベル | ✅ | ✅ | ✅ |
Pull API Raw Dataは、一定期間内のユーザーレベルのデータを取得できます。この統合方法では、リアルタイム性が求められない場合にユーザーの詳細データを取得できるほか、ユーザー粒度の履歴データの取得にも非常に適しています。
統合の流れ
- AppsFlyerクライアントSDKとAE SDKを統合し、AF SDKでAEのユーザー識別IDを設定します
- AppsFlyer管理画面にログインし、V2.0 API TokenとApp IDを取得します
- AE管理画面にログインし、サードパーティ統合モジュールでAppsFlyer Pull Raw Dataプランを追加して、関連する設定を完了します
- AEシステムがデータを正常に受信しているかを確認し、レポートを作成します
1. クライアントSDKの設定
AppsFlyerのデータを統合する最初のステップは、クライアント側でAE SDKとAF SDKを連携させ、AF SDKでAEシステムのユーザー識別IDを設定することです
1.1 方法1(自動統合)
- 統合しているAE SDKのバージョンが2.8.0~2.8.1の場合は、このプランをそのまま使用できます
- 統合しているAE SDKのバージョンが2.8.2以上の場合は、サードパーティデータプラグインもインストールする必要があります。詳しくはAndroid SDK サードパーティデータとiOS SDK サードパーティデータを参照してください
// AE SDKを初期化
TDConfig config = TDConfig.getInstance(this, APPID, TE_SERVER_URL);
TDAnalytics.init(config);
// AppsFlyer IDの関連付けを有効化
TDAnalytics.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);
// AppsFlyer SDKを初期化
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);
// setcustomerUserId()でゲストIDをもう一度設定することを強くお勧めします
String distinctId = TDAnalytics.GetDistinctId();
AppsFlyerLib.getInstance().setcustomerUserId(distinctId);
// loginを呼び出してアカウントIDを設定した後、再度データを同期する必要があります(任意)
TDAnalytics.login("account_id");
TDAnalytics.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);
AE SDKのlogin()メソッドまたはidentify()メソッドを呼び出した場合は、再度enableThirdPartySharing()を呼び出してデータを同期する必要があります。
注意:AppsFlyer SDKのsetAdditionalData()メソッドも呼び出す必要がある場合、このメソッドは複数回呼び出すと以前のパラメータが上書きされるため、パラメータをAE SDKに渡すことができます。AE SDKが内部でパラメータを連結・マージします。
Map<String, Object> additionalData = new HashMap<>();
additionalData.put("af_test_key1", "test1");
additionalData.put("af_test_key2", "test2");
TDAnalytics.enableThirdPartySharing(
TDThirdPartyShareType.TD_APPS_FLYER,
additionalData
);
このプランの仕組みは、内部でAppsFlyerのsetAdditionalData()メソッドを自動的に呼び出し、AEプロジェクトのゲストIDとアカウントIDを渡すというものです。
1.2 方法2(手動統合)
手動統合の方法では、AppsFlyer SDKでsetAdditionalDataを使用してAEプロジェクトのゲストIDとアカウントIDを設定する必要があります。以下はJavaのコード例です:
// AEのゲストIDを取得(AEの#distinct_idに対応)
String distinctId = TDAnalytics.GetDistinctId();
// アカウントID(またはキャラクターID)。AEの#account_idに対応
String accountId = "your_account_id";
// アクティベーション時に実装
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id",distinctId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);
// setcustomerUserId()でゲストIDをもう一度設定することを強くお勧めします
AppsFlyerLib.getInstance().setcustomerUserId(distinctId);
...
// 登録時に実装
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と等しくなります。
2. API TokenとApp IDの取得
2.1 API Tokenの取得
管理者アカウントでログインし、AppsFlyerのサイドバーメニューで「API Access」を見つけて、Pull API Raw Data用のV2.0 API Tokenを取得してください。
2.2 App IDの取得
AppsFlyer管理画面の「My Apps」で、アプリのApp IDを確認できます。Androidではcom.で始まり(例:com.demoapp.ta)、iOSではidで始まります(例:id12345678)
3. プランの設定
AppsFlyerのAPI TokenとApp IDを取得したら、AEシステムにログインし、「サードパーティ統合」モジュールで新しいプランの設定を行います。下図はAppsFlyer Pull Raw Dataの設定画面です。本章の内容に従ってプランを作成してください:
3.1 認証情報の設定
「認証情報」の下にある「認証情報設定」ボタンをクリックし、ポップアップにAPI TokenとApp IDを入力します
3.2 定期取得
「定期取得」モジュールで、AEシステムがAppsFlyer Pull Raw Dataのデータを定期的に取得する方針を設定できます。毎日の特定の時刻に一定期間のデータを取得するよう選択でき、1回あたり最大31日分を取得できます。取得したデータもデータ量に計上されるため、定期取得で長すぎる期間のデータを取得しないことをお勧めします
3.3 取得タイムゾーン
取得するデータのタイムゾーンも設定できます。デフォルトはUTC+0です
3.4 ユーザー識別フィールド
AppsFlyer Pull Raw Dataがコールバックするのはユーザーレベルのデータであるため、ユーザー識別ルール、つまりAFのコールバックデータ内で#distinct_idと#account_idに対応するフィールドを設定する必要があります。AEシステムはこの設定に基づき、コールバックデータを変換する際に、これらのフィールドをデータ内のユーザー識別フィールドとして設定します。
本ドキュメントの前のステップに従ってクライアントSDKを設定した場合は、次の設定を使用してください:
- アカウントIDの関連フィールド:custom_data.ta_account_id
- ゲストIDの関連フィールド:customer_user_id,custom_data.ta_distinct_id
3.5 格納設定
データをイベントとして書き込むかどうかを制御できます。オフにすると、データはイベントテーブルに書き込まれなくなるため、この設定はオフにしないでください。
3.6 ユーザープロパティの格納設定
デフォルトでは、AEシステムはAFのコールバックデータ内のアトリビューションフィールドを、標準化処理後のユーザープロパティに自動的に書き込みます。ユーザープロパティに書き込まれるフィールドとその意味は次のとおりです:
| AppsFlyerのフィールド | 標準化フィールド | 説明 |
|---|---|---|
| media_source | te_ads_object.media_source | メディアチャンネル |
| campaign | te_ads_object.campaign_name | 広告キャンペーン名 |
| adset | te_ads_object.ad_group_name | 広告グループ名 |
| ad | te_ads_object.ad_name | 広告名 |
旧バージョンのユーザープロパティ格納のデフォルトルールは現在と異なるため、ご注意ください。新旧のプロパティを統合する必要がある場合は、仮想プロパティ機能を使用できます
変更が必要な場合は、「設定ルール」をクリックして格納ルールの設定ページに移動します。下図のとおりです:
「プロパティのマッピング」ボタンをクリックして、ユーザープロパティに書き込むフィールドを追加できます。また、左側の「ルール」ボタンをクリックして新しいルールを追加することもできます。たとえば、AFからコールバックされたマネタイズデータから広告収益を抽出し、user_addの方式でユーザープロパティに書き込むことで、各ユーザーの累計広告収益を記録できます。
ユーザープロパティの格納を無効にしたい場合は、すべてのルールを停止します:
3.7 統合構成
最後に、統合構成モジュールで、データ取得の詳細な設定を制御できます。データのタイプ、取得するディメンション、格納後のイベント名などが含まれます。
統合構成の内容はJSONです。次の内容に従ってカスタム設定できます:
| モジュール | 名前 | 意味 |
|---|---|---|
| sink_event | event_mapping | 格納後のイベント名。カスタマイズ可能 |
| source | report_types | 取得するデータのタイプ。カスタマイズ可能で、デフォルトはinstalls、ad_revenue(インストールイベントとマネタイズイベント)です |
| group_by | データ内のグループ化ディメンション。リスト型。カスタマイズ可能 | |
| extra_params | double_columns | 数値型フィールドの定義。ここに記述したフィールドは数値型で格納されます。格納後のフィールド名を入力する必要があります |
デフォルトでは、Pull API Raw Dataは以下のデータの取得に対応しています:
AppsFlyer公式ドキュメントで、対応しているその他のフィールドを確認することもできます。必要なフィールドはsource.group_byに記入できます
3.7.1 デフォルトの対象指標
| フィールド | 画面表示名 |
|---|---|
| event_value | イベント値 |
| event_revenue | イベント収益 |
| event_revenue_usd | イベント収益(USD) |
| cost_value | コスト値 |
3.7.2 デフォルトのディメンションフィールド
| フィールド | 画面表示名 |
|---|---|
| attributed_touch_time | アトリビューション時刻 |
| install_time | アクティベーション時刻 |
| event_time | イベント時間 |
| event_name | イベント名 |
| event_value | イベント値 |
| event_revenue | イベント収益 |
| event_revenue_currency | イベント収益の通貨タイプ |
| event_revenue_usd | イベント収益(USD) |
| event_source | イベントソース |
| is_receipt_validated | レシートが検証済みかどうか |
| partner | パートナー |
| media_source | メディアチャンネル |
| channel | サブチャンネル |
| keywords | キーワード |
| campaign | 広告キャンペーン名 |
| campaign_id | 広告キャンペーンID |
| adset | 広告グループ名 |
| adset_id | 広告グループID |
| ad | 広告クリエイティブ名 |
| ad_id | 広告クリエイティブID |
| ad_type | 広告タイプ |
| site_id | サイトID |
| sub_site_id | サブサイトID |
| sub_param_1 | サブパラメータ1 |
| sub_param_2 | サブパラメータ2 |
| sub_param_3 | サブパラメータ3 |
| sub_param_4 | サブパラメータ4 |
| sub_param_5 | サブパラメータ5 |
| cost_model | コストモデル (CPC/CPI/CPM/Other) |
| cost_value | コスト値 |
| cost_currency | コストの通貨タイプ |
| contributor_1_partner | コントリビューター1のパートナー |
| contributor_1_media_source | コントリビューター1のメディアチャンネル |
| contributor_1_campaign | コントリビューター1のキャンペーン |
| contributor_1_touch_type | コントリビューター1のアトリビューションタイプ |
| contributor_1_touch_time | コントリビューター1のアトリビューション時刻 |
| contributor_2_partner | コントリビューター2のパートナー |
| contributor_2_media_source | コントリビューター2のメディアチャンネル |
| contributor_2_campaign | コントリビューター2のキャンペーン |
| contributor_2_touch_type | コントリビューター2のアトリビューションタイプ |
| contributor_2_touch_time | コントリビューター2のアトリビューション時刻 |
| contributor_3_partner | コントリビューター3のパートナー |
| contributor_3_media_source | コントリビューター3のメディアチャンネル |
| contributor_3_campaign | コントリビューター3のキャンペーン |
| contributor_3_touch_type | コントリビューター3のアトリビューションタイプ |
| contributor_3_touch_time | コントリビューター3のアトリビューション時刻 |
| region | 地域 |
| country_code | 国コード |
| state | 州/省 |
| city | 都市 |
| postal_code | 郵便番号 |
| dma | DMAコード |
| ip | IPアドレス |
| wifi | Wi-Fiが有効かどうか |
| operator | モバイルキャリア |
| carrier | 携帯電話キャリア |
| language | 言語 |
| appsflyer_id | AppsFlyer ID |
| advertising_id | Advertising ID |
| idfa | IDFA |
| android_id | Android ID |
| customer_user_id | Customer User ID |
| imei | IMEI |
| idfv | IDFV |
| platform | プラットフォーム |
| device_type | デバイスタイプ |
| os_version | OS |
| app_version | アプリバージョン |
| sdk_version | SDKバージョン |
| app_id | App ID |
| app_name | アプリ名 |
| bundle_id | Bundle ID |
| is_retargeting | リターゲティングかどうか |
| retargeting_conversion_type | リターゲティングのコンバージョンタイプ |
| attribution_lookback | アトリビューションLookback |
| reengagement_window | リエンゲージメントウィンドウ |
| is_primary_attribution | プライマリアトリビューションかどうか |
| user_agent | ユーザーエージェント |
| http_referrer | HTTP Referrer |
| original_url | 元のURL |
3.7.3 デフォルト設定に追加された追加フィールド
この部分は、統合構成のsource.group_byで調整できます
| フィールド | 画面表示名 |
|---|---|
| device_model | 機種 |
| keyword_id | AFのキーワードID |
| store_reinstall | 再インストール時のアプリストア |
| deeplink_url | Deeplinkのアドレス |
| oaid | OAID |
| install_app_store | インストール時のアプリストア |
| contributor1_match_type | コントリビューター1のマッチングモード |
| contributor2_match_type | コントリビューター2のマッチングモード |
| contributor3_match_type | コントリビューター3のマッチングモード |
| match_type | アトリビューションのマッチングモード |
| device_category | デバイスカテゴリー:スマートフォン、ノートPC、その他 |
| gp_referrer | Google PlayのURL referrer |
| gp_click_time | Google Playが記録した広告クリック時刻 |
| gp_install_begin | Google Playが記録したインストール時刻 |
| amazon_aid | AmazonのデバイスID |
| keyword_match_type | キーワードのマッチングモード |
| att | iOS 14以降のATTステータス |
| conversion_type | タイプを変換 |
| campaign_type | キャンペーンタイプ |
| is_lat | ユーザーがデータトラッキングを制限しているかどうか。trueの場合、IDFAまたはGAIDはすべて0に置き換えられます |
| custom_data | Custom Data。ユーザー識別フィールドの取得に使用 |
3.8 データの格納ルール
Pull Raw Dataのデータインターフェースは複数の種類のデータを格納します。各データの処理ルールは次のとおりです:
-
Installsデータ
- user acquisition(UA)のみを含むInstallsデータとOrganic Installsデータを取得します
- データはイベントとして書き込まれ、イベント名はaf_installです
- データ内のevent_time(イベントの発生時刻)を、イベントの#event_timeとして使用します
- デフォルトのユーザープロパティの格納ルールにより、Installsデータの一部のフィールドがユーザーテーブルに書き込まれます
- ユーザー識別フィールドの設定に基づいてユーザー識別フィールドを決定します。ユーザー識別ルールが設定されていない場合は、デフォルトでデータ内のcustomer_user_idをゲストIDとして使用します。ユーザー識別フィールドを取得できなかった場合、そのデータは破棄されます。
- すべてのフィールドが格納されます。double_columnsのフィールドは数値型で格納され、その他のフィールドは文字列で格納されます
-
Ad Revenue
- Attributed ad revenue、Organic ad revenueを取得します。このうちAttributed ad revenueでは、user acquisition(UA)とretargetingの両方のデータを取得します
- データはイベントとして書き込まれ、イベント名はaf_ad_revenue_rawです
- データ内のevent_time(イベントの発生時刻)を、イベントの#event_timeとして使用します
- ユーザー識別フィールドの設定に基づいてユーザー識別フィールドを決定します。ユーザー識別ルールが設定されていない場合は、デフォルトでデータ内のcustomer_user_idをゲストIDとして使用します。ユーザー識別フィールドを取得できなかった場合、そのデータは破棄されます。
- すべてのフィールドが格納されます。double_columnsのフィールドは数値型で格納され、その他のフィールドは文字列で格納されます
3.9 標準化フィールド
次のイベントプロパティは標準化処理されます:
| 元フィールド | 標準化フィールド | 意味 |
|---|---|---|
| media_source | te_ads_object.media_source | メディアチャンネル |
| monetization_network(広告マネタイズデータ) | te_ads_object.media_source | マネタイズチャンネル |
| campaign | te_ads_object.campaign_name | 広告キャンペーン名 |
| campaign_id | te_ads_object.campaign_id | 広告キャンペーンID |
| adset | te_ads_object.ad_group_name | 広告グループ名 |
| ad_unit(広告マネタイズデータ) | te_ads_object.ad_group_name | マネタイズ広告のUnit名 |
| adset_id | te_ads_object.ad_group_id | 広告グループID |
| ad | te_ads_object.ad_name | 広告名 |
| ad_id | te_ads_object.ad_id | 広告ID |
| segment(広告マネタイズデータ) | te_ads_object.placement | 広告の配置 |
| 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 | アプリID |
| app_name | te_ads_object.app_name | アプリ名 |

