AppsFlyer FAQ(セルフチェック版)
1. Push Api
1.1 SDKの初期化順序(必読)
ThinkingData & AF SDKは、次の手順に厳密に従って初期化とインターフェースの呼び出しを行う必要があります
- ThinkingDataクライアントSDKを初期化します
- 自動統合または手動統合のインターフェースを呼び出して、distinct_idをサードパーティイベントに設定します(設定コードは公式ドキュメントAppsFlyer Push APIを参照してください。本記事では説明を省略します)
- AF SDKを初期化します
1.2 AEの設定 - データソースのターミナルアドレスが空の場合の対処
- AE管理画面の「プロジェクト管理」—「プロジェクト構成」—「データアクセスアドレス」に、8991ポートのサーバーアドレスを追加します。アドレスは貴社の運用担当者にご確認ください。その後、AppsFlyerプラットフォームのターミナルアドレスが自動的に同期されます。
1.3 コールバックプランのステータスの詳細
1.3.1 ステータス1:エラー
-
「エラー」の原因
- AFコールバックプランの作成または更新後、2時間以内にデータのコールバックがない。
- 72時間以内にデータの統合はあるものの変換失敗がある、または72時間を超えて新しいイベントのコールバックがない。
-
変換失敗の原因の分析
-
データ変換に失敗した原因を確認するには、プランの右上にある「詳細」アイコンをクリックし、データ詳細で変換に失敗した原因を確認します
-
シナリオ:「データの変換が失敗しました。エラー詳細: ユーザーIDを関連付けることができません」
- 問題の原因1:ドキュメントの要件どおりにAEのユーザー識別子をAFイベントに割り当てていないため
- 問題の原因2:旧バージョンのAPPでユーザー識別子がAFイベントに設定されていない、またはThinkingData SDKが統合されていないため
- 具体的な調査手順については、サードパーティデータのコールバックでユーザー変換に失敗する場合のトラブルシューティングのベストプラクティスを参照してください
-
1.3.2 ステータス2:統合済
- プラットフォームの統合ステータスが「統合済」であれば、そのプラットフォームからデータを受信し、データが格納されていることを示します。この場合、統合ページまたは各プラットフォームの設定ページで「詳細データ」をクリックすると、受信した直近1000件のデータを確認できます:
1.3.3 ステータス3:アクセス待ち
- 設定完了後にAEへイベントがコールバックされない、またはプランの変更後にAEへ新しいデータがコールバックされない
1.4 AF-installとAE-ta_app_installのイベント数が一致しない問題
-
通常は、インストールイベントの収集ルールが異なることが原因です。
ta_app_installは、APPの新規インストールまたはアンインストール後の再インストールが行われるたびに1回トリガーされます。一方、af sdk installには一定のウィンドウ期間があり、ウィンドウ期間内にアンインストール・再インストールしてもインストールイベントは再送信されません。AFのウィンドウ期間については、次のドキュメントを参照してください:再アトリビューションのウィンドウ期間の詳細 -
もともと存在する差異以外のデータの差異は、次の手順で調査します(1、2、3の順に調査することをお勧めします):
使用するインターフェース アクティベーションの差異 アプリ内イベントの差異 Push API
1.比較するサンプリング期間が短すぎないか、比較するタイムゾーンが一致しているか
2.AE SDKまたはAppsFlyer SDKが統合されていないAppバージョンがないか
3. AEサーバーが受信したAppsFlyerのinstallイベントにCustom Data/Customer User Idフィールドが含まれ、値が空でなく正常か
4.AppsFlyerの管理画面でダウンロードしたローデータで、Custom Data/Customer User Idフィールドのキー名がta_account_id、ta_distinct_idになっているか
5.AppsFlyerの管理画面でダウンロードしたローデータで、Custom Data/Customer User Idフィールドに欠損値がないか
5.1 空でない場合は、Push APIのプッシュ設定でCustom Data/Customer User Idが選択されていません
5.2 空の場合は、クライアントSDKがCustom Data/Customer User Idを送信していません
6.AppsFlyer SDKでsetAdditionalData()またはsetCustomerUserId()によるta_account_idまたはta_distinct_idの送信の失敗率が高くないか
7.サーバーのセキュリティグループで、インバウンド方向の許可対象の設定を確認してください。また、すべてのAppsFlyerのIPアドレスをホワイトリストに追加することもできます
- AppsFlyerのイベントテーブルへのデータ格納の設定がオンになっているか
- 比較するサンプリング期間が短すぎないか、比較するタイムゾーンが一致しているか
- AE SDKまたはAppsFlyer SDKが統合されていないAppバージョンがないか
- コストの差異:Facebook、GoogleなどのSRNチャネルを統合していないか。これらのチャネルのコストデータはPush APIでは取得できません
- 収益の差異:収益を計上するイベントの名前を確認し、そのイベントをAppsFlyerがバッチで取得しているのか、リアルタイムで取得しているのかを確認します
1.5 コールバックイベントはすべて変換に成功しているのに、データが見つからないのはなぜですか
- プロジェクトで強検証モードが有効になっているかを確認してください。有効になっている場合は、いったんこのモードを無効にし、データが一定量コールバックされてから再度有効にすることをお勧めします。
- 強検証モードかどうかの確認方法:右上の設定ボタンをクリックし、「プロジェクト管理」をクリックして、「レポーティングデータ処理ルール」を確認します。
1.6 その他
1.6.1 チャネルmedia_sourceがrestrictedと表示される、または変換後のユーザープロパティにmedia_sourceしかない問題
- Google Install Referrerに基づいてAppsFlyerのAndroid FBユーザーレベルのデータを取得するソリューションを参照してください。
1.6.2 AppsFlyerのチャネルmedia_sourceが空なのに、キャンペーン名に値がある
- 通常は代理店の透明性に関係しています。代理店の透明性を有効にしてから、様子を見てください。詳しくはドキュメントを参照してください。
1.6.3 S2Sのデータを統合して変換するには
- AppsFlyer S2Sデータを統合する際は、後でAEユーザーと紐付けるために、クライアントSDKから取得したcustomer_user_idまたはcustom_dataフィールドを送信する必要があります。S2Sフィールドの送信の詳細については、AppsFlyerのモバイルデバイスのS2SイベントAPI(S2S-mobile)を参照してください
1.6.4 AppsFlyer Push APIのRaw dataをダウンロードするには
- AppsFlyerの管理画面に入り、ダッシュボード左側のナビゲーションバーからExport-Raw Data Exportに進みます。次に、organicと非organicのイベントを選択してcreateをクリックし、customizeを選択します。custom_dataフィールドにチェックを入れてから、データをダウンロードしてください
1.6.5 te_ads_objectプロパティの意味と、他のフィールドを格納できるか
te_ads_objectオブジェクトは標準化されたオブジェクトフィールドです。サードパーティプラットフォームごとにフィールド名は異なるものの意味が同じフィールドを、このオブジェクトにまとめて格納し、後続の分析に利用できるようにします。- 可能です。「ユーザープロパティの格納設定」モジュールで設定できます。ソースプロパティ名には変換前のフィールドを、ターゲットプロパティ名には格納するフィールド名を指定します
- 例:AFがコールバックしたローデータのフィールドidfaを
te_ads_objectオブジェクトにマッピングします。
- 例:AFがコールバックしたローデータのフィールドidfaを
2. Pull/Master/Cohort Api
2.1 取得頻度の設定に関する推奨事項
| API | 当日のデータの取得に対応しているか | 取得頻度の選び方 |
|---|---|---|
| Pull API | はい | リアルタイム性の要件がない場合は、毎日正午12時(UTC)にAppsFlyerの直近3-7日のデータを取得することをお勧めします。高いリアルタイム性が必要な場合は、毎時取得します。 |
Master API | いいえ | リアルタイム性の要件がない場合は、毎日正午12時(UTC)にAppsFlyerの過去3-7日のデータを取得することをお勧めします。高いリアルタイム性が必要な場合は、毎時取得します。 |
| Cohort API | いいえ | リアルタイム性の要件がない場合は、毎日正午12時(UTC)にAppsFlyerの過去3-7日のデータを取得することをお勧めします。高いリアルタイム性が必要な場合は、毎時取得します。 |
2.2 同じプランで複数のApp IDを設定するには?
- 下図のように、複数のApp IDを半角カンマ
,で区切るだけです
2.3 同じ時間範囲のデータを繰り返し取得すると、データが重複しますか?
- 同じ時間範囲のデータを複数回取得しても、データが重複することはありません。同じ時間範囲のデータは、新しいデータで全体が上書きされます
2.4 取得するイベント名を変更するには?
-
Pull Api
- partnerデータを取得するよう設定している場合は、
event_mappingオブジェクトのpartnerに対応する値を変更してください。 - geoデータを取得するよう設定している場合は、
event_mappingオブジェクトのgeoに対応する値を変更してください。
- partnerデータを取得するよう設定している場合は、
-
Master Api
- event_nameに対応する値を変更するだけです
-
CohortApi
- event_nameに対応する値を変更するだけです
2.5 データの取得の成功・失敗を確認する方法
- 設定が完了したら、プランの右上にある「一回取得」をクリックします。取得結果は内部メッセージで通知されます。
- 取得成功の例
- 取得失敗の例
2.6 タイムゾーンを指定してAFデータを取得する設定
-
extra_params - timezoneの設定を追加します。完全な例は次のとおりです
ヒント-
注意点:
-
afで設定するタイムゾーンは、AFの管理画面で設定したタイムゾーンと一致している必要があります
-
AEの管理画面に設定するタイムゾーンは、urlencode(http://www.jsons.cn/urlencode/)で変換する必要があります:
- China - Shanghaiの - を / に変換します
- その後urlencode(http://www.jsons.cn/urlencode/)で変換します
-
- AF公式サイトの説明
- 例
-
{"extra_params": {"timezone": "China%2FShanghai"},"sink_event": {"event_mapping": {"geo": "appsflyer_geo_data","partner": "appsflyer_partner_data"}},"sink_user": [],"source": {"report_types": ["partner"]},"transfer": {"fields_whitelist": [" 。。。。"],"double_columns": [" 。。。。"]}}
-
-
2.7 SKANデータのコールバックに対応していますか?
- 現在は非対応:iOSプラットフォームの制限により、現在はAEのユーザー識別子をSKANイベントに設定できません
2.8 よくある取得エラーと対処方法
-
Create event and props failed!
- このエラーは通常、初めてデータを取得するとき、またはプランに取得フィールドを追加したときに発生します。サーバーの過負荷によって新しいフィールドの作成に失敗し、エラーが発生する可能性があります。10分ほど待ってから、再度データの取得をお試しください。問題が解決しない場合は、連絡用グループ内のThinkingAIのカスタマーサクセスマネージャー(CSM)またはThinkingAIの技術担当者にお知らせください。
画像がありません:img-7250795c0df5 -
Get thirdparty data failed! The possible error is: AppsFlyer - Page Not Found
- 考えられる原因1:AF cohort & master APIはAFの有料APIです。関連する権限が有効になっているかを確認してください。
- 考えられる原因2:誤ったAppIDが入力されている可能性があります。AEのプランで設定したAppIDが、AFの管理画面で提供されているものと一致しているかを確認してください。
- 考えられる原因3:App IDがAppsFlyer側でまだ公開されておらず、テスト状態のままになっています。
- 上記のいずれにも該当しない場合は、連絡用グループ内のThinkingAIのカスタマーサクセスマネージャー(CSM)またはThinkingAIの技術担当者にお知らせください。
画像がありません:img-504127009267
2.9 その他
2.9.1 取得したデータがAppsFlyerのダッシュボードのデータと一致しない問題
-
AppsFlyerで照合している指標が、AEの管理画面で照合しているデータ指標と同じかを確認します。
- ディメンションの違いやパラメータの設定によってデータに差異が生じていないかを分析します
- 選択したアプリ/コストチャネルが一致していない
-
AppsFlyerプラットフォームのダッシュボードのデータのタイムゾーンと、プランで取得する際のタイムゾーンが一致しているかを確認します(プランはデフォルトでUTCタイムゾーンでデータを取得します)
-
AppsFlyer APIのデータには遅延や更新による変動があります。一部の日付のデータが不正確な場合は、プランの右上にある「一回取得」をクリックして再取得を試してください。
-
上記を確認しても解決しない場合は、ThinkingAIのテクニカルサポートに調査を依頼してください。
2.9.2 AppsFlyerのコントロールパネルのコホート分析レポートの収益データと、Master APIで取得したデータが一致しない問題
- 下図のように、AppsFlyerのコホートダッシュボードで確認できる収益データは、アクティベーション後の累計値です。Cohort APIを呼び出してデータを取得し、照合する必要があります。
画像がありません:img-e47832d7ddef
2.9.3 Cohort APIで取得したデータで、FBチャネルにcostの値がない問題
- costは集計データではないため、グループ化項目によってデータに差異が生じる場合があります。たとえば、GeoとChannelを同時にグループ化項目にすると、FBのcostの値は0になります。AF公式ドキュメントの説明:コスト指標は一部のグループ化ディメンションと組み合わせることができません。たとえば、FacebookのデータはGeo(国/地域)またはChannel(流入元)でグループ化できますが、この2つのディメンションを同時に組み合わせてグループ化することはできません。使用できるグループ化ディメンションの組み合わせは、広告プラットフォームによって異なります。詳しくはThinkingAIのテクニカルサポートにお問い合わせください。
2.9.4 Cohort APIで取得したデータで、applovinチャネルにcostの値がない問題
- group_byを "date","c","pid" に設定して、costデータがあるかを確認します。
2.9.5 AppsFlyer Master APIの直近7日のcostデータがAFの管理画面の概要ダッシュボードと一致しない
- AFの管理画面で照合する概要ダッシュボードでは、ビュータイプを「ユーザー獲得」、つまりアクティベーションしたユーザーのデータでフィルタリングする必要があります。Master APIはアクティベーションしたユーザーのコストデータの取得にのみ対応しています。詳しくはドキュメントhttps://support.appsflyer.com/hc/zh-cn/articles/213223166#limitationsを参照してください
補足の質問
一部のデータがwithout_idと表示される
- without_idのApp versionが一致しているかを確認します
- 最新バージョンのアプリでもwithout_idが発生しているかを確認します
- クライアントのID紐付けのロジックを確認し、ThinkingData SDKの初期化→AFへのIDの受け渡し→AF SDKの初期化の順になっていることを確認します
AFからAdjustに切り替える際の注意点
- ゲストIDをAdjustに割り当てる必要があります(新しいバージョンのリリースが必要)
- コストデータはAdjust Report APIで統合することをお勧めします
- Facebookで広告を配信している場合は、Adjustリアルタイムコールバックの付録を参照して、Facebookの詳細な広告情報を設定する必要があります
AEのFBチャネルのユーザーデータがAFの管理画面より多い
- 原因:
installイベントとaf_app_installイベントは、どちらもAFプラットフォームからAEにコールバックされたデータです。AFプラットフォームでは、この2つのイベントは同じ種類の行動を異なるデータソースから集計したものです - 解決:イベントの定義を区別するよう注意してください
AF revenue raw dataの取得に失敗する
- 原因:group byの設定の問題
- 解決:group byの設定を確認し、
gp_install_begin、campaign_type、att、keyword_match_type、conversion_typeなどの必要なフィールドが含まれていることを確認します
AF pull raw dataがtimezoneフィールドに対応していない
- Pull API raw dataインターフェースはタイムゾーンの設定に対応していません
AFでリターゲティングのコストを取得する
- リターゲティングのコスト、またはリターゲティングのコストを含むデータは、Cohort APIで取得する必要があります
AF metaデータのcountryが0で取得される
- 原因:設定にevent_mappingがない
- 解決:標準の設定に置き換え、プランを保存してから再取得します。まず今日1日分のデータを取得し、成功してから履歴データを取得します
AF masterのFBのコストが一致しない
- 原因:ドキュメントでは、geoとchannelを同時に渡すことはできないとされています
- 解決:両方とも削除すると、AFの管理画面と一致します
設定の補足
格納フィールドのホワイトリスト(fields_whitelist)を追加するには
transferにfields_whitelistを追加します。形式は["field_1", "field_2"]で、格納するフィールドを制御するために使用します:
"transfer": {
"double_columns": ["impressions", "installs", "loyal_users"],
"fields_whitelist": ["agency_pmd_af_prt", "app_id", "arpu"]
}
Master APIのタイムゾーンを設定するには
Master APIのデフォルトはUTCタイムゾーンです。extra_paramsでtimezoneをpreferred(アプリのタイムゾーン)に設定できます:
"extra_params": {"timezone": "preferred"}
Cohort APIのタイムゾーンを設定するには
preferred_timezoneのデフォルトはtrue(アプリのタイムゾーン)です。UTCタイムゾーンに設定するには、preferred_timezoneをfalseにし、custom_properties(base64エンコード)を使用します:
"extra_params": {
"custom_properties": "eyJwcmVmZXJyZWRfdGltZXpvbmUiOmZhbHNlfQ"
}
Cohortで総コストを取得するには
総コスト(リターゲティングのcostデータを含む)を取得するには、{"cohort_type":"unified"}を設定します:
"extra_params": {
"custom_properties": "eyJjb2hvcnRfdHlwZSI6InVuaWZpZWQifQ=="
}
Cohortの集計タイプを設定するには
aggregation_type=on_dayの場合は、ユニークなsessionデータ(sessions_unique_users_day_*など)が返されます。このとき、partial_dataはfalseにする必要があります:
{"extra_params": {"aggregation_type": "on_day", "partial_data": "false"}}
エラーの補足
AF Pull APIで403 Limit reached for partners-reportエラーが発生する
- AFではAPIの取得に頻度制限があるため、取得頻度の管理に注意してください。
AF pull raw data revenueのリクエストに失敗する
- campaign_type、att、keyword_match_type、conversion_typeなどの無効なフィールドを削除する必要がある場合は、group byの設定を確認して調整してください。

