概要:Web Server-to-Server(Web-S2S)イベントAPIを使用すると、Web SDKでは送信されないイベントやコンバージョンをPBAへ送信できます。
PBA向け Web Server-to-ServerイベントAPI
People-Based Attribution(PBA)向けのWeb-S2S APIは、Web SDKを補完する仕組みであり、マーケターがWeb SDKの対象外となるウェブサイト上のイベントをレポートできるようにします。たとえば、Webサイト訪問者(Webユーザー)がオンライン決済イベントを発生させ、その処理がバックエンドシステムで行われる場合、処理完了後にバックエンドはS2S APIを使用して、そのイベントをAppsFlyerへ送信します。
S2S APIで送信されたイベントは以下のように扱われます。
- Web SDKから送信されたイベントと同様に記録される
- コンバージョンイベントとして設定されている場合、PBAダッシュボードに表示される
- PBA Raw Dataに記録され、event_sourceのフィールドには web S2S として設定される
API利用手順
以下のセクションを参考にAPIコールを作成してください。
| No. | 項目 | 備考 |
|---|---|---|
| 1 | ユニークユーザーID | |
| 2 | タイムスタンプ |
|
| 3 | 収益金額と通貨設定 | eventRevenueCurrency と eventRevenue は、eventValue 内に含まれている場合でも必ず送信してください。これらの情報が管理画面上で使用されます。 |
API基本情報
APIの実装には、管理画面から取得できる以下の認証情報が必要です。
- Bundle ID(Brand Bundle ID)
- Web Dev key
認証情報の取得方法:
- AppsFlyerの上部メニューからマイアプリ > ブランドバンドルを表示を選択します。
バンドルの一覧が表示されます。 - 適切な内容をコピーして記録します:
- Brand bundle ID
- Web dev key
Web S2S API 基本仕様
| エンドポイント |
|
| HTTP method | POST |
| Content Type |
application/json |
| JSON payload 制限 |
最大サイズ:1KB |
| レート制限 |
POSTリクエスト上限:1分あたり60,000リクエストまで上限を増やしたい場合はCSMへ連絡してください。 |
| TLS |
|
setCuId メソッド
| メソッド名 |
setCuId |
| ユースケース |
CUIDをWeb訪問者に紐づける場合に使用します。Webの |
| メソッドパス |
|
| Payload |
JSON payloadはこちらに記載されたパラメータで構成され、すべてのパラメーターは必須です。 |
setCuIdの Curl サンプル
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"}
Event メソッド
| メソッド名 |
event |
| ユースケース | 送信 |
| メソッドパス |
|
| 詳細情報 | この記事のイベントメソッドの詳細セクションには、Payloadの詳細、Curlの例、Pythonの例、およびテストに関する推奨事項が含まれています。 |
Event メソッドの詳細
Payload パラメータ
Payload パラメーターは、ユーザー識別子とイベントパラメータに分かれています。
- User ID:少なくとも1つのユーザーIDパラメータを送信する必要があります。
- Event:必須パラメータと、必要に応じてオプションのパラメータを送信してください。
ユーザー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 referrer
|
| 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'))
テスト
テスト時は以下の手順でイベントを送信してください。
- イベントを送信する
- HTTPレスポンス 200 OK を確認 / エラーがあればメッセージに従い修正
- UTCタイムゾーンの午前0時のあと数時間待機し、PBA Raw Dataにイベントが表示されるまで待つ(PBAデータの処理は1日1回のみのため)
追加情報
Web Dev Key の取得
Web SDKの afUserID の抽出
-
afUserIdは、ユーザーが最初にウェブサイトを訪問した際に Web SDK によって割り当てられる一意の識別子です。 afUserIdが必要な場合は、以下の方法のいずれかを使用してください。
HTTP CookieヘッダーからafUserIdを取得
-
afUserIdは、ユーザーがサイトへアクセスする際に訪問者のブラウザから送信されます。 - 必要に応じてHTTP cookie ヘッダーから抽出してください。
訪問者のブラウザでafUserIdを確認
- トラブルシューティングやデバッグの目的で、訪問者のブラウザ上で
afUserIdを確認できます。 - afUserIdを確認するには、訪問者がWeb SDKが実装されたページを少なくとも一度訪問している必要があります。
-
afUserIdを含むCookieは、自社ドメインに対するファーストパーティCookieです。 - 以下の手順はChrome 81を使用して作成されています。ブラウザやOSによって手順が多少異なる場合があります。
訪問者のブラウザから 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
|
||