サーバー間イベントAPI for モバイル (S2S-mobile)

概要:アプリ外で発生するモバイルイベントを測定するために、サーバーからAppsFlyerにイベントを送信します。

altS2S_us-en.pngalt

サーバー間イベントAPI for モバイル

iOSアプリの場合、iOS 14以降では、os (オペレーティングシステム) のパラメーターを送信する必要があります。 

AppsFlyerプラットフォームは、AppsFlyer SDKおよびAPIによって送信されたモバイルアプリイベントをアトリビューションして記録します。S2S APIを使用して、アプリ外で発生するイベントをレポートできます。例えば、ユーザーがWebインターフェースを使ってサブスクリプションを更新するなどです。S2Sイベントは一旦記録されると、ダッシュボードやローデータ、分析を含むプラットフォーム全体で活用可能になります。PBAのWebイベントについては、PBA向けWeb S2Sをご参照ください。

AppsFlyerはS2Sイベントに以下の情報を設定します。

  • S2Sメッセージで送信された値
  • AppsFlyerの一部のインストールアトリビューション値、例えばインストール時間やメディアソースなど。

API経由でイベントを送信するには、開発者にサーバー間イベントAPIの手順に従うよう指示してください。

パラメーターの設定

オーガニックと非オーガニックの違い

AppsFlyerがS2Sアプリ内イベントを処理する際、アトリビューションフィールドはAppsFlyer IDを用いて入力され、アプリ内イベントより前の関連するインストールイベントを識別します。

つまり、AppsFlyerが非オーガニックS2Sアプリ内イベントに関連付けるデータの一部は、オーガニックS2Sアプリ内イベントには関連付けられないということです。

たとえば、非オーガニックとオーガニックのS2Sアプリ内イベントのローデータレポートを比較すると、非オーガニックイベントにはオーガニックアプリ内イベントにはないデータが含まれます。

非オーガニックアプリ内イベントには、メディアソース、キャンペーン、アトリビュートされたタッチタイプ、アトリビュートされたタッチ時間に関するデータが含まれます。

一方、オーガニックアプリ内イベントはオーガニックインストールに基づいています。オーガニックインストールには、キャンペーン、メディアソース、アトリビューションされたタッチタイプ、インストール時間に関連するデータは含まれません。

AppsFlyer IDとカスタマーユーザーID(CUID)のマッピング

パラメーターを入力するための値を取得するには、バックエンドロジックが必要です。次に、AppsFlyer IDの取得方法を説明します。

  • AppsFlyer IDは必須で、イベントを紐付けるために使用されます。
  • これは、ユーザーがモバイルアプリを初めてインストールしたときに生成されます。
  • CUIDをAppsFlyer IDにマッピングするには、アプリでCUIDを設定する必要があります。 

どのユーザーがどのイベントを実行したかを簡単に把握できるようにするため、以下のフローを実装してください。

  • ユーザーがアプリをインストールするときにカスタマーユーザーIDを設定してください。
  • AppsFlyerのローデータレポートにはCUIDとAppsFlyer IDが含まれています。データ配信ツールのいずれかを利用するか、AppsFlyerプッシュAPIを使用してください。 
  • ローデータレポートを使用して、CUIDをAppsFlyer IDと一致させてください。 
  • AppsFlyer IDは、アプリに統合されたSDK(Android/iOS)で利用可能です。
  • AppsFlyer IDをカスタマーユーザーIDに社内システムでマッピングしてください(将来の利用に重要です)。

AppsFlyer IDをCUIDとマッピングすると、ユーザーと実行されたイベントを結び付けることができます。その後、他の値(イベントの価値、イベント通貨、イベント時間など)を取得し、サーバー間でアプリ内イベントを送信できます。

AppsFlyer IDの取得

appsflyer_idは、サーバー間イベントメッセージにおける必須パラメーターです。AppsFlyerは、このパラメーターを使用して、イベントを元のデバイスと関連付けられたメディアソースに紐付けます。次のいずれかの方法でIDを取得できます。

タイムスタンプ S2S イベント

