概要:コホートレポートAPIは、プログラム的にコホートデータを取得する方法を広告主に提供します。APIを使用して、コホートデータをBI、およびマーケティングオートメーションシステムに統合できます。
コホートレポートAPI
コホートレポートAPIは、AppsFlyerプラットフォームからコホートキャンペーンパフォーマンスデータを取得するために使用されます。これはコホート管理画面と機能的に同等です。
関連記事:コホートの種類の違い
開発者向けの考慮事項
- 日付:日付または日付期間は生涯価値 (LTV) の日付であり、つまりユーザーが計測された日(コンバージョン日)で、アクティビティが発生した日ではありません。
- ブーリアン値:tue または falseです(大文字と小文字を区別)。
- 情報開示と開示しない代理店のトラフィック:代理店が運用するメディアソースのトラフィックは常に代理店名であり、元のメディアソースではありません。現時点では、コホートのUIバージョンの動作は異なります。
- 単一アプリ:コホートAPIは単一アプリ向けのソリューションです。これは、1つのコールで複数アプリをサポートするコホート管理画面とは対照的です。
- データ更新頻度:特定と制限事項を参照してください。
APIの手順
このセクションには、コホートAPIを生成し使用するために必要な情報が含まれます。
コホートAPIの仕様
オーバービュー | APIコールは、パス、ヘッダー、データクエリを含むJSONで構成されます。デフォルトでは、データはCSVファイルで出力されます。 |
パス |
|
パスのパラメータ(必須) |
|
クエリパラメータ― (オプション) |
結果はCSV または JSONで取得されます。CSVファイルの構造はテーブル形式ですが、JSONの構造はレコード形式です。 |
HTTP メソッド | POST |
受け入れ可能なcontent types | application/json |
Authorization |
|
日付の制限 |
|
レート制限 |
|
ブーリアン値 | 常に小文字で:true、false |
リクエストヘッダー
Key |
value | 必須 |
---|---|---|
Content-Type | application/json |
はい |
Authorization | Bearer api_token_placeholder |
はい |
Accept | application/json |
はい |
フィルターとグループ化のパラメーター
次のフィルターパラメーターを使用して、必要なデータを取得します。
項目 |
説明 | 必須 |
---|---|---|
cohort _type |
コホートアトリビューション (コンバージョン) タイプは、次のいずれかです :
|
はい |
min_cohort_size |
最小コホートサイズは、小数ユーザーのみを含むコホートを除外することで、返されるレコード数を減らすために使用されます。つまり、ユーザー のKPI は、指定された値と同等かより大きい値を持つことを意味します。
|
いいえ |
from |
LTVアトリビューション日付期間の下限。過去データのサポート範囲は、現在から730日前までです。
|
はい |
to |
LTVアトリビューション日付期間の上限。
|
はい |
granularity |
過去72時間分の1時間ごとの粒度。
"granularity": "hour",
"from": "2021-12-01 14:00:00", "to": "2021-12-03 11:00:00",
|
いいえ |
partial_data |
データの歪みや誤解釈を避けるために、コホートは完全な日のデータを返します。ただし、日数未満のデータが役に立つことがあります。 クエリに対する完全なコホート日数は、今日の日付と to の日付の差として計算されます。
例:5月10日に、4月1日~30日の間にコンバージョンがあったユーザーの完全なコホート日数は、10です。
注:部分的なデータは、集計タイプが累積的な場合にのみ許可されます。 |
いいえ |
filters |
返されたデータと期間の日数を絞り込みます。フィルタのディメンション一覧からフィルタを選択します。
|
いいえ |
次のグループ化パラメーターを使用して、追加の列を含め、レポートの粒度を下げます。
パラメータ名 |
値 | 必須 |
---|---|---|
groupings |
|
はい |
KPIの選択とフォーマット
- この表では、利用できるKPIのリストとそれに関する関数を示しています。KPIを呼び出すとそのすべての関数が返されます。
- 次のKPIは常に返されます:users、ecpi、cost
- コールごとに追加KPIを1つ選択します。
関数 | ||||||
---|---|---|---|---|---|---|
デフォルト/オプション | KPI (ディメンション名) | カウント | cvr (コンバージョン率) | 評価 | 合計 | ユニークユーザー |
数値 | 割合 | 割合 | 数値 | 数値 | ||
常に | ユーザー | Y | - | - | - | - |
常に | eCPI | - | - | Y | - | - |
常に | cost | - | - | - | Y | - |
オプション | "event_name" (4) |
Y | Y | - | Y (3) | Y |
オプション | revenue | Y | - | - | Y | - |
オプション | ROAS(広告費回収率) | - | - | Y | - | - |
オプション | ROI | - | - | Y | - | - |
オプション | sessions | Y | - | Y | - | Y(1) |
オプション | uninstalls (2) | Y | - | Y | - | - |
(1) aggregation_type=on_day の場合、ユニークセッションが返されます。 (2) cohort_type=unified の場合は利用できません。 (3) 合計とは、イベントで発生した収益の合計を意味します。レポートでは、これを (4) 注!イベント名は大文字小文字を区別します。 |
パラメータ名 |
値 | 必須パラメータ |
---|---|---|
KPI |
使用可能なKPIからKPIを1つ選択します。 将来的に複数のKPIが選択可能になる予定です。
|
はい |
KPI関数のプレゼンテーション
次の KPI 形式パラメーターは、返される KPI の形式を設定します。
パラメータ名 |
値 | 必須 |
---|---|---|
preferred_currency |
KPIの収益通貨
|
いいえ |
preferred_timezone |
データ範囲のタイムゾーン
|
いいえ |
aggregation_type |
|
はい |
per_user |
KPI関数をアプリユーザー数で割ります。関連するKPIのみに適用されます。
|
いいえ |
グループ化とフィルタのディメンション一覧
ディメンション名 |
ディメンションAPI値 |
グループ |
フィルター |
---|---|---|---|
広告 |
af_ad |
Y |
Y |
Ad ID |
af_ad_id |
Y |
Y |
Campaign |
c |
Y |
Y |
Campaign ID |
af_c_id |
Y |
Y |
チャネル |
af_channel |
Y |
Y |
Media Source |
pid |
Y |
Y |
Sub Param 1 |
af_sub1 |
Y |
Y |
Keywords |
af_keywords |
Y |
Y |
代理店 |
af_prt |
Y |
Y |
コンバージョンタイプ (1) |
cohort _type |
Y |
Y |
サイトID |
site_id |
Y |
Y |
収益タイプ (2) |
revenue_type |
x |
Y |
アトリビューションタッチタイプ (3) |
attributed_touch_type |
Y |
Y |
Adset |
af_adset |
Y |
Y |
Adset ID |
af_adset_id |
Y |
Y |
国 |
geo |
Y |
Y |
日付(選択したcohort_typeのコンテキストでのインストール/リアトリビューション/リエンゲージメント日) |
date |
Y |
x |
期間 |
period
|
x |
Y |
注意: ディメンションのオプション: (1) コンバージョンタイプ:
(2) 収益タイプ: click , impression , TV , pre-installed
|
Curl の例
この例には、完全なAPIコールが含まれています。
curl -L -X POST 'https://hq1.appsflyer.com/api/cohorts/v1/data/app/<insert your app_id here>?format=<insert results format here>' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <cohort_api_token_placeholder. Note the token has more than 700 characters.>' \
-H 'Accept: application/json' \
--data-raw '{
"cohort_type": "user_acquisition",
"min_cohort_size": 1,
"preferred_timezone": false,
"from": "2020-01-01",
"to": "2020-01-31",
"filters": {
"period": [
0,
1,
2,
10,
30,
60
],
"geo": [
"US",
"CN"
],
"pid": [
"Facebook Ads",
"googleadwords_int"
]
},
"preferred_currency": true,
"aggregation_type": "on_day",
"per_user": false,
"groupings": [
"pid",
"date"
],
"kpis": [
"sessions"
]
}'
返されるファイルの例:CSV、JSON
Python の例
import http.client
import mimetypes
conn = http.client.HTTPSConnection("hq1.appsflyer.com")
payload = "{\r\n \"cohort_type\": \"user_acquisition\",\r\n \"min_cohort_size\": 1,\r\n \"preferred_timezone\": false,\r\n \"from\": \"2020-05-01\",\r\n \"to\": \"2020-05-10\",\r\n \"preferred_currency\": true,\r\n \"aggregation_type\": \"cumulative\",\r\n \"per_user\": false, \r\n \"groupings\": [\r\n \"pid\",\r\n \"date\"\r\n ],\r\n \"kpis\": [\r\n \"roas\"\r\n ]\r\n}"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer [Enter token here]',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
conn.request("POST", "/api/cohorts/v1/data/app/[My App ID here]?format=csv", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
使用事例
例1:リテンション
1月中にアプリをインストールしたユーザーの7日目、14日目、28日目のメディアソースのリテンション(セッション)
{
"per_user": false,
"groupings": [
"pid"
],
"filters": {
"period": [
7, 14, 28
]
},
"partial_data": false,
"aggregation_type": "on_day",
"min_cohort_size": 1,
"cohort_type": "user_acquisition",
"from": "2021-01-01",
"to": "2021-01-30",
"kpis": [
"sessions"
]
}
例2:キャンペーンでの購入
コホート3日目のキャンペーン別インストール後の収益
{
"per_user": false,
"groupings": [
"c"
],
"filters": {
"period": [
3
],
"c":[
"example_campaign_name"
]
},
"partial_data": false,
"aggregation_type": "cumulative",
"min_cohort_size": 1,
"cohort_type": "user_acquisition",
"from": "2021-01-01",
"to": "2021-01-30",
"kpis": [
"Checkout Start"
]
}
例3:昨日のアクティビティ
あるコンバージョン期間にコンバージョン(インストール、リエンゲージメント、リアトリビューション)したユーザーは、昨日どのような活動を行ったのか?
Data Lockerのコホート経由で利用できる日付を使用してください。コンバージョン期間は過去360日に限定されています。
追加情報
レスポンスコードとトラブルシューティング
レスポンスコード |
メッセージ |
備考 |
---|---|---|
200 | OK |
有効なデータが返されました |
200 | OK |
|
401 | Unauthorized |
|
404 | Not found |
|
422 | Unprocessable entity (処理不能) |
このエラーコードの一般的な原因は次のとおりです:
|
CSVファイル名の構成
返されるCSVファイルに割り当てられる名前はAPIクエリから生成されます。その構成は、次の表で詳しく説明されています。
CSVファイル名の例
cohort_aggregation_type_per_user_kpi_report_app_id_from_to_timezone_currency_hash.csv
変数 | 可能な値 |
---|---|
aggregation_type |
|
per_user |
|
KPI | 例:セッション数 |
app_id | リクエストされたアプリID |
from | from 日付:形式 yyyy-mm-dd |
to | to 日付:形式 yyyy-mm-dd |
timezone | ダイムゾーンのデフォルトはUTCです |
currency | 通貨コードのデフォルトはUSDです |
hash |
英数字のハッシュ文字列の長さ=5 |
期間フィルタの使用
期間はアトリビューション後の日を指し、期間0はアトリビューション日です。例えば、ユーザーがアプリを1月1日にインストールします。これがアトリビューション日です。期間0に購入が発生した場合、この購入は1月1日に発生しました。期間3に購入が発生した場合、この購入は1月4日に発生しました。同様に、11月11日にインストールしたユーザーは、これが期間0になります。1月14日に発生した購入は期間3となります。
レポートの期間範囲が1月1日から1月11日の場合、この期間にアトリビュート(インストール)されたユーザーがレポートに含まれます。その他のデータは含まれません。
- 期間の値は、0-180のうち1つまたは複数設定できます。例:0, 1, 2, 30, 180。
- 期間が指定されていない場合、デフォルト値である0、1、2…30まで、および、60、90、180 が戻ります。
期間フィルタの例
- この例には、JSONクエリパラメータ、ローデータ、および結果のCSVファイルが含まれています。
- クエリのフィルタ期間は、0、1、2で、選択されたKPIは収益です。
- その結果、返されるデータには以下が含まれます。
- ユーザー、コスト、eCPIの測定は常に返されます。
- 収益の測定は、各期間、つまり期間 0、1、2の合計とカウントで構成されます。
クエリ
{
"cohort_type": "user_acquisition",
"min_cohort_size": 1,
"preferred_timezone": false,
"from": "2019-12-01",
"to": "2020-01-01",
"filters": {
"period": [
0,
1,
2
]
},
"aggregation_type": "on_day",
"per_user": false,
"groupings": [
"pid"
],
"kpis": [
"revenue"
]
}
ローデータ
結果
ユーザーインターフェイスとAPIパラメータのマッピング
特性と制限事項
特性 | 備考 |
---|---|
アドネットワークのアクセス |
いいえ。広告主が権限を付与した場合、キャンペーン運用パートナーはAPIを使用できます。 |
代理店のアクセス | いいえ |
代理店への運用詳細の開示 | サポートされていません |
アプリ固有のタイムゾーン | はい |
アプリ固有の通貨 | はい |
サイズ制限 | なし |
レート制限 |
APIコールレート制限:1アカウントあたり、1分につき60コールまで |
オーガニックデータ | ご利用可能 |
非オーガニックデータ | ご利用可能 |
コストデータの制限 |
|
データの更新頻度 |
データ更新頻度は、以下の partial_data により異なります。
|
過去データ | サポートされている最も早いコンバージョンデータ(インストールまたはリターゲティング):2019年1月1日 |
アカウントユーザーのアクセス | 認証トークンは、管理画面でアドミンユーザーが利用できます |