メインコンテンツまでスキップ

イベントAPI

概要

RoktのイベントAPIは、購入、アプリのオープン、店舗訪問など、あらゆる種類のクライアントイベントと、それに関連する属性(メールアドレス、購入額、クレジットカードBINなど)をサポートする柔軟かつ堅牢なインターフェースです。

Rokt Ecommerce のパートナーは、このイベントAPIをWeb SDKと共に利用して、 異常検出 を行い、配置の挙動における不整合をキャッチすることができます。

Rokt Ads のクライアントは、イベントAPIを利用してRoktとコンバージョンデータを統合し、キャンペーンのパフォーマンスと最適化を向上させることができます。

認証

コンバージョンイベントを送信したいアカウントのために、公開鍵と秘密鍵のペアを作成するためには、Roktのアカウントマネージャーにお問い合わせください。受け取った鍵は以下の通りです:

名前
Rokt Public Keyrpub-*****-*
Rokt Secret Keyrsec-*****-*

API エンドポイント

POST イベント

イベント API は、クライアントが 1 つ以上のイベントを Rokt プラットフォームと統合することを可能にします。イベントは通常、コンバージョンまたはトランザクションイベントを指しますが、使用は柔軟です。

イベント API には 2 つの主な使用ケースがあります: 異常検知 (パートナー向け) と コンバージョンレポート (広告主向け) です。

POST /v2/events

リクエスト

ヘッダー
名前必須説明
Content-Typeapplication/jsonはいN/A
Charsetutf-8はいN/A
Rokt-Version2020-05-21はいRokt の API バージョン。現在の最新バージョンは 2020-05-21 です。
注意: このヘッダーを空のままにすると最新バージョンが適用されるため、後方互換性がない可能性があります。無効な値は 400 bad request となります。
AuthorizationBasic base64(rpub-...:rsec-...)はい標準的な ベーシック認証 ヘッダーで、資格情報の値はコロンで結合された rpub-rsec- の base64 エンコーディングです。
パラメータ

リクエストにはイベントと関連する詳細がJSON形式で含まれています。

レベル 1レベル 2レベル 3必須タイプ説明
accountIdはい文字列; 最大64文字Rokt アカウントID
eventsはいList[EventObject]; 最大100アイテム/ コール取り込むべきイベントのリスト
clientEventIdはい文字列; 最大36文字イベントを一意に識別するために使用される識別子
eventTypeはい文字列; 最大128文字イベントの種類
eventTimeはい文字列イベントの時間はUTCおよびRFC 3339である必要があります。リクエストは、イベントAPIが受け取った時間から18ヶ月以上前または5分以上先のタイムスタンプを含むイベントがある場合は拒否されます。この範囲外のタイムスタンプを持つイベントは処理されません。
metaDataいいえList[metaData]イベントに関する非ビジネスクリティカルな情報を提供
nameはい文字列; 最大256文字フィールド名; プレフィックス rokt.(大文字小文字を区別しない)はRokt専用です
valueはい文字列; 最大65536文字フィールド値; バイナリ値はBase64でエンコード
objectDataいいえList[objectData]イベントのコンテキストの詳細を含む
nameはい文字列; 最大256文字プレフィックス rokt.(大文字小文字を区別しない)はRokt専用です
valueはい文字列; 最大65536文字フィールド値; バイナリ値はBase64でエンコード
標準 objectData フィールド

以下は、Event API を通じて Rokt が受け入れる標準の objectData フィールドの一覧です。あなたの使用ケースに基づいて、いくつかのフィールドは他のフィールドよりも関連性があります。使用ケースに基づいた特定のペイロードサンプルについては、異常検出またはコンバージョンレポートを参照してください。

追加のデータフィールドを追加したい場合や、特定のフィールドに異なる名前を使用したい場合は、アカウントマネージャーに知らせてください。

