Send events from your servers to AppsFlyer to measure mobile events that occur outside the app.
サーバー間 (S2S) イベントAPI for モバイル
iOSアプリの場合、iOS 14以降、OS (オペレーティングシステム) パラメーターを送信する必要があります。
AppsFlyerのプラットフォームは、AppsFlyer SDKおよびAPIによって送信されたモバイルアプリイベントをメディアソースに紐づけて記録します。 S2S APIを使用することで、アプリの外部で発生したイベント(例:Webサイト上での定期購読登録の更新など)を計測できます。 S2Sイベントが記録されると、通常のイベントデータと同様、管理画面、ローデータ、各種レポート画面など、プラットフォーム全体で利用できます。 PBAのWebイベントについては、 Web S2S for PBA をご参照ください。
AppsFlyerはS2Sイベントに以下情報を入力します。
- S2Sメッセージで送信されたイベントの値
- インストール時間やメディアソースなどのAppsFlyerのインストール計測の値に
API 経由でイベントを送信するには、S2SイベントAPIの手順に従うよう開発者に伝えてください。
パラメータについて
オーガニックと非オーガニックの違い
AppsFlyerがS2Sのアプリ内イベントを処理するとき、アトリビューションフィールドはAppsFlyer IDを使用して入力され、アプリ内イベントよりも前に発生していた関連するインストールイベントを識別します。
つまり、AppsFlyerが非オーガニックサーバー間アプリ内イベントに関連付けるデータは、オーガニックサーバー間アプリ内イベントに紐付けられないということです。
備考
たとえば、非オーガニックとオーガニックサーバー間アプリ内イベントのローデータレポートを比較する場合、非オーガニックイベントにはオーガニックアプリ内イベントにはないデータが含まれます。
非オーガニックのアプリ内イベントには、メディアソース、キャンペーン、アトリビューションタッチタイプ、アトリビューションタッチタイムに関するデータが含まれます。
一方、オーガニックのアプリ内イベントは、オーガニックのインストールに従います。オーガニックインストールには、キャンペーン、メディアソース、アトリビューションタッチタイプ、インストール時間に関するデータはありません。
AppsFlyer IDとカスタマーユーザーID(CUID)のマッピング
パラメーターに入力する特定の値を取得するには、バックエンドロジックが必要です。以下では、AppsFlyer IDの取得方法について説明しています。
- AppsFlyer IDは必須であり、イベントの紐付けに使用されます。
- このIDはユーザーが最初にアプリをインストールしたときに発行されます。
- CUIDをAppsFlyer IDにマッピングできるようにするには、アプリでCUIDを設定する必要があります。
どのユーザーがどのイベントを実行したかを簡単に把握できるようにするには、以下のフローを実装してください。
- ユーザーがアプリをインストールしたときにカスタマーユーザーID を付与(設定)してください。
- AppsFlyerのローデータレポートには、CUIDとAppsFlyer IDが含まれています。データ配信ツールのいずれかを使用して、このAPIまたはAppsFlyerのPush APIを入手してください。
- ローデータレポートを使って、CUIDとAppsFlyer IDを照合させてください。
- AppsFlyer IDは、実装したSDKからも取得することが可能です。 (Android/iOS)
- User Agent
AppsFlyer IDをお客様側のカスタマーユーザーIDにマッピングすると、どのユーザーがどのイベントを実行したかを簡単に知ることができます。その後、他の値(イベント値、イベント通貨、イベント時間など)を取得してサーバー間アプリ内イベントを送信できます。
AppsFlyer IDの取得
appsflyer_id は、S2Sイベントメッセージにおいて、必須のパラメータです。 AppsFlyerでは、このパラメーターを使用して、オリジナルの端末とメディアソースにイベントを紐付けます。次のいずれかの方法でIDを取得できます。
S2Sイベントのタイムスタンプ
S2SイベントがAppsFlyerに一括で到着すると、プロパティ値と到着時間に従って eventTime タイムスタンプが付けられます。 eventTime プロパティはアプリ内イベントの発生時間を示します。
到着時に、イベントには次のようにタイムスタンプが付けられます:
- パラメーターが
eventTimeイベントレコードに含まれていない場合、イベント時刻は HTTPメッセージ到着時刻に設定されます。 - 02:00 UTC(日本時間午前11時)より前に到着したイベントには、
eventTime値がスタンプされます。つまり、イベントにeventTimeスタンプを付けるには、イベントの当日、または翌日の02:00UTC(日本時間午前11時)までにレポート(送信)する必要があります。 - 前日以前に発生し、02:00 UTC(日本時間午前11時)以降に到着したイベントには、到着時刻(APIコールの時刻)がスタンプされます。
- 将来の
eventTime値(eventTime がデータ到着時刻より後の場合)で到着するイベント:- レポートされた
eventTime時刻と到着時刻の両方が同じカレンダー日である場合、イベントにはeventTime値でタイムスタンプが付けられます。 -
eventTimeのレポートが翌カレンダー日の場合、イベントには到着時刻のタイムスタンプが付けられます。
- レポートされた
-
eventTime値が無効なイベントには、HTTP メッセージの到着時刻がスタンプされます。
例
-
eventTime= 月曜日 21:00 でイベントが送信されます。
| AppsFlyerに到着 | AppsFlyerのタイムスタンプ | Remark |
|---|---|---|
| 火曜日01:00 | 月曜日21:00 | データの締切前に到着。 eventTime時間は値に設定されます。 |
| 水曜日 09:00 | 水曜日 09:00 | データの締切後に到着。データの到着時間で記録されます。 |
マイナスの収益を送る
収益値がマイナスのイベントを送信できます。たとえば、購入がキャンセルされた場合などです。これを記録するには、af_revenueパラメータに負の値を指定できます。
af_quantity を入力する場合、システムロジックによっては負の値を入力したい場合があります。 AppsFlyerのレポートでは af_quantity は利用していません。
Including User Agent and IP address in S2S events
When sending S2S events to the metaweb_int endpoint, the payload must include the ua (User Agent) and ip (IP address) parameters. Meta requires these values to optimize campaign performance via the Conversions API (CAPI).
AppsFlyer includes ua and ip automatically for events reported through the SDK. For S2S events, advertisers must send these parameters explicitly in the request payload.
Note
In order to be measured in Incrementality, S2S events must include the advertising ID in their payload (IDFA for iOS, GAID for Android).
データトランザクション量の増加
段階的スケーリングを使用する場合、AppsFlyerは自動スケーリングソリューションに基づいて1秒あたりの大量のトランザクション(TPS)をサポートできます。例:
- 1 秒あたり 10,000 件のトランザクション (TPS) から始めて、最小1分間隔で徐々に規模を拡大していきます。
- 00:00:00 - 10,000 TPSを送信 (ベースライン)
- 00:01:00 - 12,000 TPS に増加
- 00:02:00 - 14,000 TPS に増加
- 00:03:00 - 16,000 TPS に増加
- 00:04:00 - 18,000 TPS に増加
- …
- エラーを受け取ったときに使用する再試行メカニズムを実装します。
トラブルシューティング
イベントが管理画面に表示されない
- エンドポイント:使用しているエンドポイントが正しいことを確認します。
- ペイロードに必須のパラメータが含まれていることを確認してください。詳細はこちらをご覧ください。
- イベントの発生に使用するAppsFlyer IDが実際のappsflyer_idであり、特定のアプリにインストールされていることを確認します。詳細はこちらをご覧ください。
- S2Sイベントは、イベントの一括送信をサポートしていません。各S2Sイベントは個別に送信する必要があります。
- 非同期メソッドを使用してイベントを送信して、応答時間を短縮できます。
- オーバービューの画面で指定する日付は、イベントの発生日ではなく、アプリのインストール日(LTV)になります。
- 正しい日付範囲を選択していることを確認してください。
- 管理画面でイベントを確認するには、管理画面で選択した日付が、イベントの発生日ではなく、端末(appsflyer_id)のインストール日と一致していることを確認してください。
- イベントローデータレポート:日付範囲は、インストール日ではなくイベントの発火日が関係します。
イベントに収益が含まれない
S2Sイベントを送信しても、その収益が記録されない場合には、送信したJSONが文字列化されているかどうかを確認してください。最も重要な部分は、JSONのイベント値パラメーターです。次の例に示すように、文字列化する必要があります。
"{\"af_revenue\":\"6\" ,\"af_content_type\":\"wallets\"}"
文字列(String)化されていない場合、イベント値は正しく処理されず、収益は記録されません。
収益の値は書式化しないでください。小数点のコンマを含むことができます。通貨記号や通貨コード、, のような値の区切り文字も含めないでください。収益の値の冒頭には - (マイナス)を付与することも可能です。 -
- 有効な値の例:
123,-123.45,123.456 - 無効な値の例:
1,234.56,1,234
S2Sイベントのすべてのフィールドが入力されない
ローデータフィールドには、S2Sコールで送信された値のみが入力されます(インストールイベントから発生した値を入力できるポストバックフィールドとは異なります)。 The following fields cannot be reported through the S2S API, and therefore are not populated for S2S events in raw data reports:
- WIFI
- Operator (OS)
- Language
- Device Model
- Device Category
- App version:
app_version_nameを使用できます - App Name
以下のフィールドは S2S API ではレポートできないため、ローデータレポートの S2S イベントには入力されません。
S2S events, such as login events, can arrive at AppsFlyer as soon as the app is installed and the SDK is started. However, if these S2S in-app events arrive before AppsFlyer completes the processing of the install event, which generally takes 20-30 seconds or more, they may be marked as unattributed organic events.
We recommend introducing a short delay before reporting S2S in-app events that occur immediately after the install to our servers.