iQ JavaScript拡張API
iQ JavaScript拡張APIは、基本的なJavaScriptコード拡張を使用してプロファイルを更新するためにPATCHメソッドを使用します。
このAPIと利用可能なオブジェクトフィールドについて詳しくは、iQ Profiles APIとiQ Profiles Objectsを参照してください。
動作原理
iQ Profilesは、iQ Tag Managementアカウントプロファイルからデータを取得し、基本的なJavaScriptコード拡張を更新するためにJSONオブジェクトを使用します。これにより、カスタムコードデプロイメントプロセスを使用してiQ Tag Managementプロファイルを管理することができます。
iQプロファイルオブジェクトでコンポーネントを作成、更新、削除するには、PATCH
メソッドを使用します。
PATCH /v3/tiq/accounts/{ACCOUNT}/profiles/{PROFILE}
PATCHメソッドを使用すると、プロファイルの構成をプログラムで変更し、保存または保存として行います。APIを使用して変更を行った後は、アプリケーションにログインして公開する必要があります。
cURLリクエストの例
curl --location --request PATCH 'https://platform.tealiumapis.com/v3/tiq/accounts/{ACCOUNT}/profiles/{PROFILE}' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUx...MiJ9' \
--header 'Content-Type: application/json' \
--data-raw '
認証
ベアラートークンはすべてのAPI呼び出しの認証に使用され、APIキーは認証呼び出しでのみ使用されます。ベアラートークンに加えて、認証応答には後続のサーバーサイドAPI呼び出しで使用する必要があるリージョン固有のホスト名も含まれます。
ベアラートークンをAPIキーから生成する方法については、Tealium API V3入門ガイドを参照してください。
プロファイルフィールド
プロファイルは、次の可能なフィールドを含むJSONオブジェクトです:
フィールド | タイプ | 必須 | 説明 |
---|---|---|---|
versionTitle |
文字列 | オプション | 保存されたバージョンのタイトル。saveType がsaveAs に構成されている場合のデフォルト:API | {TIMESTAMP} saveType がsave に構成されている場合のデフォルト:既存のバージョンタイトル。 |
saveType |
文字列 | オプション | PATCHリクエストで実行する保存のタイプ:save またはsaveAs 。デフォルトはsaveAs です。 |
notes |
文字列 | 必須 | 公開バージョンに関する追加のノート。 |
operationList |
配列 | 必須 | 操作オブジェクトのリスト。たとえば、複数のJavaScript拡張。 |
op |
文字列 | 必須 | 実行する操作:add 、replace 、またはremove 。 |
path |
文字列 | 必須 | 更新するコンポーネントのコンポーネントタイプとIDの形式:/{TYPE}/{ID} 。 |
value.object |
文字列 | 必須 | 更新されるオブジェクトのタイプ:variable またはextension 。 |
value.name |
文字列 | 必須(add/replaceの場合) | コンポーネントのタイトル。 |
value.notes |
文字列 | オプション | コンポーネントに関する追加のノート。 |
value.type |
文字列 | 必須(拡張の場合) | 追加する拡張のタイプ。 |
value.scope |
文字列 | オプション | 拡張のスコープの名前、またはタグスコープの拡張の場合はタグIDのカンマ区切りのリスト。Before Load Rules After Load Rules DOM Ready Tag Scoped Extensions After Tag Extensions |
value.occurrence |
文字列 | オプション | JavaScriptコード拡張がページの読み込みごとに実行される回数を決定します。値:Run Once またはRun Always 。デフォルト:Run Always 。 |
value.status |
文字列 | オプション | コンポーネントのオン/オフの状態:active またはinactive 。デフォルト: active |
value.selectedTargets |
Map<string, Boolean> | オプション | コンポーネントを公開する環境のオブジェクト:{ "prod" : true|false, "qa" : true|false, "dev" : true|false } デフォルト:すべての環境がtrue に構成されています。 |
value.conditions |
配列[オブジェクト] | オプション | 拡張に含まれる変数、演算子、値を含む条件オブジェクト。PATCHリクエストに条件を含めない場合でも、プロファイルに条件が存在する場合、リクエストはremove アクションと見なされます。 |
value.configuration |
配列[オブジェクト] | 必須 | コンポーネントの構成オブジェクト。このオブジェクトは、コンポーネントのタイプごとに異なります。この配列フィールドには1つのオブジェクトのみが許可されています。例:{ name: “code” value: “JSONエスケープされたJavaScriptコード” } |
リクエストの例
{
"versionTitle":"Version 2023.09.19.1127",
"saveType": "saveAs",
"notes": "ここにバージョンのノート",
"operationList":[
{
"op":"add",
"path":"/extensions",
"value":{
"object": "extension",
"name": "マイ拡張",
"notes": "ここに拡張のノート",
"type": "Javascript Code",
"scope": "After Load Rules",
"occurence": "Run Always",
"status": "active",
"selectedTargets":{
"qa": true,
"dev": true,
"prod": true
},
"conditions": [
[
{
"variable": "va.badges.30",
"operator": "is_badge_assigned",
"value": ""
}
]
],
"configuration": [
{
"name": "code",
"value": "b.page_name ||= \"Generic Page\";"
}
]
}
}
]
}
PATCH操作パラメータ
POST
、PUT
、DELETE
メソッドの代わりに、PATCH
メソッドはop
パラメータを使用して実行するアクションを指定します。
op
パラメータは、次の値をサポートしています:
add
- コンポーネントを作成します。replace
- コンポーネントを更新します。remove
- コンポーネントを削除します。
コンポーネントのタイプとIDを指定するには、path
パラメータを使用します。path
パラメータの形式は/{TYPE}/{ID}
です。
たとえば、拡張を追加する場合は次のようにします:
"op" : "add",
"path" : "/extensions"
特定の拡張を更新する場合は、パスにIDを追加します:
"op" : "replace",
"path" : "/extensions/503"
拡張の作成
このPATCHメソッドは、プロファイルオブジェクトと追加の拡張フィールドを受け取ります。
リクエストの例
{
"versionTitle":"Version 2023.09.19.1127",
"saveType": "saveAs",
"notes": "ここにバージョンのノート",
"operationList":[
{
"op":"add",
"path":"/extensions",
"value":{
"object": "extension",
"name": "小文字変換拡張",
"notes": "ここに拡張のノート",
"type": "Lower-Casing",
"scope": "After Load Rules",
"occurence": "Run Always",
"status": "active",
"selectedTargets":{
"qa": true,
"dev": true,
"prod": true
},
"configuration":[
{
"all": true,
"lower_case_arrays": "true",
"constructor": "",
"initialize": ""
}
]
}
}
]
}
拡張の更新
このPATCHメソッドは、プロファイルオブジェクトと追加の拡張フィールドを受け取ります。
リクエストの例
{
"versionTitle":"Version 2023.09.19.1127",
"saveType": "saveAs",
"notes": "ここにバージョンのノート",
"operationList":[
{
"op":"replace",
"path":"/extensions",
"value":{
"object": "extension/86",
"name": "小文字変換拡張",
"notes": "ここに拡張のノート",
"type": "Lower-Casing",
"scope": "After Load Rules",
"occurence": "Run Always",
"status": "active",
"selectedTargets":{
"qa": true,
"dev": true,
"prod": true
},
"configuration":[
{
"all": true,
"lower_case_arrays": "true",
"constructor": "",
"initialize": ""
}
]
}
}
]
}
拡張の削除
このPATCHメソッドは、プロファイルオブジェクトと追加の拡張フィールドを受け取ります。
リクエストの例
{
"versionTitle":"Version 2023.09.19.1127",
"saveType": "saveAs",
"notes": "ここにバージョンのノート",
"operationList":[
{
"op":"remove",
"path":"/extensions/86",
"value":{
"object": "extension",
}
}
]
}
エラーメッセージ
このエンドポイントの潜在的なエラーメッセージ:
エラーコード | エラーメッセージ |
---|---|
400 | "Validate patch request failed due to unsupported extension type {TYPE}" "Unsupported extension type {TYPE}" "Validate patch request failed due to %s" "Cannot set tag scope extension with tags that do not exist, id: {ID} - {ACCOUNT} | profile: {PROFILE}" "Cannot set extension scope to sync if the setting is not turned on - {ACCOUNT} | profile: {PROFILE}" "Error in getting next extension id - {ACCOUNT} | profile: {PROFILE}" "Profile libraries are out of date, merge changes before patching profile - {ACCOUNT} | profile: {PROFILE}" "patchProfile.arg2.notes: must not be empty" |
404 | "Extension validation failed - extensionId: {ID} | account: {ACCOUNT} | profile: {PROFILE}. Cause: not found" "Extension ID {ID} not found in the profile {PROFILE}" "Account: {ACCOUNT}, profile: {PROFILE} not found" |
409 | "Conflict with profile extension: _id: {ID}, extType: {EXT_TYPE}, title: {TITLE}" "Users are currently viewing the same account: {ACCOUNT} profile: {PROFILE}" "Error saving profile: {PROFILE} for account: {ACCOUNT}, duplicate versions: {VERSIONS}" |
500 | "An error occurred" "Profile: {PROFILE} inherits from library profile" "Unable to invoke request: unknown host, see logs for more detail." "Error processing json for extension - account: {ACCOUNT} | profile: {PROFILE}" "Error saving profile metadata - account: {ACCOUNT} | profile: {PROFILE}" "Error saving profile - account: {ACCOUNT} | profile: {PROFILE}" "Error saving profile(legacy) - {ACCOUNT} | profile: {PROFILE}" |
最終更新日 :: 2024年March月29日