名前説明
emailプレーンテキストで渡されたメールアドレス、小文字で末尾にスペースなしjohn@email.com
emailsha256メールアドレスのSHA-256ハッシュ。ハッシュ化の前に、小文字で末尾にスペースなし。fab1e2e699b3b927cbf875046a64f222
5df02d5cb306f3857424c2bbb87be61f
passbackconversiontrackingidコンバージョンイベントを元のクリックに一致させるために使用される Rokt 生成の ID。 別の統合が必要です。1bc29b36f623ba82aaf6724fd3b16718
amountトランザクション金額(小数点を含むことが可能)100.25
currency通貨コードUSD
quantity特定のコンバージョン内にある商品の数量(整数)4
conversiontype異なるコンバージョンイベントを区別するために使用されます。
: デフォルトのコンバージョンイベントタイプが提供されている場合にのみ適用されます。
ticketpurchase, seatupgrade, signup
productname購入した商品の名前。複数の商品をコンマで区切ることができます。Maroon 5 t-shirt, Warriors vs. Raptors
sku購入した商品の識別子(注意: 1つのSKUのみ受け入れます)230847, tshirt-blue-39487, 398fhdnff
paymenttype取引中に使用された支払い方法VISA, American Express
ccbinクレジットカードのBIN(バンク識別番号)123456
marginコンバージョンの利益率10
transactionidトランザクションID、ユニークな取引を識別するために使用されます。
ABC789
confirmationref確認参照ID。ユニークな取引の識別や注文確認の追跡に利用できる代替識別子です。
: 提供された場合、Roktはこの識別子を使用してコンバージョンイベントの重複排除を行います。
XYZ123
firstname顧客の名前John
firstnamesha256名前のSHA-256ハッシュ。このハッシュ化の前に、小文字にし、すべての後続のスペースをトリムします。fab1e2e699b3b927cbf875046a64f222
5df02d5cb306f3857424c2bbb87be61f
lastname顧客の姓Smith
lastnamesha256姓のSHA-256ハッシュ。このハッシュ化の前に、小文字にし、すべての後続のスペースをトリムします。fab1e2e699b3b927cbf875046a64f222
5df02d5cb306f3857424c2bbb87be61f
mobileコンバージョン顧客の携帯電話番号3053211654, +1 (323) 867-5309
mobilesha256携帯電話番号のSHA-256ハッシュ。
注: ハッシュ化の前に、携帯番号を特定のフォーマットでフォーマットする必要があります: 5551234567(ダッシュやスペースを含まない形式)。
fab1e2e699b3b927cbf875046a64f222
5df02d5cb306f3857424c2bbb87be61f
ipaddress顧客のIPアドレス172.3.51.182
ipaddresssha256IPアドレスのSHA-256ハッシュ。fab1e2e699b3b927cbf875046a64f222
5df02d5cb306f3857424c2bbb87be61f
useragentコンバージョン顧客のブラウザユーザーエージェントMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
DeviceTypeデバイスタイプDesktop, Mobile, Tablet
osデバイスのオペレーティングシステムiOS
osversionオペレーティングシステムのバージョン8.1
browserブラウザSafari
browserversionブラウザのバージョン11.1
title顧客の称号Mr, Mrs, Ms, Miss
gender顧客の性別M, Male, F, Female
dobyyyymmdd の形式19851220
age顧客の年齢33
language購入に関連する言語en, en-US
unitno住所に関連するユニット番号Unit A
address1住所の1行目123 Sesame St
address2住所の2行目(アパート番号、階数など)Alphabet Boulevard
zipcode顧客の郵便番号90210, SW1W 0DT
city顧客の都市San Francisco
state顧客の州CA, California, NY, New York
countryカスタマーの国US, United States, AU, Australia
valueカスタマーの価値19.98
predictedltvカスタマーの予測生涯価値500.0
サンプル

これは、2つの予約イベントを含むJSONペイロードを持つサンプルEvent APIコールです。

POST /v2/events
{
"accountId": "12345",
"events": [
{
"clientEventId": "ff3bd69c-ca74-4337-af91-4d5d0bd00e38",
"eventType": "booking",
"eventTime": "2020-05-22T10:21:29.339Z",
"metaData": [
{
"name": "sourceServer",
"value": "192.0.0.1"
}
],
"objectData": [
{
"name": "email",
"value": "email123@emailserver.com"
},
{
"name": "amount",
"value": "85.00"
}
]
},
{
"clientEventId": "fff4deeb-cdee-49ff-9aad-61b1c4256ca6",
"eventType": "booking",
"eventTime": "2020-05-22T10:21:29.339Z",
"metaData": [
{
"name": "sourceServer",
"value": "192.0.0.1"
}
],
"objectData": [
{
"name": "email",
"value": "email456@emailserver.com"
},
{
"name": "amount",
"value": "99.99"
}
]
}
]
}

