Adobe Analytics 扩展的共享模块

NOTE
Adobe Experience Platform Launch已更名为Adobe Experience Platform中的一套数据收集技术。 因此,产品文档中的术语有一些改动。有关术语更改的综合参考,请参阅以下文档

Adobe Analytics 扩展提供两个不同的共享模块,您可以将这两个模块集成到体验应用程序中。以下各部分将对这些模块进行介绍。

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.");
}

如果 getTrackerundefined中,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() 的函数。

如果您的扩展需要在增强跟踪器之前完成异步任务,您可以从函数中返回一个 promise,如下所示:

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()
  });
});

通过返回 promise,您的扩展将向 Adobe Analytics 发出信号,提示它应暂停跟踪器初始化过程,直到 promise 得以解决。

WARNING
在暂停跟踪器初始化过程中,请务必保持谨慎,因为它可能会延迟发送信标,从而导致无法收集数据(例如,如果用户在信标发送前从页面导航离开)。
recommendation-more-help
12b4e4a9-5028-4d88-8ce6-64a580811743