概要:Webサーバー間(Web-S2S)イベントAPIを使用して、Web SDKでは報告されないイベントやコンバージョンをPBAに報告します。
PBA向けWebサーバー間イベントAPI
ピープル ベースド アトリビューション向けのWeb-S2S APIは、Web SDK を補完するもので、Webサイト上で発生するにもかかわらず Web SDKの範囲外のイベントをレポートすることができます。例えば、Webサイトへの訪問者(Webユーザー)が、オンラインでの支払いイベントを実行するものの、これはバックエンドシステムで処理される場合です。処理が完了後、バックエンドはS2S APIを使用してイベントをAppsFlyerに報告します。
S2S APIで送信されたイベントは、次のような特徴があります。
- Web SDKによってレポートされたイベントと同様に記録されます。
- コンバージョンイベントとして設定されている場合、PBA管理画面に含まれます。
- PBAローデータ内の event_source の項目は web S2S と入力されます。
APIの利用手順
以下のセクションを使用して、APIコールを作成してください。
No. | ポイント | 備考 |
---|---|---|
1 | ユニークユーザーID | |
2 | タイムスタンプ |
|
3 | 収益と通貨 | eventRevenueCurrency と eventRevenue は、それらが「eventValue」に含まれている場合でも、入力する必要があります。管理画面でこれらのデータを使用するため、必ず実行してください。 |
APIの基本
API の実装には、管理画面から取得できる次の認証情報が必要です:
- バンドルID(ブランドバンドルID)
- Web Dev key
認証情報の取得方法:
- 上部のメニューバーから、My Appsを選択し、ブランドバンドルを表示をクリックします。バンドルの一覧が表示されます。
- 適切な内容をコピーして記録します:
- ブランドバンドルID
- Web Dev Key
Web S2S API の基本
パス |
|
HTTP メソッド | POST |
Content Type |
application/json |
JSON ペイロード制限 |
JSON ペイロードサイズ:最大1KB |
レート制限 |
POSTのボリューム制限:60,000 POST /分この上限を増やしたい場合には、CSMまでご連絡ください。 |
TLS |
|
setCuId メソッド
メソッド名 |
setCuId |
ユースケース |
CUIDをWebサイト訪問者に紐づける場合に使用します。例えば、Webの |
メソッドのパス |
|
ペイロード |
JSONペイロードはこちらにリストされているパラメータで構成されています。すべてのパラメーターは必須です。 |
Curl の setCuId 例
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/setcuid'\
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999"}
アプリ内イベントメソッド
メソッド名 |
イベント |
ユースケース | 送信 |
メソッドのパス |
|
詳細情報 | この記事のイベントメソッドの詳細セクションには、ペイロードの詳細、Curlの例、Pythonの例、およびテストに関する推奨事項が含まれています。 |
イベントメソッドの詳細
ペイロードパラメータ
ペイロードパラメーターは、ユーザー識別子とイベントパラメータに分かれています。
- ユーザーID:少なくとも1つのユーザーIDパラメータを送信する必要があります。
- イベント:必須パラメータと、必要に応じてオプションのパラメータを送信してください。
ユーザー識別子パラメータ(少なくとも1つのパラメータを送信)
ユーザーIDパラメータ | 説明 |
---|---|
customerUserID |
顧客ユーザーID (CUID) はアプリ所有者が設定した一意の識別子です。
|
afUserId |
Web SDKによって、ウェブサイトを訪問するすべてのユーザーに割り当てられた一意のユーザーIDです。cookie の値をバックエンドサーバーに渡す必要があります。
|
イベントパラメータ
パラメータ名 | 必須 | 説明 |
---|---|---|
webDevKey |
はい |
管理画面から取得できる Web Dev Key を使用して入力します。
|
eventType | はい |
AppsFlyerが内部で使用するイベント属性識別子です。常に EVENT と設定されます。
|
eventName | はい |
|
timestamp | いいえ |
イベントが発生した時間(ミリ秒単位)。13桁の Unix タイムスタンプとして送信します。
|
eventValue | いいえ |
イベントを説明する、イベントパラメータの一覧。このパラメーターを使用して、製品、アイテム価格などの情報をリッチアプリ内イベントで送信してください。
|
eventRevenueCurrency | いいえ |
収益イベントの通貨コード。3文字で構成されている ISO 4217 通貨コードです。
|
eventRevenue | いいえ |
イベントに紐づく収益額(通貨値)。 注!収益が eventValue でレポートされている場合は、eventRevenue でも値を送信し、eventRevenueCurrency に入力します。
|
いいえ | このパラメーターは非推奨で、廃止日以降(今後発表予定)に削除されます。代わりに eventValue を使用してください。 | |
いいえ |
このパラメーターは非推奨で、廃止日以降(今後発表予定)に削除されます。代わりに eventValue を使用してください。 |
|
referrer | いいえ |
HTTPリファラ
|
userAgent | いいえ |
ブラウザからサーバーに送信される User-agent リクエスト 。
|
ip | いいえ |
ユーザーのIPアドレス
|
Curl の例
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/event' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999",
"ip" : "192.0.2.1",
"eventType":"EVENT",
"timestamp" : 1234567890123,
"eventName":"my_web_event",
"eventRevenueCurrency" : "EUR",
"eventRevenue" : 1234.56,
"eventValue": {
"purchase":{
"shoes": "color",
"quantity" : "3",
"Revenue" : "1234.56",
"Currency" : "ZAR"
}
}
}'
Python の例
''' using the requests python package, install using pip install requests '''
import requests
url = "https://webs2s.appsflyer.com/v1/bundleId/event"
payload = {
"customerUserId": "1234567890abcdef",
"afUserId": "9999999-f848-4963-a091-568f0bf9a361",
"webDevKey": "99999999-9999-9999-9999-999999999999",
"ip": "192.0.2.1",
"eventType": "EVENT",
"timestamp": 1234567890123,
"eventName": "my_web_event",
"eventRevenenuCurrency": "EUR",
"eventRevenue": 1234.56,
"eventValue":
{
"purchase":
{
"shoes": "color",
"quantity": "3",
"Revenue": "1234.56",
"Currency": "ZAR"
}
}
}
headers = {
'Accept-Encoding': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request("POST",url, headers=headers, json=payload)
print(response.text.encode('utf8'))
テスト
テストのために、次の手順でいくつかイベントを送信してください:
- イベントを送信します。
- 200 OKのリターンコードが受信できていることを確認します。できない場合は、リターンコードとエラーメッセージをもとに修正を行います。
- UTCタイムゾーンの午前0時のあと数時間待機し、PBAローデータレポートにイベントが記録されていることを確認してください。PBAデータは1日1回処理されるため、このように待つ必要があります。
追加情報
Web Dev Key の取得
Web SDKの afUserID の抽出
afUserId
は、ユーザーが最初にウェブサイトを訪問する際に Web SDK によって割り当てられる一意の識別子です。- 次のいずれかの方法で、
afUserId
を取得してください。
HTTP cookie ヘッダーから afUserId を取得する
afUserId
は、サイトへの呼び出しによって、訪問者のブラウザにより送信されます。- 必要に応じてHTTP cookie ヘッダーから抽出します。
ユーザーのブラウザで afUserId を表示する
- トラブルシューティングおよびデバッグの目的で、訪問者のブラウザで
afUserId
を表示します。 - これが利用可能になるためには、訪問者は最初に少なくとも一度はWeb SDKを持つページを訪問している必要があります。
afUserId
を含む cookie は、ドメインに関連するファーストパーティーcookieです。- 次の手順は、Chrome 81 を使用して作成されました。さまざまなブラウザとオペレーティングシステムにより、手順に多少違いがある可能性があります。
訪問者のブラウザから afUserId を取得する方法:
レスポンスステイタスコード
応答コード | メッセージ | 処理方法 |
---|---|---|
200 | OK | |
404 | Not found |
|
400 | Bad request |
|
トラブルシューティング
- 症状:HTTPリターンコードが返されない
解決策:AppsFlyer サーバーを許可リストに追加します。
リリースノート
日付 | エンドポイントバージョン* | 注: |
---|---|---|
2020-05-12 | 1 | 初期リリース |
2020-05-24 | 1 | |
* バージョン番号は、エンドポイントのバージョン番号に紐づいています。https://webs2s.appsflyer.com/v1/method
|