レスポンス

名前説明
X-Rokt-Trace-Idリクエストに関連付けられた一意の識別子で、トラブルシューティングのために使用されます。
ボディ

Event API への成功した呼び出しは、200 ステータスを返します。unprocessedRecords オブジェクトは空であるべきで、すべてのイベントが正常に処理されたことを示します。

サンプル

以下のコードサンプルは、Event API への成功した呼び出しを表しています。

{
"data": {
"unprocessedRecords": []
}
}

::: メモ 200 レスポンスと潜在的なエラー

200 レスポンスを検証する際には、unprocessedRecords にイベントが返されていないことを確認してください。unprocessedRecords にレコードが含まれている場合、1つ以上のイベントが正しく処理されなかった可能性があります。

:::

レスポンス

HTTP レスポンスコードエラーコード説明
200N/A通常はOKですが、以下の200エラーシナリオの例を参照してください。
400RequestBodyReadErrorリクエストボディの読み取り中にエラーが発生しました。
400RequestJsonUnmarshalErrorイベントAPIはリクエストボディをアンマーシャルできませんでした。
400RequestValidationErrorリクエストボディの内容がバリデーションチェックに失敗しました。 パラメーター要件を正しく遵守したか確認してください。
401UnauthorizedError認証トークンが不正または無効です。
403Forbidden提供されたアクセストークンはあなたのアカウントで認可されていません。
500, 502, 503InternalServerError, ServiceUnavailableErrorRoktの側で予期しないエラーが発生しました。指数バックオフを使用して再試行するか、Roktのサポートチームに連絡してください。
サンプル
{
"data": {
"code": "RequestJsonUnmarshalError",
"message": "リクエストボディをアンマーシャルできません"
}
}

200エラーシナリオ

HTTP Status 200は通常、成功した呼び出しを示します。ただし、Event APIはバッチAPIであるため、200応答は必ずしもリクエスト全体が正しく処理されたことを意味しません。開発者は、すべてのレコードが処理されたことを確認するために応答ペイロードを確認する必要があります。応答ペイロードには、エラーメッセージと共に失敗した特定のイベントオブジェクトが含まれています。

レベル 1レベル 2レベル 3レベル 4タイプ説明
dataBulkResponseItemObject
unprocessedRecordsList[BulkResponseItemObject]処理に失敗したレコードを含むオブジェクトのリスト。
errorErrorObjectレコードに関連するエラーを詳述します。
codeStringエラーコード
messageString詳細なエラーメッセージ
recordEventObjectフィールドには失敗した元のレコードが含まれています。
{
"data": {
"unprocessedRecords": [
{
"error": {
"code": "ValidationError",
"message": "Invalid content"
},
"record": {
"clientEventId": "fff4deeb-cdee-49ff-9aad-61b1c4256ca6",
"eventType": "conversion",
"eventTime": "2020-05-22T10:21:29.339Z",
"objectData": [
{
"name": "firstname",
"value": "john"
}
]
}
}
]
}
}

レガシー認証 (v1)

注記

これは、既存のユーザーおよび特定のカスタマーデータプラットフォーム (CDP) にオンボーディングするユーザー(具体的には Census、Hightouch、mParticle、Segment、Tealium)のみを対象としています。 Event API の新規ユーザーおよびその他すべての統合については、より簡単な認証体験のために /v2/events を使用するべきです。

Event API は、クライアント統合に OAuth 2.0 アプローチを活用しています。詳細については、OAuth 2.0 Credentials Flow を参照してください。Rokt Event API にアクセスするには、Rokt アプリ ID とアプリシークレットが必要です。

Rokt Reporting API のクレデンシャルを生成するには、同じ手順を踏むことができます。

Rokt Event API のエンドポイントを呼び出すにはアクセストークンが必要です。アクセストークンは、Rokt がクライアントアプリを識別し、各クライアントアプリがアクセスしているデータの種類を特定し、悪意のあるアプリがアクセス権のないデータにアクセスするのを防ぐことを可能にします。

アプリIDとアプリシークレットの生成

  1. One Platformにサインインします。

  2. 画面左下のアカウントアイコンの下にあるプロフィール設定に移動します。

