言語 
  • English
  • 中文
  • 日本語

サーバー間イベントの計測

サーバー間(S2S)イベントAPIを使用すると、AdjustはHTTPリクエストを介してイベントを計測します。

S2Sイベントで受け付けるリクエストのタイプは以下のとおりです。

  • URLパラメーターを使用したGET
  • URLパラメーターを使用したPOST(bodyなし)
  • Content-Type application/x-www-form-urlencodedとしてbodyパラメーターを使用したPOST

このページでは、サーバー間 (S2S) イベント計測の設定およびトラブルシューティングの方法を説明します。

事前準備

事前準備として、以下の内容をご確認ください。

必要条件

  • イベントを計測し、Adjustにコールを送信するサーバー

参考

  • インストール、リアトリビューション、セッションはSDKで自動的に記録され、Adjust S2Sには送信できません。Adjustではサーバー間イベントの重複排除が行われないため、大量の重複データを受信しないようにするには、S2Sで同様のアクティビティ(例:「アプリを開く」)を送信しないでください。

サーバー間(S2S)認証を設定する

サーバー間(S2S)イベントのセキュリティを保証し、なりすましのリクエストから保護するには、サーバー間(S2S)認証を設定します。そのためには、受信するリクエストごとに、Adjust管理画面で生成されたトークンが付与されている必要があります。有効なトークンが付与されていないリクエストは、サーバーによって拒否されます。

サーバー間(S2S)認証を設定するには、以下の手順に従ってください。

管理画面で

  1. 該当アプリの下部に表示されている(▲)ボタンを選択します。
  2. その他の設定(All Settings) > サーバー間セキュリティ(S2S Security)の順に選択します。
  3. トークンの作成(Create Token)を選択します。 
  4. トークン名を入力します。
  5. 作成 (CREATE)を選択します。
  6. コピー(Copy)(クリップボードのアイコン)を選択し、サーバー間(S2S)イベントリクエストに追加するトークンを開発者に送信します。

認証トークンがサーバー間(S2S)リクエストに追加されたら、テストを実行して連携を確認します。この時点では、サーバー間(S2S)認証は有効ではなく、無効なトークンが付与されたリクエストはまだ受理されます。サーバー間(S2S)認証を有効化する前に、専任のテクニカルアカウントマネージャーまたはsupport@adjust.comに連絡し、設定に問題がないか確認してください。

トークンが追加されたPOSTリクエストの例:

curl -v -X POST -H "Authorization: Bearer v8s5opi0zs45607l8h8c48wak2vxb5oe" "https://s2s.adjust.com/event?s2s=1&app_token=abc123kuvada7&event_token=xyzklm&gps_adid=11110111-2345-6789-1122-000000005678"

期待されるレスポンス:

