Adobe Experience Platform Launch は、Adobe Experience Platform のデータ収集テクノロジースイートとしてリブランドされています。 その結果、製品ドキュメント全体でいくつかの用語の変更がロールアウトされました。 用語の変更点の一覧については、次のドキュメントを参照してください。
エッジ拡張機能内のすべてのライブラリモジュールには、実行時に context
オブジェクトが提供されます。 このドキュメントでは、context
オブジェクトによって提供されるプロパティと、それらがライブラリモジュールで果たす役割について説明します。
arc
プロパティは、ルールをトリガーするイベントに関する情報を提供するオブジェクトです。以下の節では、このオブジェクトに含まれる様々なサブプロパティについて説明します。
event
オブジェクトは、ルールをトリガーしたイベントを表し、次の値を含みます。
logger.log(context.arc.event);
プロパティ | 説明 |
---|---|
xdm |
イベントの XDM オブジェクト。 |
data |
カスタムデータレイヤー。 |
request
は Adobe Experience Platform Edge Network からのオブジェクトで、クライアントデバイスからのリクエストと混同されないように、少し変更されています。
logger.log(context.arc.request)
request
オブジェクトには、body
と head
の 2 つの最上位プロパティがあります。body
プロパティには Experience Data Model(XDM)情報が含まれており、「Launch」に移動して「エッジトレース」タブを選択すると、Adobe Experience Platform Debugger で調べることができます。
ruleStash
は、アクションモジュールからすべての結果を収集するオブジェクトです。
logger.log(context.arc.ruleStash);
各拡張機能には独自の名前空間があります。例えば、拡張機能の名前が「send-beacon
」である場合、send-beacon
アクションの結果はすべて ruleStash['send-beacon']
名前空間に保存されます。
名前空間は拡張機能ごとに一意で、先頭に「undefined
」の値が付きます。
名前空間は、各アクションから返された結果で上書きされます。例えば、transform
拡張機能に generate-fullname
と generate-fulladdress
の 2 つのアクションが含まれているとします。これら 2 つのアクションはルールに追加されます。
generate-fullname
アクションの結果が Firstname Lastname
の場合、アクションの完了後、ルールが次のように表示されます。
{
transform: 'Firstname Lastname'
}
generate-address
アクションの結果が 3900 Adobe Way
の場合、アクションの完了後、ルールが次のように表示されます。
{
transform: '3900 Adobe Way'
}
generate-address
アクションによって新しい値で上書きされたので、「Firstname Lastname」はルール内に存在しなくなりました。
ruleStash
で transform
名前空間内に両方のアクションの結果を格納する場合は、次の例のようなアクションモジュールを記述します。
module.exports = (context) => {
let transformRuleStash = context.arc.ruleStash.transform;
if (!transformRuleStash) {
transformRuleStash = {};
}
transformRuleStash.fullName = 'Firstname Lastname';
return transformRuleStash;
}
このアクションを初めて実行する場合、ruleStash
は undefined
で始まり、空のオブジェクトとして初期化されます。次にアクションが実行されると、このアクションが以前呼び出されたときに返された ruleStash
を受け取ります。オブジェクトを ruleStash
として使用すると、他のアクションによって以前設定されたデータが拡張機能から失われることなく、新しいデータを追加できます。
この方法を使用する場合は、常に完全な拡張機能ルールを返すように注意してください。値のみを返すと、設定した他のプロパティが上書きされます。
utils
プロパティは、タグのランタイムに固有のユーティリティを提供するオブジェクトを表します。
logger
ユーティリティを使用すると、Adobe Experience Platform Debugger を使用したデバッグセッション中に表示されるメッセージをログに記録できます。
context.utils.logger.error('Error!');
ロガーには次のメソッドがあります。message
はログに記録するメッセージです。
メソッド | 説明 |
---|---|
log(message) |
コンソールにメッセージを記録します。 |
info(message) |
コンソールに情報メッセージを記録します。 |
warn(message) |
コンソールに警告メッセージを記録します。 |
error(message) |
コンソールにエラーメッセージを記録します。 |
debug(message) |
コンソールにデバッグメッセージを記録します。これは、ブラウザーコンソール内で verbose ログが有効になっている場合にのみ表示されます。 |
このユーティリティにより、Fetch API が実装されます。この関数を使用して、サードパーティのエンドポイントにリクエストを送信できます。
context.utils.fetch('http://example.com/movies.json')
.then(response => response.json())
このユーティリティは、現在のタグのランタイムライブラリのビルドに関する情報を含むオブジェクトを返します。
logger.log(context.utils.getBuildInfo().turbineBuildDate);
オブジェクトには、次の値が含まれています。
プロパティ | 説明 |
---|---|
turbineVersion |
現在のライブラリ内で使用されている Turbine バージョン。 |
turbineBuildDate |
コンテナ内で使用されている Turbine のバージョンが作成された日付(ISO 8601 形式)。 |
buildDate |
現在のライブラリが構築された日付(ISO 8601 形式)。 |
environment |
このライブラリが構築された環境。development 、staging 、production. などの値が使用されます。 |
次の例は、getBuildInfo
オブジェクトで返される値を示しています。
{
turbineVersion: "1.0.0",
turbineBuildDate: "2016-07-01T18:10:34Z",
buildDate: "2016-03-30T16:27:10Z",
environment: "development"
}
このユーティリティは、 拡張機能の設定ビューから最後に保存された settings
オブジェクトを返します。
logger.log(context.utils.getExtensionSettings());
このユーティリティは、対応するライブラリモジュールビューから最後に保存された settings
オブジェクトを返します。
logger.log(context.utils.getSettings());
このユーティリティは、モジュールをトリガーするルールに関する情報を含むオブジェクトを返します。
logger.log(context.utils.getRule());
このオブジェクトには次の値が含まれます。
プロパティ | 説明 |
---|---|
id |
ルール ID。 |
name |
ルール名。 |