img

  1. 個人用API認証情報の生成セクションまでスクロールします。

  2. アプリの名前を入力します。

  3. 生成をクリックします。

  4. イベントAPIとレポートAPIの両方の認証情報が直ちに生成され、次のようになります:

    AppId: "40svbin0d194subpohl079rhck"
    AppSecret: "1dimhvr1v6skae9uhvtgs3chs2astnjf0469df6ul9hurubtoovn"
  5. アプリIDとアプリシークレットを安全な場所に保管してください。このセッション後はアプリシークレットにアクセスできません。

  6. これらの認証情報をすぐに使用することができます。

アカウントを保護するために認証情報は機密として保持し、メールで送信しないでください。たとえRoktからの問い合わせであるかのように見えても、組織外に共有しないでください。Roktを正当に代表する者はアプリシークレットを尋ねることは決してありません。

呼び出しのタイミング

このエンドポイントを呼び出して、1時間の間、イベントAPIとやり取りするためのアクセストークンを生成します。1時間以上APIとのやり取りを続ける必要がある場合は、新しいアクセストークンを取得するためにこのエンドポイントを再度呼び出してください。

リクエスト

サンプル

curl -vX POST  https://api.rokt.com/auth/oauth2/token \
-H 'Authorization: Basic ${AuthToken}' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials'

フィールド

キー位置説明必須?
Authorizationheaderapp_idapp_secret はBasic HTTP認証を通して認証ヘッダーに渡す必要があり、One Platformの Profile Settings で生成できます。ヘッダーの内容は Basic base64encode(app_id:app_secret) です。はいBasic base64encocde(12345:abcde)
Content-Typeheaderリクエストのメディアタイプは常に application/x-www-form-urlencoded でなければなりません。はいapplication/x-www-form-urlencoded
grant_typebodyclient_credentials でなければなりません。はいclient_credentials

レスポンス

{
"access_token":
"eyJraWQiOiJPVUpHT1RjM09FWXROakkzUlMwME5UUkJMVGxCTkRrdFJqWXdOVVV3UkRNNE1FTTJDZz09IiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJkZW1vIiwidG9rZW5fdXNlIjoiYWNjZXNzIiwic2NvcGUiOiJyZXBvcnQtYXBpL3JlYWQtcmVwb3J0LWFwaSIsImF1dGhfdGltZSI6MTU4NTExMDA0MSwiaXNzIjoiaHR0cHM6Ly9jb2duaXRvLWlkcC51cy13ZXN0LTIuYW1hem9uYXdzLmNvbS91cy13ZXN0LTJfZG93Tlp1elRYIiwiZXhwIjoxNTg1MTEzNjQxLCJpYXQiOjE1ODUxMTAwNDEsInZlcnNpb24iOjIsImp0aSI6IkYwNzY5RDVDLTRDNTAtNDVDOC04OTcyLTI4MkUwODlDMkFFOSIsImNsaWVudF9pZCI6ImRlbW8ifQ.NOJIx7qLHFVXqKNZfJKsJlwitOvbHOLdknQ\_D33WjYe8O9ZE08t7LFgs7ANiwBicN5ejmdS7iND0cth5ViUWK5MKZxvLKI6dPG5RljegfpZJtGKqDT\_MFfpayvcOlkkZc5yRw9Bcgz\_fW2ha7q6BGRsUb-e9DZ0Pcb5zL\_HbRLbnvlhYCYi9rPmYOYG6BronvLwB8sg2kVubLQGn\_ASbK\_FW8bKPhqH4BL2\_JunGBzUKJPL9yNvOnFy7VKwlvH1OKUqKlCYbewOtUd1utcMNIb\_AbSGRtzJKslbE5VwQtL5bZ34kOCNH07gSolSGvqqw4dyxU4l0QSVXVmqgVYdKfA"
"expires_in": 3600,
"token_type": "Bearer"
}
POST /v1/events

リクエスト

リクエストは、ヘッダーを除き、POST /v2/events とすべての点で同一です。ヘッダーは次の形式を取ります:

ヘッダー
名前必須説明
Content-Typeapplication/jsonはいN/A
Charsetutf-8はいN/A
AuthorizationBearer ${access-token}はい/auth/oauth2/token エンドポイントから取得したアクセス トークン
Rokt-Version2020-05-21はいRokt の API バージョン。現在の最新バージョンは 2020-05-21です。
: このヘッダーを空にすると、潜在的に後方互換性のない最新バージョンが適用されます。無効な値は 400 bad request になります。
この記事は役に立ちましたか?