概要:自身のサーバーからAppsFlyerにイベントをS2S API経由で送信して、アプリ外で発生するコンバージョンイベントを計測します。
サーバー間 (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)
- お客様自身のデータベース上でも、AppsFlyer IDをカスタマーユーザーIDにマッピングしてください。(将来的な使用においても重要です)。
AppsFlyer IDをお客様側のカスタマーユーザーIDにマッピングすると、どのユーザーがどのイベントを実行したかを簡単に知ることができます。その後、他の値(イベント値、イベント通貨、イベント時間など)を取得してサーバー間アプリ内イベントを送信できます。
AppsFlyer IDの取得
appsflyer_id
は、S2Sイベントメッセージにおいて、必須のパラメータです。AppsFlyerでは、このパラメーターを使用して、オリジナルの端末とメディアソースにイベントを紐付けます。 次のいずれかの方法でIDを取得できます。
ヒント
S2Sメッセージをテストする際にローデータを使用する場合は、メディアソース名 "s2s_test" の記録を確認してください。これがテスト時のデバイスで、その「AppsFlyer Device ID」がここで必要な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のタイムスタンプ | 備考 |
---|---|---|
火曜日01:00 | 月曜日21:00 | データの締切前に到着。eventTime 時間は値に設定されます。 |
水曜日 09:00 | 水曜日 09:00 | データの締切後に到着。データの到着時間で記録されます。 |
マイナスの収益を送る
収益値がマイナスのイベントを送信できます。たとえば、購入がキャンセルされた場合などです。これを記録するには、af_revenue
パラメータに負の値を指定できます。
af_quantity
を入力する場合、システムロジックによっては負の値を入力したい場合があります。AppsFlyerのレポートでは af_quantity
は利用していません。
データトランザクション量の増加
段階的スケーリングを使用する場合、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コールで送信された値のみが入力されます(インストールイベントから発生した値を入力できるポストバックフィールドとは異なります)。
以下のフィールドは S2S API ではレポートできないため、ローデータレポートの S2S イベントには入力されません。
- WIFI
- Operator (OS)
- Language
- Device Model
- Device Category
- App version:
app_version_name
を使用できます - App Name
- User Agent