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

イベント API

概要

Roktのイベント API は、購入、アプリを開く、または店舗訪問など、あらゆるタイプのクライアントイベントをサポートできる柔軟で堅牢なインターフェースです。また、メールアドレス、購入額、クレジットカード BIN など、関連する属性もサポートします。

Rokt Ecommerce のパートナーは、異常検出のために Web SDK と併用してイベント API を使用でき、配置の挙動における不整合を検出するのに役立ちます。

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

認証

変換イベントを送信したいアカウントのために公開鍵と秘密鍵のペアを作成するには、Rokt アカウントマネージャーに連絡してください。受け取るキーは以下の通りです:

名称
Rokt 公開鍵rpub-*****-*
Rokt 秘密鍵rsec-*****-*

API エンドポイント

POST イベント

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

イベント API には 2 つの主要なユースケースがあります: 異常検出(パートナー向け)および コンバージョン報告(広告主向け)。

POST /v2/events

リクエスト

ヘッダー
名前必須説明
Content-Typeapplication/jsonはい該当なし
Charsetutf-8はい該当なし
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である必要があります。リクエストには、18か月以上前のタイムスタンプまたはイベントAPIが受信した時刻から5分以上未来のタイムスタンプを持つイベントが含まれている場合、拒否されます。この範囲外のタイムスタンプを持つイベントは処理されません。
metaDataいいえList[metaData]イベントに関する非ビジネスクリティカルな情報を提供します
nameはい文字列; 最大256文字フィールド名; プレフィックス rokt. (大文字小文字を区別しない) はRoktの使用のために保持されます
valueはい文字列; 最大65536文字フィールド値; バイナリ値の場合はBase64でエンコード
objectDataいいえList[objectData]イベントの文脈的詳細を含みます
nameはい文字列; 最大256文字プレフィックス rokt. (大文字小文字を区別しない) はRoktの使用のために保持されます
valueはい文字列; 最大65536文字フィールド値; バイナリ値の場合はBase64でエンコード
標準 objectDataフィールド

以下は、Rokt が Event API を通じて受け入れる標準の 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変換された支払いのクレジットカードBIN123456
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住所の最初の行123 Sesame St
address2住所の第二行 (アパート番号、階数など)Alphabet Boulevard
zipcode顧客の郵便番号90210, SW1W 0DT
city顧客の都市San Francisco
state顧客の州CA, California, NY, New York
country顧客の国US, United States, AU, Australia
サンプル

これは、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リクエストに関連付けられた一意の識別子で、トラブルシューティングの目的に使用されます。
本文

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

サンプル

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

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

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

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

:::

レスポンス

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

200エラーシナリオ

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

レベル 1レベル 2レベル 3レベル 4タイプ説明
dataBulkResponseItemObject
unprocessedRecordsList[BulkResponseItemObject]処理に失敗したレコードを含むオブジェクトのリストです。
errorErrorObjectレコードに関連するエラーを説明します。
codeStringエラーコード
messageString詳細なエラーメッセージ
recordEventObjectフィールドには、失敗した元のレコードが含まれています。
{
"data": {
"unprocessedRecords": [
{
"error": {
"code": "ValidationError",
"message": "無効なコンテンツ"
},
"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 App ID と App Secret が必要です。

これらの手順を使用して、Rokt Reporting API の認証情報を生成できます。

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

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

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

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

img

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

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

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

  4. Event API と Reporting API の両方の認証情報がすぐに生成され、次のように表示されます:

    AppId: "40svbin0d194subpohl079rhck"
    AppSecret: "1dimhvr1v6skae9uhvtgs3chs2astnjf0469df6ul9hurubtoovn"
  5. App ID と App Secret を安全な場所に保管します。このセッションの後は App Secret にアクセスできなくなります。

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

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

呼び出すタイミング

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

リクエスト

サンプル

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'

フィールド

KeyInDescriptionRequired?Example
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

リクエスト

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

ヘッダー
名前必須説明
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を返します。
この記事は役に立ちましたか?