> POST /event?s2s=1&app_token=abc123kuvada7&event_token=xyzklm&gps_adid=11110111-2345-6789-1122-000000005678 HTTP/1.1
> Host: s2s.adjust.com
> User-Agent: curl/7.54.0
> Accept: */*
> Authorization: Bearer v8s5opi0zs45607l8h8c48wak2vxb5oe

リクエストは以下のいずれかのレスポンスを返します。

レスポンスコードレスポンスメッセージ理由
200OKリクエストが受理されました
202Missing authentication tokenリクエストにトークンが追加されていません
202Wrong authentication tokenトークンは追加されていますが認識されません。トークンが正しく設定され、アクティブであることを管理画面で確認してください

サーバー間 (S2S) 認証を有効化する

トークンの実装をテストし、テクニカルアカウントマネージャーまたは専任の担当者(support@adjust.com)が設定を確認するまでは、サーバー間(S2S)認証を有効化しないでください。 

サーバー間(S2S)認証を有効化するには、以下の手順に従ってください。

  1. 該当アプリの下部に表示されている(▲)ボタンを選択します。
  2. その他の設定(All Settings) > サーバー間セキュリティ(S2S Security)の順に選択します。
  3. サーバー間(S2S)認証の有効化(Activate S2S authentication)を選択します。
  4. トグルをONに切り替えます。  
  5. 確認して次に進みます。

設定が完了しました。今後は、受信するサーバー間(S2S)リクエストは全て有効な認証トークンが付与されている必要があります。

トークンの管理

複数の認証トークンを追加するには、上記と同じ設定手順に従ってください。 

: 実装後も常にトークンをテストしてください。サーバー間(S2S)認証が有効化されている場合、新しいトークンが正しく実装されていないリクエストは拒否されます。 

トークンを削除するには、削除(Delete)(ゴミ箱アイコン)を選択します。これにより、管理画面ビューと認証要件からトークンがすぐに削除されます。削除されたトークンを回復するには、回復(Recover)(矢印アイコン)を選択します。 

1つだけあった有効な認証トークンを削除した場合、サーバー間(S2S)認証は自動的に無効化されます。これによって、全てのサーバー間(S2S)トラフィックを拒否しないことが保証されます。

Adjustにイベントを送信する

Adjustにイベントを送信するには、常に次のパラメータを https://s2s.adjust.com/event に渡してください。

パラメーター説明
idfa; gps_adid; など   プラットフォームに依存する広告ID(全リストを参照

idfa=D2CADB5F-410F-4963-AC0C-2A78534BDF1E

gps_adid=660e1d86-6796-463a-be86-897993136018

event_token管理画面で取得できるAdjustイベントトークンevent_token=f0ob4r
app_token管理画面で取得できるAdjustアプリトークンapp_token=4w565xzmb54d
s2s1に設定されたS2Sパラメーターs2s=1

イベント送信に推奨されるその他のパラメータ

イベントのアトリビューションを正確に行うために、イベントに次のパラメーターを含めることをおすすめします。

IDタイプパラメーター + 例用途
AdjustのデバイスIDadidIDFA情報を利用せずにiOSでLATユーザーを特定する
IPアドレスip_addressコールバックにサードパーティ(Googleなど)とのイベント連携、および位置関連情報(city、postal_codeなど)を含めます。ip_addressパラメーターではIPv4のみを受け付けます。IPv6はまだサポートされていません。
created_at_unix
(推奨)

または

created_at
created_at_unix=1484085154

または

created_at=2017-01-02T15:04:05.000+0000

イベントが発生したその瞬間を示す。これにより、イベントの正確なレポーティングが可能。

created_atタイムスタンプの条件

‘created at’ タイムスタンプは、created_at_unixパラメーターまたは created_atパラメーターのいずれかを使用して指定できます。

  • 秒 - created_at_unix\=1484085154
    ミリ秒 - created_at_unix\=1484085154000
  • created_atパラメーターを使用する場合、常に値をエンコードしてください。例えば、2017-01-02T15:04:05.000+00002017-01-02T15%3A04%3A05.000%2B0000になります。
  • サーバー側のイベントコールに「created_at」タイムスタンプが含まれていない、あるいは正しくフォーマットされていない(タイムゾーンがないなど)場合、Adjustはcreated_atの時間をReceivedAtタイムスタンプに設定します。
  • 「created at」タイムスタンプを含む全てのサーバー間イベントは、デバイスごとに、またイベントトークンごとに、「created at」タイムスタンプに従って時系列で送信する必要があります。例えば、同じデバイスに対して同じイベントトークンを使用して送信する場合、7日目のイベントよりも先に3日目のイベントを送信する必要があります。そのようにしないと、Adjustにより3日目のイベントが拒否されます。 
    • イベントは必ず28日以内に送信してください(時間が経過するとアクティビティは拒否されます)。
  • 収益と「created at」タイムスタンプを含む全てのサーバー間イベントは、デバイスごとに、また全ての収益イベントトークンに対して、「created at」タイムスタンプに従って時系列で送信する必要があります。例えば、同じデバイスに対しては、収益イベントトークンXの3日目の収益イベントを、収益イベントトークンYの7日目の収益イベントよりも先に送信する必要があります。そのようにしないと、3日目の収益イベントは拒否されます。

受け入れ可能なデバイスID

サーバー間イベントで受け付けるデバイスIDは以下のとおりです。

推奨されるID
RawのIDFA(iOSのみ)IDFA
RawのGoogle広告IDgps_adid
Amazon Fire広告IDfire_adid
その他の広告ID(OAID、Huaweiのみ)oaid
バックアップID
RawのIDFA                                                        IDFA
RawのIDFVidfv
Android IDandroid_id

注:可能な場合、バックアップの識別子としてAdjustデバイスID(adid)を渡すことが推奨されます。S2Sリクエストが機能するためには、adidを渡す必要があります。 

カスタムデータを共有する

コールバックとパートナーパラメーターを使用することで、サーバー間(S2S)イベント内でカスタムイベントデータをAdjustに渡すことができます。コールバックパラメーターはローデータエクスポートを介して返されますが、パートナーパラメーターはネットワーク連携パートナーと共有されます。 

サーバー間で計測されるイベントのコールバックパラメーターを受信するには、callback_paramsパラメーターを使用して、それらを(適切にエスケープされた)JSONオブジェクトとして渡します。パートナーパラメーターには、partner_paramsパラメーターを使用します。 

エンコードされていない例: partner_params={"f0o":"bar","bar":"baz"}

エンコードしたパートナーパラメーターを追加したサーバー間(S2S)リクエストの例:

https://s2s.adjust.com/event?s2s=1&event_token=f0ob4r&app_token=4w565xzmb54d&idfa=8A3CB124-5A79-4334-8802-F75FEC099C58&partner_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D”

JSONオブジェクトには文字列のみを含め、ネストする必要はありません。パラメーターが適切にフォーマットされていない場合、Adjustはエラーを表示します。

サーバー間イベントの計測

S2Sで計測されるイベントのコールバックパラメーターを受信するには、callback_paramsパラメーターを使用してJSONオブジェクトを渡します。以下はエンコードされていない2つのカスタムパラメーターの例です。

{"f0o":"bar","bar":"baz"}

次に示すのは、callback_paramsを追加して適切にエンコードした上で渡されるJSONオブジェクトの例です。

https://s2s.adjust.com/event?s2s=1&event_token=f0ob4r&app_token=4w565xzmb54d&idfa=8A3CB124-5A79-4334-8802-F75FEC099C58&callback_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D

サーバー間で計測されるイベントのパートナーパラメーターを送信するには、partner_paramsパラメーターを使用してJSONオブジェクトとしてそれらを渡します。以下はエンコードされていない2つのカスタムパラメーターの例です。

partner_params={"f0o":"bar","bar":"baz"}

次に示すS2Sリクエストの例は、partner_paramsが追加され、適切にエンコードされています。

https://s2s.adjust.com/event?s2s=1&event_token=f0ob4r&app_token=4w565xzmb54d&idfa=8A3CB124-5A79-4334-8802-F75FEC099C58&partner_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D

JSONオブジェクトには文字列のみを含め、ネストする必要はありません。パラメーターが適切にフォーマットされていない場合、Adjustからのエラーメッセージが表示されます。

収益イベントを計測する

サーバー間の収益イベントを計測するには、イベント送信に次の収益パラメーターを追加してください。

パラメーター説明
revenue (収益)

完全な通貨単位での収益イベントの値(149.99 = $149.99)。このパラメーターの最低値は0.001です。

currency (通貨)収益イベント 通貨コード
environment (環境)environment=sandboxまたはenvironment=production)にデータを送信する環境。
このパラメーターが含まれていない場合、本番環境とみなされてイベントが送信されます。

設定の完了

URLパラメーターを利用したS2S GETリクエストと、URLパラメーターを利用したbodyのないPOSTリクエストの例:

https://s2s.adjust.com/event?s2s=1&event_token=f0ob4r&app_token=4w565xzmb54d&idfa=D2CADB5F-410F-4963-AC0C-2A78534BDF1E&created_at=2017-01-02T15%3A04%3A05Z%2B0200&callback_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D&partner_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D

bodyにパラメーターを含むサーバー間POSTリクエストの例:

リクエストURL:
https://s2s.adjust.com/event
Body:

s2s=1&event_token=f0ob4r&app_token=4w565xzmb54d&idfa=D2CADB5F-410F-4963-AC0C-2A78534BDF1E&created_at=2017-01-02T15%3A04%3A05Z%2B0200&callback_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D&partner_params=%7B%22f0o%22%3A%22bar%22%2C%20%22bar%22%3A%22baz%22%7D

イベント送信のレスポンス

正常に計測された全てのイベントは、OKを示す応答を返します。

計測に失敗したイベントは、次のようなHTTPエラーコードとJSONメッセージを返します。{{"error": "Event request failed ( {{error message}})"}}

エラーメッセージは、リクエストにどのような問題が発生したかを示します。以下の表からエラーを特定し、設定をご確認いただくか、support@adjust.comにお問い合わせください。

エラーコードエラーメッセージ理由
400Bad event state様々な理由で発生する可能性があります。例:‘created at' の時間が 'installed_at' の時間の前になっている。

詳細については、レスポンスを確認してください。

400Invalid app token無効なアプリトークン:アプリが正しく設定されていません
400Ignoring event, earlier unique event trackedユニークイベントがすでに計測されています。重複のためこのイベントは計測されません。
400Invalid callback parameters無効なコールバックパラメーター:コールバックパラメーターを抽出できませんでした
400Invalid event tokenイベントトークンが存在しないか、正しく設定されていない、あるいはアプリトークンと一致しません。
400Invalid revenue無効な収益:金額が正しく設定されていないか、値が大き過ぎます(上限 = 100,000,000,000) 
401Failed to authorize requestリクエストの承認に失敗:承認トークンが見つからない、あるいは一致しません
403App is inactiveアプリが非アクティブ:アプリが管理画面で無効化されました
403Tracking disabledこのプラットフォームでは計測が有効化されていません
403Event token blacklistedEvent token blacklisted
404App token not foundApp token not found
404Device not foundデバイスデータが見つかりません
413Request size too largeリクエストが上限の1MBを超えています
451Device is opted outDevice is opted out 
500Internal error, contact support@adjust.com内部エラー、support@adjust.comにお問い合わせください:デバイスデータ更新時に発生した内部エラー