# AppsFlyer Pull Raw Data
WARNING
データ統合によって生成されたデータは、クラスターのデータ消費量にカウントすることに注意してください。
# 概要
API名 | 統合タイプ | データ粒度 | アトリビューション | コスト | 収益 | 露出 | クリック | コンバージョン |
---|---|---|---|---|---|---|---|---|
Pull API Raw Data | API | ユーザーレベル | ✅ | ✅ | ✅ | ✅ |
Pull API Raw Data (opens new window)を取得すると、一定期間のユーザーレベルのデータを取得できます。この統合プランは、リアルタイム性が必要ではない場合にユーザー詳細データを取得するために使用され、またユーザー単位の過去データを取得するのに非常に適しています。
# 統合プロセス
- AppsFlyerクライアントSDK (opens new window)とTE SDKを接続し、AF SDKでTEのユーザー識別IDを設定します。
- AppsFlyerバックエンドにログインして、V2.0 API TokenとApp IDを取得します。
- TEバックエンドにログインし、サードパーティ統合モジュールに移動し、「AppsFlyer Pull Raw Data」プランを追加し、関連する設定を完了します。
- TEシステムがデータの受信およびレポート構築の完了したかどうか確認してください。
# クライアント SDK の設定
AppsFlyerデータを統合するための最初のステップは、TE SDKとAF SDKをクライアント側で連携させることです。AF SDK内でTEシステムのユーザー識別IDを設定します。
# 1.1 方法1(自動統合)
TIP
もしTE SDKのバージョンが2.8.0〜2.8.1である場合、このソリューションを直接使用することができます。 もしTE SDKのバージョンが2.8.2以上である場合、サードパーティのデータプラグインをインストールする必要があります。
このソリューションは自動統合ソリューションです。TEクライアントSDKの初期化後に、以下のコードを呼び出して有効にしてください。
詳細については、Android SDK接続ドキュメントとiOS SDK接続ドキュメントを参照してください。
// Initialize the TE SDK
ThinkingAnalyticsSDK instance = ThinkingAnalyticsSDK.sharedInstance(this, TA_APP_ID, TA_SERVER_URL);
// Enable AppsFlyer ID association
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);
// Initialize AppsFlyer SDK
AppsFlyerLib.getInstance().init("appid", null, this);
AppsFlyerLib.getInstance().start(this);
// It is strongly recommended that you use setcustomerUserId() to set the visitor ID again.
String distinctId = ThinkingAnalyticsAPI.GetDistinctId();
AppsFlyerLib.getInstance().setcustomerUserId(distinctId);
// After calling login and setting the account ID, data synchronization is required again (optional).
instance.login("account_id");
instance.enableThirdPartySharing(TDThirdPartyShareType.TD_APPS_FLYER);
TE SDKのlogin()メソッドまたはidentify()メソッドを呼び出した場合、enableThirdPartySharing()を再度呼び出してデータを同期する必要があります。
注意:AppsFlyer SDKのsetAdditionalData()メソッドも呼び出す必要がある場合、このメソッドは複数回呼び出されるため、以前のパラメーターが上書きされます。そのため、パラメーターをTE SDKに渡すことで、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
);
このソリューションの原理は、内部で自動的にAppsFlyerのsetAdditionalData()メソッドを呼び出し、TEプロジェクトのゲストIDとアカウントIDを渡すことです。
# 1.1 方法2(手動統合)
手動統合のソリューションでは、AppsFlyer SDKでsetAdditionalDataを使用してTEプロジェクトのゲストIDとアカウントIDを設定する必要があります。以下はJavaのコード例です:
// Get the visitor ID of TE, corresponding to #distinct_id in TE.
String distinctId = ThinkingAnalyticsAPI.GetDistinctId();
// Your account ID (or role ID) corresponds to #account_id in TE.
String accountId = "your_account_id";
// Deploy during activation
HashMap<String,Object> CustomDataMap = new HashMap<>();
CustomDataMap.put("ta_distinct_id",distinctId);
AppsFlyerLib.getInstance().setAdditionalData(CustomDataMap);
// It is strongly recommended that you use setcustomerUserId() to set the visitor ID again.
AppsFlyerLib.getInstance().setcustomerUserId(distinctId);
...
// Deployment during registration
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となります。
# API TokenとApp IDを取得する
# 2.1 API Token取得
管理者アカウントにログインし、「API Access」をAppsFlyerのサイドバーメニューで見つけ、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です。
# プラン構成
AppsFlyerのAPI ToとApp IDを取得した後、TEシステムにログインして、「サードパーティ統合」で新しいプランの設定を完了することができます。以下はAppsFlyer Pull Raw Dataの設定画面です。この章の内容に従ってプランを作成してください。
# 3.1 認証情報の設定
「認証情报」ボタンをクリックし、ポップアップ内にAPI TokenとApp IDを入力してください。
# 3.2 定期取得
「定期取得」で、AppsFlyer Pull Raw Data データのポリシーを設定することができます。特定の時間帯に毎日一定期間のデータを取得することができます。取得したデータもデータ量に含まれるため、長時間のデータを定期的に取得しないようお勧めします。
# 3.3 取得タイムゾーン
デフォルトでは、UTC+0が設定されている場合でも、取得するデータのタイムゾーンを設定できます。
# 3.4 ユーザー識別フィールド
AppsFlyer Pull Raw Dataのコールバックはユーザーレベルのデータであるため、ユーザー識別規則を設定する必要があります。つまり、AFからのデータと#distinct_idおよび#account_idに対応するフィールドを関連付けることです。TEシステムはこの設定に基づいて、コールバックデータを変換する際にこれらのフィールドをデータ内のユーザー識別フィールドとして設定します。
もし前述したクライアントSDKの設定手順に従っている場合は、以下の設定を使用してください:
- アカウントID:custom_data.ta_account_id
- ゲストID:customer_user_id, custom_data.ta_distinct_id
# 3.5 イベントデータの格納設定
データがイベントの形式で書き込まれるかどうかを制御することができます。閉じると、データはイベントテーブルに書き込まれないため、この設定を閉じないでください。
# 3.6 ユーザープロパティの格納ルール
デフォルトでは、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 | 広告名 |
「設定ルール」をクリックして格納ルールの設定ページに移動し、必要な変更を行ってください。
「プロパティマッピング」ボタンをクリック後ユーザープロパティへ書き込む必要があるフィールドを追加することができます。また、左側の「ルール」ボタンをクリックして新しいルールセットを追加することもできます。例えば、AFから送信された収益データから広告収益を抽出し、「user_add」という方法でユーザープロパティへ書き込んで各ユーザーの累計広告収益を記録したい場合などです。
すべてのルールを停止することでユーザープロパティの格納を停止できます。
# 3.7 統合構成
最後に、データの取得の詳細設定を統合構成モジュールでコントロールすることができます。データのタイプ、取得するディメンション、および格納後のイベント名などが含まれます。
統合設定の内容はJSON形式であり、以下の内容に従ってカスタム設定を行うことができます。
API | 名称 | 意味 |
---|---|---|
sink_event | event_mapping | 格納後のイベントはカスタムが可能 |
source | report_types | 取得するデータのタイプは、カスタマイズ可能であり、デフォルトでは installs、ad_revenue |
group_by | データのグループ化、リストタイプはカスタマイズ可能 | |
extra_params | double_columns | 数値タイプのフィールド定義は、ここに書かれたフィールドは数値タイプとしてデータベースに保存されます。保存後のフィールド名を入力してください。 |
デフォルトでは、Pull API Raw Data は以下のデータを取得できます。
source.group_by に必要なフィールドを記入することができます。さらなるサポートのフィールドについては、AppsFlyer 公式ウェブサイトのドキュメント (opens new window)もご覧いただけます。
# 3.8 データ格納ルール
Pull Raw Data データインターフェースは、さまざまなデータをデータベースに格納されます。各種データの処理ルールは以下の通りです:
- Installs データ
- user acquisition(UA)のみを含む Installs (opens new window) データとOrganic Installs (opens new window)データを取得します。
- データはイベント形式で書き込まれ、イベント名はaf_installです。
- データ内のevent_time、つまりイベントが発生した時刻をイベントの#event_timeとして使用します。
- デフォルトのユーザープロパティの格納ルールでは、Installs データの一部フィールドがユーザーテーブルに書き込まれます。
- ユーザー識別フィールドの設定に基づいて、ユーザーを識別します。ユーザー識別ルールが設定されていない場合は、データ内のcustomer_user_idをデフォルトのゲストIDとして使用します。ユーザー識別フィールドが取得できない場合、そのデータは破棄されます。
- すべてのフィールドはデータベースに保存され、double_column内のフィールドはデータ型で保存され、その他のフィールドは文字列で保存されます。
- Ad Revenue
- Attributed ad revenue (opens new window)、Organic ad revenue (opens new window)の取得ですが、 Attributed ad revenue (opens new window)ではuser acquisition(UA)とretargeting を同時に取得します。
- データはイベント形式で書き込まれ、イベント名は af_ad_revenue_raw です。
- データ内のevent_time、つまりイベント発生時刻をイベントの#event_timeとして使用します。
- ユーザー識別フィールドの設定に基づいて、ユーザーを識別します。ユーザー識別ルールが設定されていない場合は、データ内の customer_user_id をデフォルトのゲストIDとして使用します。ユーザー識別フィールドが取得できない場合、そのデータは破棄されます。
- すべてのフィールドはデータベースに保存されます。double_column内のフィールドはデータ型で保存され、他のフィールドは文字列で保存されます。
# 3.9 標準化フィールド
以下のイベント属性は標準化処理が行われます:
メタフィールド | 標準化フィールド | 説明 |
---|---|---|
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 名 |