Adobe Analytics 拡張機能の共有モジュール
Adobe Analytics 拡張機能では、エクスペリエンスアプリケーションに統合できる 2 つの異なる共有モジュールが提供されます。これらのモジュールについては、以下の節で説明します。
get-tracker
Adobe Analytics がビーコンを送信する前に、トラッカーオブジェクトを初期化する必要があります。AppMeasurement を読み込み、トラッカーオブジェクトを作成すると、初期化プロセスが開始します。
トラッカーオブジェクトが完全に初期化されたら、次のように get-tracker
共有モジュールを使用してアクセスできます。
var getTracker = turbine.getSharedModule('adobe-analytics', 'get-tracker');
getTracker().then(function(tracker) {
// Use tracker in some way
});
Adobe Analytics がインストールされていることを確認する
Adobe Analytics がインストールされていない、または拡張機能と同じタグライブラリに含まれていない可能性があります。このため、コードでそれを確認して、適切に処理することを強くお勧めします。以下の JavaScript は実装例です。
var getTracker = turbine.getSharedModule('adobe-analytics', 'get-tracker');
if (getTracker) {
getTracker().then(function(tracker) {
// Use tracker in some way
});
} else {
turbine.logger.error("The Adobe Analytics extension is required for Extension XYZ to function properly.");
}
getTracker
が undefined
の場合、Adobe Analytics 拡張機能はタグライブラリに存在しません。ログに記録されたメッセージをカスタマイズして、Adobe Analytics がインストールされていない場合に失われる可能性がある機能を正確に示すことができます。
augment-tracker
トラッカーオブジェクト初期化したら、プロセスの次の手順は強化です。この手順では、Adobe Analytics 拡張機能の設定から変数が適用される前に、またはビーコンが送信される前に、拡張機能でトラッカーに必要なものをすべて追加することができます。
また、拡張機能では、サーバーからのデータや JavaScript の取得など、独自の非同期タスクを実行している間、トラッカーの初期化プロセスを一時停止することができます。
以下のように指定することで、augment-tracker
モジュールを実装できます。
var augmentTracker = turbine.getSharedModule('adobe-analytics', 'augment-tracker');
augmentTracker(function(tracker) {
// Augment tracker in some way
});
augmentTracker()
に渡された関数は、トラッカー初期化プロセスの拡張段階に達するとすぐに呼び出されます。
トラッカーを拡張する前に、拡張機能で非同期タスクを完了する必要がある場合は、関数から次のようにプロミスを返すことができます。
var Promise = require('@adobe/reactor-promise');
var augmentTracker = turbine.getSharedModule('adobe-analytics', 'augment-tracker');
augmentTracker(function(tracker) {
return new Promise(function(resolve) {
// Augment the tracker object, then call resolve()
});
});
プロミスを返すことで、拡張機能は Adobe Analytics に対して、プロミスが解決されるまでトラッカーの初期化プロセスを一時停止するように指示します。