サーバー間(S2S)のアプリ内イベントAPI(HTTP API)

  • 開発者

はじめに

このAPIを利用することで、 モバイル アプリ以外で発生したイベントをAppsFlyerサーバー上で計測することができます。 たとえば、ウェブとモバイルのインターフェイスがある場合、両方のインターフェイスで発生したイベントをすべてAppsFlyerで記録できます。 

 注意

Content Typeは「application/json」に設定する必要があります。

URL: https://api2.appsflyer.com/inappevent/{app_id}  

Androidの例: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp

iOSの例https://api2.appsflyer.com/inappevent/id123456789

iOSのApp IDの先頭に"id"が付いているかどうか、特に注意してください。付いていない場合、リクエストが「HTTPS 200 OK」で一見正常に終了しても、実際にはイベントは 登録されません 。

Method: POST

Header - "authentication"= {dev-key}

Dev Keyは 管理画面  >> アプリの設定  >>  Dev Keyで確認できます。

iOS Android
{
    "appsflyer_id": {This is a mandatory field, AppsFlyer Device ID must be used },  // e.g. 1415211453000-6513894
    "idfa":{idfa},
    "customer_user_id": {customer_user_id}, // Customer User ID optional parameter
    "bundle_id":{bundle_id},
    "eventName": {The event name}, // e.g. "af_purchase"
    "eventValue": {A JSON containing a rich in-app event value - must be stringfied},
    "{

        \"af_revenue\":\"6\",
        \"af_content_type\":\"wallets\",
        \"af_content_id\":\"15854\"

    }",
    "eventCurrency": {Event currency}, // e.g "USD"
    "ip": {device IP},
    "eventTime": {Event timestamp in UTC}, // e.g  "2014-05-15 12:17:00.000"
    "af_events_api" :"true"
}

 注意

すべての予約文字(Reserved Characters)(https://tools.ietf.org/html/rfc3986#section-2.1)は、URIが生成される前にパーセントエンコードされている必要があります。

要件

  1. 必須パラメータappsflyer_id(AppsFlyerデバイスID)、 eventNameeventValue、 af_events_api
  2. 推奨するパラメータ: idfa (iOSの場合)、 advertising_id (Androidの場合)
  3. eventValueには空の値を指定することができます。例: "eventValue":"", (スペースは不要)
  4. IP address(ip)は、(イベントが発生している)モバイルデバイスのIPを指定してください。
  5. 顧客ユーザーIDのフィールド(customer_user_id)はユーザーIDパラメータです。ローデータレポートのCustomer User IDカラムにマッピングされます。Customer User ID SDK APIは、Customer User IDの値を 、すべてのSDKから発生するアプリ内イベントに自動的に付与します。同じ機能を実装するには、すべてのS2Sのイベントに必ずこのフィールドを追加してください。

イベントのタイミング

サーバー間(S2S)イベントはリアルタイムまたはバッチで送信できます。 

 注意

S2Sを使用する場合、JavaScript経由で直接イベントを送ることはできません。AppsFlyerにリクエストを送信するためのローカルサーバーを作成する必要があります。

オプションのeventTime パラメーターを使用すると、イベント発生時刻(UTCタイムゾーンのみ)を指定できます。このパラメーターがメッセージに含まれない場合、AppsFlyerは受け取ったHTTPSメッセージのタイムスタンプを使用します。 

eventTimeのフォーマット: "yyyy-MM-dd HH:mm:ss.SSS" (例:"2014-05-15 12:17:00.000") 

バッチでの送信の際に、イベントに実際のタイムスタンプを記録するためには、すべて翌日の午前2:00(UTC)までにAppsFlyerに送信する必要があります。   

 注意

S2Sの最大リクエスト数は1分あたり6万件か、1秒あたり1千件です。お客様の要件が異なる場合は、カスタマーサクセスマネージャーにお問い合わせください。


 午前2:00までに送信されなかった過去のタイムスタンプのイベントは、送信された時間で記録されます。

例1

イベント発生:  5月2日 22:00

イベントがAppsFlyerのサーバーに送信された: 5月3日 1:00

イベントは、イベントが発生した実際の時刻(5月2日 22:00)でAppsFlyerに記録されます。

例2
イベント発生:  5月2日 22:00

イベントがAppsFlyerのサーバーに送信された:  5月4日 9:00

イベントは、イベントが発生した時刻ではなく、AppsFlyerに送信された時刻でAppsFlyerに記録されます(5月4日 9:00)。

サービスリターンコード

200
OK リクエストがAppsflyerシステムによって正常に処理された場合
401
unauthorized Authentication Headerのキーが該当アプリのDev key用ではない場合
400
Bad request リクエストに関して少なくとも1つの条件が検証できず失敗した場合
500
Internal server error サーバーエラーが発生した場合

サーバーがファイアウォールで保護されている場合は、リターンメッセージを受信するため、 AWSのIPアドレスレンジ からの受信レスポンスをホワイトリストに登録する必要があります。

Request Bodyの例

{
    "appsflyer_id": "1415211453000-6513894",
	"advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
	"eventName": "af_purchase",
	"eventValue": 
	"{
		\"af_revenue\": \"6\",
		\"af_content_type\": \"wallets\",
		\"af_content_id\": \"15854\",
		\"af_quantity\" :\"1\"
     }",
	"eventCurrency": "USD",
	"ip": "1.2.3.4",
	"eventTime": "2014-05-15 12:17:00.000",
	"af_events_api" :"true"
}


この例では、AppsFlyerはcontent typeなどの追加のプロパティと一緒に、収益のある購入イベントであるS2Sのアプリ内イベントを受信します。

AppsFlyerは広告主の設定に応じて、高度なターゲティングや最適化、オーディエンスの作成を目的に、このようなリッチアプリ内イベントをメディアソースに送信できます。

AppsFlyerデバイスIDの取得

appsflyer_id はサーバー間イベントメッセージの必須パラメータです。AppsFlyerでは、このパラメーターを使用して、元のデバイスとメディアソースにイベントを関連付けます。 

このIDを取得する方法はいくつかあります。

1. モバイルデバイスからAppsFlyer SDKのAPIを使用(Android/iOS

2. PullまたはPush APIを使用( Push API または Pull APIの詳細についてはリンクをクリックしてください。 )

3. ローデータのインストールレポートをエクスポート

 ヒント

S2Sのメッセージをテストする時にローデータ、Push API、またはPull APIを使用している場合、メディアソースが"s2s_test"のレコードを確認してください。これはテスト対象のデバイスを指しており、そのAppsFlyerデバイスIDが必要なIDとなります。

この記事は役に立ちましたか?
10人中4人がこの記事が役に立ったと言っています