altタイムスタンプロジック図alt

S2SイベントがAppsFlyerに一括で到着すると、eventTimeプロパティの値と到着時間に基づいてタイムスタンプが付与されます。eventTimeプロパティはアプリ内イベントの発生時間を示します。

到着すると、イベントには以下のようにタイムスタンプが付けられます。

  • eventTimeパラメータがイベントレコードに含まれていない場合、イベントの時間はHTTPメッセージの到着時間に設定されます。
  • 02:00 UTCより前に到着したイベントにはeventTime値がスタンプされます。つまり、イベントにeventTimeのスタンプが付けられるためには、イベント当日か翌日02:00 UTCまでに報告される必要があります。
  • 前日またはそれ以前に発生したイベントで02:00 UTC以降に到着した場合、到着時刻(APIコールの時間)でスタンプされます。
  • 将来の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 - 10K TPS を送信 (ベースライン)
    • 00:01:00 - 12K TPS に増加
    • 00:02:00 - 14K TPS に増加
    • 00:03:00 - 16K TPS に増加
    • 00:04:00 - 18K TPS に増加
  • エラーを受信した場合に使用するリトライメカニズムを実装します。

トラブルシューティング

管理画面にイベントが表示されない

  • エンドポイント:利用しているエンドポイントが正しいことを確認してください。
  • ペイロードに必須パラメーターが含まれていることを確認してください。こちらをご覧ください。
  • イベントの起動に使用しているAppsFlyer IDが実際のappsflyer_idであり、実際のアプリインストールに関連していることを確認します。こちらをご覧ください。
  • S2Sイベントは、1つのS2Sリクエストでマルチイベントをサポートしません。各イベントは個別のイベントとして送信する必要があります。
    • 応答時間を短縮するため、非同期方式でイベントを送信することができます。
  • 概要管理画面では、日付範囲はアプリインストール日(LTV)に関連付けられ、イベントの日付ではありません。
    • 正しい日付範囲を選択するようにしてください。
    • 管理画面の日付範囲が、イベントの日付ではなく、デバイスのインストール日(appsflyer_id)に対応していることを確認してください。
  • イベントローデータレポート:日付範囲はイベントの日付に関連し、インストール日ではありません。 

イベントには収益は含まれていません

もしS2Sイベントを送信しても収益が記録されない場合は、送信するJSONが文字列化されていることを確認してください。最も重要な部分は、JSON内のイベント値パラメーターです。次の例に示すように、文字列化する必要があります。

"{\"af_revenue\":\"6\" ,\"af_content_type\":\"wallets\"}"

文字列化されていない場合、イベント価値が正しく処理されず、収益が記録されません。

収益の値はいかなる形式でもフォーマットしないでください。小数点を含めることができます。通貨記号やコード、, 区切り文字を含めないでください。収益には-のプレフィックスを付けることができます。

  • 有効な値の例: 123-123.45123.456 
  • 無効な値の例: 1,234.561,234

S2Sイベントではすべてのフィールドが入力されるわけではありません。

ローデータフィールドには、S2S コールで送信された値のみが入力されます(インストールイベントから生成された値を入力できるポストバックフィールドとは異なります)。

次のフィールドは S2S APIを通じて報告できないため、ローデータレポートの S2S イベントには入力されません。

  • WIFI
  • オペレーター
  • 言語
  • デバイスモデル
  • デバイスカテゴリ
  • アプリバージョンapp_version_nameを利用できます
  • アプリ名
  • ユーザーエージェント

S2Sアプリ内イベントが誤ってオーガニックと分類される

S2Sイベント(ログインイベントなど)は、アプリがインストールされてSDKが起動されるとすぐにAppsFlyerに届きます。しかし、AppsFlyerがインストールイベントの処理を完了する前に、これらのS2Sアプリ内イベントが到着した場合(通常20〜30秒以上かかります)、それらは非アトリビュートのオーガニックイベントとしてマークされることがあります。

インストール直後に発生するS2Sアプリ内のイベントをサーバーに報告する前に、短い遅延を設けることをお勧めします。