V2 Partner Experiences API
このドキュメントは、RoktのAPIと連携してRoktからエクスペリエンスコンテンツを取得するために必要な関連エンドポイントを概説しています。このエンドポイントは、オファーを活用したエクスペリエンスを直接パートナーに提供するように設計されています。リクエストはこのエンドポイントに送信され、レスポンスはUX Helperライブラリに渡されて適切に処理されます。
エンドポイントエンドポイント への直接リンク
| 環境 | アクション | URL |
|---|---|---|
| 本番環境 | POST | https://server-api.rokt.com/v2/partner/experiences |
| テスト環境 | POST | https://server-api-demo.rokt.com/v2/partner/experiences |
テストのベストプラクティステストのベストプラクティス への直接リンク
テストエンドポイント https://server-api-demo.rokt.com/v2/partner/experiences は、テスト専用に設計されており、本番データやパフォーマンスに影響を与えることなく統合を検証するために使用する必要があります。APIドキュメントに指定されている適切なヘッダーとリクエストフォーマットを使用して、本番に近いシナリオを効果的にエミュレートしてください。
リクエストリクエスト への直接リンク
認証ヘッダー認証ヘッダー への直接リンク
このエンドポイントとやり取りするために必要な資格情報を取得するには、アカウントマネージャーと連携してください
| Header-key | 必須 | 説明 | タイプ | 注意事項 |
|---|---|---|---|---|
| rokt-pub-id | はい | 提供されたクライアントのパブリックIDを含みます | string | これはRoktによって提供されます。 |
| rokt-secret | はい | 提供されたクライアントのパブリックシークレットを含み、パブリックIDと一致する必要があります | string | これはRoktによって提供されます。 |
必須ヘッダー必須ヘッダー への直接リンク
| Header-key | 必須 | 説明 | タイプ | 例 |
|---|---|---|---|---|
| content-type | はい | メディアタイプ | string | “application/json” |
| accept | はい | レスポンスの期待メディアタイプ | string | “application/json” |
| rokt-tag-id | はい | RoktタグID | string | 1234567890 |
本文本文 への直接リンク
| プロパティ名 | 必須 | データ型 | 説明 |
|---|---|---|---|
| sessionId | いいえ | string | 既存のRoktセッションのセッションIDが存在する場合 |
| pageIdentifier | はい | string | ビューを区別するために使用されるテキスト |
| attributes | はい | Map<string, string> | オファー選択時に使用されるユーザーの属性データを保持 |
| integration | はい | Integration | リクエストを行う統合に関連するデータ。これはAndroid、iOS、Web用のUXHelperライブラリから取得可能です |
統合統合 への直接リンク
| プロパティ名 | 必須 | データ型 | 説明 |
|---|---|---|---|
| name | Yes | string | リクエストを行う統合の一般名を示します |
| version | Yes | string | リクエストを行う統合のバージョン |
| framework | Yes | string | 使用されている統合フレームワーク(例: Flutter, React Native) |
| platform | Yes | string/enum | オファーを要求するパートナープラットフォーム(例: Web, Mobile, iOS) |
| layoutSchemaVersion | Yes | string | 統合に対して最も互換性のあるスキーマバージョン |
| deviceLocale | Yes | string | ユーザーのデバイスからのロケール設定 |
| deviceModel | Yes | string | iOSのデバイスモデルまたはAndroidのビルドモデル |
| deviceType | Yes | string | デバイスの種類/フォームファクター(例: Phone, Tablet) |
| operatingSystem | Yes | string | ユーザーのデバイスのオペレーティングシステム |
| operatingSystemVersion | Yes | string | ユーザーのデバイスのOSバージョン |
| packageName | Yes | string | ホストアプリケーションのパッケージ名またはバンドル識別子 |
| packageVersion | Yes | string | ホストアプリケーションのパッケージバージョンまたはバンドルバージョン |
| metadata | No | Map<string, string> | 統合またはデバイスに関連する追加データ |
リクエスト例リクエスト例 への直接リンク
JSON リクエストボディ/ペイロード
クリックして展開
{
"attributes": {
"email": "test@rokt.com",
"locale": "en-AU"
},
"pageIdentifier": "your_page_identifier",
"integration": {
"name": "UX Helper iOS",
"version": "1.0",
"framework": "Swift",
"platform": "iOS",
"layoutSchemaVersion": "2.1.0",
"packageVersion": "1.0.0",
"packageName": "com.partner",
"operatingSystem": "iOS",
"operatingSystemVersion": "18",
"deviceType": "Phone",
"deviceModel": "iPhone",
"metadata": {
"IsCharging": "true"
}
},
}
レスポンスレスポンス への直接リンク
成功レスポンス (200)成功レスポンス (200) への直接リンク
ヘッダーヘッダー への直接リンク
これらのヘッダーは他のEcommerce APIとの一貫性のために返されますが、パートナーまたはUXライブラリによって消費されることは期待されていません。
| ヘッダーキー | 説明 |
|---|---|
| rokt-account-id | 提供されたオファーのアカウントID |
| rokt-session-id | 関連するRoktセッションID |
| etag | ユーザーのRokt etag値 |
成功ボディ成功ボディ への直接リンク
ルートルート への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| PageContext | PageContext | 検出されたページに関連するデータ |
| Plugins | Layout[] | プラグインオブジェクトとフォント |
| SessionId | string | RoktセッションID。Webの場合、このセッションIDはヘッダーから取得されます |
| Success | bool | リクエストが成功したか無効であったかを示します |
| Token | string | セッションレベルのデータ整合性JWT |
| Options | SdkOptions | 消費するRokt SDKに 提供されるランタイム構成のコレクション |
SdkOptionsSdkOptions への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| UseDiagnosticEvents | bool | Rokt SDKが診断情報を出力するかどうかを示します |
PageContextPageContext への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| IsPageDetected | bool | リクエストがパートナーページと一致したかどうかを示します |
| PageId | string | 一致したOPページ構成を表すGUID |
| PageInstanceGuid | string | 選択されたページの特定のインスタンスを表すGUID |
| PageVariantName | string | 選択されたページバリアントの名前 |
| PartnerContentTemplate | string | 支払い体験に使用されるテンプレート |
| RoktTagId | string | パートナー/広告主のタグID |
| Token | string | ページレベルのデータ整合性JWT |
LayoutPluginLayoutPlugin への直接リンク
| プロパティ名 | タイプ | 説明 |
|---|---|---|
| Fonts | Font[] | SDKがオファーで利用するフォントの配列 |
| Plugin | Plugin | プラグインの設定 |
PluginPlugin への直接リンク
| プロパティ名 | タイプ | 説明 |
|---|---|---|
| Config | PluginConfig | レイアウトをレンダリングするための設定を定義 |
| Id | string | レイアウトID / トランザクションレイアウト外部ID |
| Name | string | レンダリングに使用されるプラグインの名前 |
| TargetElementPosition | string | targetElementSelectorに基づく位置配置のアクション |
| TargetElementRelation | string | 配置とtargetElementSelectorの関係 |
| TargetElementSelector | string | ページ内にレイアウトを配置する位置を識別 |
| TargetSection | string | さまざまなターゲティングタイプを識別、例: サンキューページ |
| Url | string | プラグインをダウンロードするためのURL |
PluginConfigPluginConfig への 直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| InstanceGuid | string | プラグイン/レイアウトの特定のインスタンスを表すGUID |
| LayoutSchemaVersion | string | レイアウトに使用されるレイアウトスキーマのバージョン |
| OuterLayoutSchema | string | Outer LayoutのUIを定義するJSONスキーマ |
| Slots | Slot [] | オファースロットのコレクション |
| Token | string | プラグイン/レイアウトレベルのデータ整合性JWT |
SlotSlot への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| InstanceGuid | string | Slotの特定のインスタンスを表すGUID |
| LayoutVariant | LayoutVariant | Slot/Offerに使用されるLayoutVariantの定義 |
| Offer | Offer | 顧客に表示するために使用されるOfferの定義 |
| Token | string | プラグイン/レイアウトレベルのデータ整合性JWT |
LayoutVariantLayoutVariant への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| LayoutVariantId | string | 自動生成されたID |
| ModuleName | string | レイアウトモジュール名 |
| FormatType | string | オファーを表示するフォーマットタイプ |
| LayoutVariantSchema | string | バリアントを活用してオファーをレンダリングするUIを定義するJSONスキーマ |
OfferOffer への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| AccountId | long | オファーに関連付けられたRoktアカウントID |
| CampaignId | string | OPでリンクされたキャンペーンのID |
| Creative | Creative | OPで定義されたオファークリエイティブ |
| Metadata | string | オファーに関連するメタデータを含む |
クリエイティブクリエイティブ への直接リンク
| プロパティ名 | タイプ | 説明 |
|---|---|---|
| ReferralCreativeId | string | クリエイティブ設定に関連付けられたID |
| InstanceGuid | string | クリエイティブの特定のインスタンスを表すGUID |
| Copy | Map<string, string> | オファーコンテンツに関連するテキストを含む |
| ResponseOptionsMap | Map<string, ResponseOption> | CTAボタンの設定 |
| Links | Map<string, Link> | レイアウトスキーマによって参照されるオファーの利用可能なリンク |
| Images | Map<string, Image> | レイアウトスキーマによって参照されるオファーの利用可能な画像 |
| Icons | Map<string, Icon> | レイアウトスキーマによって参照されるオファーの利用可能なアイコン |
| Token | string | クリエイティブレベルのデータ整合性JWT |
フォントフォント への直接リンク
| プロパティ名 | データ型 | 説明 |
|---|---|---|
| FontFamily | string | フォントファミリーを指定します(例: Arial, Helvetica)。 |
| FontStyle | string | フォントスタイルを指定します(例: normal, italic)。 |
| FontWeight | string | フォントの太さを指定します(例: normal, bold)。 |
| Src | string[] | フォントファイルのソースURLまたはパスの配列です。 |
レスポンスオプションレスポンスオプション への直接リンク
| プロパティ名 | データ型 | 説明 |
|---|---|---|
| action | string | レスポンスのアクション |
| responseOptionGuid | string | レスポンスオプションに固有で、イベント呼び出しの一部として送信されるGUID |
| signalType | string | インタラクション時にイベントを送信する際に使用するEventType。ほとんどの場合、SignalResponseです。 |
| label | string | ボタン/リンクに表示されるラベル |
| successText | string | インタラクション時に表示されるテキスト(パイロットには関係ありません) |
| isPositive | boolean | レスポンスがポジティブなエンゲージメントかネガティブなエンゲージメントかを示します |
| url | string | アクションを実行するURL |
リクエストエラーレスポンス (HTTP 4xx)リクエストエラーレスポンス (HTTP 4xx) への直接リンク
ルート/ボディルート/ボディ への 直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| title | string | トップレベルの失敗理由 |
| status | number | HTTP ステータスコード |
| success | boolean | リクエストが成功したかどうかを示します |
| errors | Error[] | 発生したバリデーションエラーのコレクション |
エラーエラー への直接リンク
| プロパティ名 | 型 | 説明 |
|---|---|---|
| code | string | 対応するエラーコード |
| message | string | エラーを説明するメッセージ |
| value | boolean | 無効だった提供値があればそれを示します |
成功レスポンスボディ成功レスポンスボディ への直接リンク
成功レスポンス成功レスポンス への直接リンク
クリックして展開
{
"sessionId": "b1fb003c-e904-4083-b7b9-03cde555a7a1",
"pageContext": {
"pageInstanceGuid": "b1fb003c-e905-4375-91bd-242e74b12277",
"pageId": "6b1214f0-43e1-447d-b0bb-cf493d361411",
"language": "en",
"isPageDetected": true,
"pageVariantName": "iOSVaraint1",
"token": "<JWT token placeholder>"
},
"plugins": [
{
"plugin": {
"id": "3353172846080032866",
"name": "dcui",
"url": "https://wsdk.rokt.com/plugins/dcui/index.html",
"targetElementSelector": "#target_element",
"targetElementPosition": "append",
"targetElementRelation": "child",
"targetSection": "None",
"config": {
"slots": [
{
"instanceGuid": "8f492d28-83fb-4813-877e-26e752ea9474",
"offer": {
"campaignId": "2749386944931233793",
"accountId": "106",
"maxTotalItemsQtyInOffer": 1,
"creative": {
"referralCreativeId": "2760914349384466797",
"instanceGuid": "c9f37d78-731d-4a0e-b8bc-712bd8c46cc1",
"responseOptionsMap": {
"positive": {
"id": "2760914349384466794",
"action": "Url",
"instanceGuid": "1d47ded1-b483-44e6-abf8-1d1d5faa82bc",
"signalType": "SignalResponse",
"shortLabel": "Yes",
"longLabel": "Yes",
"shortSuccessLabel": "Email Sent",
"isPositive": true,
"url": "http://example.com",
"ignoreBranch": false,
"urlBehavior": "newTab",
"token": "<JWT token placeholder>"
```json
},
"negative": {
"id": "2760914349384466796",
"action": "CaptureOnly",
"instanceGuid": "24de5c75-ff04-41c5-b3f7-7d2ee129ecc6",
"signalType": "SignalResponse",
"shortLabel": "結構です",
"longLabel": "結構です",
"isPositive": false,
"ignoreBranch": false,
"urlBehavior": "newTab",
"token": "<JWT token placeholder>"
}
},
"links": {
"termsAndConditions": {
"url": "https://server-api.rokt.com/LegalTerms/TermsAndConditions/2760914349384466797",
"title": "利用規約"
}
},
"images": {},
"icons": {},
"token": "<JWT token placeholder>",
"advertiser": {
"name": "000. For Widget Testing",
"brand": "000. For Widget Testing"
},
"copy": {
"creative.copy": "Nicholas Grasevski 2",
"creative.termsAndConditions.message": "T&Cについては[rokt.com](https://www.rokt.com)をご覧ください",
"creative.termsAndConditions.close.copy": "閉じる",
"creative.termsAndConditions.title": "利用規約",
"creative.tag": "B2Bサービス",
"creative.success.title": "成功",
"creative.success.copy": "確認メールをtest1593754986316@rokt.comに送信しました。",
``````json
"creative.termsAndConditions.link": "https://server-api.rokt.com/LegalTerms/TermsAndConditions/2760914349384466797"
}
},
"metadata": {}
},
"layoutVariant": {
"layoutVariantId": "3353172846080032865",
"moduleName": "standard-marketing",
"formatType": "Text",
"layoutVariantSchema":"<JSON encoded schema>"
},
"token": "<JWT token placeholder>"
},
],
"instanceGuid": "ce5158a9-dc59-4a97-9006-a299901e4587",
"outerLayoutSchema": "<JSON encoded schema>",
"layoutSchemaVersion": "2.0",
"token": "<JWT token placeholder>"
}
},
"fonts": []
}
],
"options": {
"useDiagnosticEvents": true
},
"success": true
}
空の成功レスポンス空の成功レスポンス への直接リンク
特定のユーザーに関連するオファーがないという稀なケースがあります。この発生の可能性は、リクエスト時により多くの属性データを提供することで減少させることができます。この場合、Roktはエクスペリエンスのないペイロードを返します:
{
"sessionId": "b2170028-cf39-4d23-849d-f1c38be50000",
"pageContext": {
"pageInstanceGuid": "b2170028-cf39-4ff4-8e7d-d88eb9e441e6",
"isPageDetected": true,
"token": "<JWT token placeholder>"
},
"plugins": [],
"options": {
"useDiagnosticEvents": false
},
"token": "<JWT token placeholder>",
"success": true,
}
例: リクエスト検証エラー例: リクエスト検証エラー への直接リンク
HTTPレスポンスコード: 422httpレスポンスコード-422 への直接リンク
クリックして展開
{
"title": "Validation failed",
"status": 422,
"success": false,
"errors": [
{
"code": "IntegrationNameNotProvided",
"message": "Integration.Name is required"
},
{
"code": "IntegrationVersionNotProvided",
"message": "Integration.Version is required"
},
{
"code": "IntegrationFrameworkNotProvided",
"message": "Integration.Framework is required"
},
{
"code": "IntegrationPlatformInvalid",
"message": "Integration.Platform is invalid"
},
{
"code": "IntegrationLayoutSchemaVersionNotProvided",
"message": "Integration.LayoutSchemaVersion is required"
},
{
"code": "IntegrationDeviceLocaleNotProvided",
"message": "Integration.DeviceLocale is required"
},
{
"code": "IntegrationDeviceModelNotProvided",
"message": "Integration.DeviceModel is required"
},
{
"code": "IntegrationDeviceTypeNotProvided",
"message": "Integration.DeviceType is required"
},
{
"code": "IntegrationOperatingSystemNotProvided",
"message": "Integration.OperatingSystem is required"
},
{
"code": "IntegrationOperatingSystemVersionNotProvided",
"message": "Integration.OperatingSystemVersion is required"
},
{
"code": "IntegrationPackageNameNotProvided",
"message": "Integration.PackageName が必要です"
},
{
"code": "IntegrationPackageVersionNotProvided",
"message": "Integration.PackageVersion が必要です"
},
{
"code": "PageIdentifierNotProvided",
"message": "PageIdentifier が必要です"
},
{
"code": "PartnerIdNotProvided",
"message": "rokt-tag-id が不足しているか/間違っています"
}
]
}