iQ JavaScript拡張API
iQ JavaScript拡張APIは、基本的なJavaScriptコード拡張を使用してプロファイルを更新するためのPATCHメソッドを使用します。
このAPIと利用可能なオブジェクトフィールドについて詳しくは、iQ Profiles APIとiQ Profiles Objectsをご覧ください。
仕組み
iQ ProfilesはJSONオブジェクトを使用してiQタグ管理アカウントプロファイルからデータを取得し、基本的なJavaScriptコード拡張を更新します。これにより、カスタムコードのデプロイメントプロセスを使用してiQタグ管理プロファイルを管理できます。
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呼び出しで使用する必要がある地域固有のホスト名が含まれます。
APIキーからベアラートークンを生成する方法については、Authenticationを参照してください。
プロファイルフィールド
プロファイルは、以下の可能なフィールドを含むJSONオブジェクトです:
フィールド | タイプ | 必須 | 説明 |
---|---|---|---|
versionTitle |
String | Optional | 保存されたバージョンのタイトル。saveType がsaveAs に構成されている場合のデフォルト:API | {TIMESTAMP} saveType がsave に構成されている場合のデフォルト:既存のバージョンタイトル。 |
saveType |
String | Optional | PATCHリクエストで実行する保存のタイプ:save またはsaveAs 。デフォルトはsaveAs 。 |
notes |
String | Required | パブリッシュバージョンに関する追加のノート。 |
operationList |
Array | Required | 操作オブジェクトのリスト。例えば、複数のJavaScript拡張。 |
op |
String | Required | 実行する操作:add 、replace 、またはremove 。 |
path |
String | Required | 更新するコンポーネントのタイプとID、形式:/{TYPE}/{ID} 。 |
value.object |
String | Required | 更新されるオブジェクトのタイプ:variable またはextension 。 |
value.name |
String | Required (for add/replace) | コンポーネントのタイトル。 |
value.notes |
String | Optional | コンポーネントに関する追加のノート。 |
value.type |
String | Required (for extensions) |
追加する拡張のタイプ。 |
value.scope |
String | Optional | 拡張のスコープ名、またはタグスコープの拡張の場合は、タグIDのカンマ区切りのリスト。Before Load Rules After Load Rules DOM Ready Tag Scoped Extensions After Tag Extensions |
value.occurrence |
String | Optional | JavaScriptコード拡張がページロードごとに実行される回数を決定します。値:Run Once またはRun Always 。デフォルト:Run Always 。 |
value.status |
String | Optional | コンポーネントのオン/オフ状態:active またはinactive 。デフォルト: active |
value.selectedTargets |
Map <string, Boolean> | Optional | コンポーネントを公開する環境のオブジェクト:{ "prod" : true|false, "qa" : true|false, "dev" : true|false } デフォルト:すべての環境がtrue に構成されています。 |
value.conditions |
Array[object] | Optional | 拡張に対する条件オブジェクトで、変数、演算子、値を含みます。PATCHリクエストに条件を含めない場合、プロファイルに条件が存在すると、リクエストはremove アクションと見なされます。 |
value.configuration |
Array[object] | Required | コンポーネントの構成オブジェクト。このオブジェクトは、コンポーネントのタイプごとに異なります。この配列フィールドには1つのオブジェクトのみが許可されます。例:{ name: “code” value: “JSON-escaped JavaScript code here” } |
リクエストの例
{
"versionTitle":"Version 2023.09.19.1127",
"saveType": "saveAs",
"notes": "version notes here",
"operationList":[
{
"op":"add",
"path":"/extensions",
"value":{
"object": "extension",
"name": "My extension",
"notes": "extension notes here",
"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": "version notes here",
"operationList":[
{
"op":"add",
"path":"/extensions",
"value":{
"object": "extension",
"name": "Lowercase extension",
"notes": "extension notes here",
"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": "version notes here",
"operationList":[
{
"op":"replace",
"path":"/extensions",
"value":{
"object": "extension/86",
"name": "Lowercase extension",
"notes": "extension notes here",
"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": "version notes here",
"operationList":[
{
"op":"remove",
"path":"/extensions/86",
"value":{
"object": "extension",
}
}
]
}
エラーメッセージ
このエンドポイントの可能性のあるエラーメッセージ:
エラーコード | エラーメッセージ |
---|---|
400 | "サポートされていない拡張タイプ{TYPE}により、パッチリクエストの検証に失敗しました" "サポートされていない拡張タイプ{TYPE}" "%sによりパッチリクエストの検証に失敗しました" "存在しないタグでタグスコープ拡張を構成できません、id: {ID} - {ACCOUNT} | プロフィール: {PROFILE}" "構成がオンになっていない場合、拡張スコープを同期に構成できません - {ACCOUNT} | プロフィール: {PROFILE}" "次の拡張IDの取得でエラーが発生しました - {ACCOUNT} | プロフィール: {PROFILE}" "プロフィールライブラリが古いです、プロフィールをパッチする前に変更をマージしてください - {ACCOUNT} | プロフィール: {PROFILE}" "patchProfile.arg2.notes: 空であってはなりません" |
404 | "拡張検証に失敗しました - extensionId: {ID} | アカウント: {ACCOUNT} | プロフィール: {PROFILE}. 原因: 見つかりません" "プロフィール{PROFILE}に拡張ID {ID}が見つかりません" "アカウント: {ACCOUNT}, プロフィール: {PROFILE}が見つかりません" |
409 | "プロフィール拡張との競合: _id: {ID}, extType: {EXT_TYPE}, title: {TITLE}" "ユーザーが現在同じアカウントを表示しています: {ACCOUNT} プロフィール: {PROFILE}" "プロフィールの保存エラー: {PROFILE} for account: {ACCOUNT}, 重複するバージョン: {VERSIONS}" |
500 | "エラーが発生しました" "プロフィール: {PROFILE}はライブラリプロフィールから継承します" "リクエストを呼び出すことができません: 不明なホスト、詳細はログを参照してください。" "拡張のjson処理エラー - アカウント: {ACCOUNT} | プロフィール: {PROFILE}" "プロフィールメタデータの保存エラー - アカウント: {ACCOUNT} | プロフィール: {PROFILE}" "プロフィールの保存エラー - アカウント: {ACCOUNT} | プロフィール: {PROFILE}" "プロフィール(レガシー)の保存エラー - {ACCOUNT} | プロフィール: {PROFILE}" |
最終更新日 :: 2024年June月27日