s_gi

s_gi() 函数按报表包 ID 实例化或查找 AppMeasurement 的实例。AppMeasurement 会保持跟踪每个创建的实例,s_gi() 会为报表包返回现有实例(如果存在)。如果实例不存在,则会创建一个新实例。

使用 Web SDK 扩展实例化跟踪对象

Web SDK 扩展可为您实例化并管理跟踪对象。但是,您可以在扩展设置中自定义跟踪对象名称:

  1. 使用您的 Adobe ID 凭据登录 Adobe Experience Platform 数据收集
  2. 单击所需的标记属性。
  3. 转到扩展选项卡,然后单击 Adobe Experience Platform Web SDK 下的​ 配置 ​按钮。
  4. 将名称字段更改为所需的值。其默认值为 alloy

手动对执行 Web SDK 的跟踪对象进行实例化

以下代码会加载 Web SDK 并实例化一个跟踪对象。您可以通过将内联脚本末尾的字符串"alloy"更改为所需值来自定义跟踪对象名称。

<script>
  !function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS||
  []).push(o),n[o]=function(){var u=arguments;return new Promise(
  function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})}
  (window,["alloy"]);
</script>
<script src="https://cdn1.adoberesources.net/alloy/2.6.4/alloy.min.js" async></script>

请参阅 Web SDK 文档中的安装 SDK,以获取更多信息。

使用 Adobe Analytics 扩展实例化跟踪对象

Analytics 扩展可为您实例化和管理跟踪对象。但是,在配置 Adobe Analytics 扩展时,您还可以在库管理折叠面板中设置全局跟踪对象。

  1. 使用您的 Adobe ID 凭据登录 Adobe Experience Platform 数据收集
  2. 单击所需的标记属性。
  3. 转到扩展选项卡,然后单击 Adobe Analytics 下的​ 配置 ​按钮。
  4. 展开库管理折叠面板,然后选择除为我管理库之外的任何单选按钮。

全局变量文本字段允许您设置自定义跟踪对象。其默认值为 s

AppMeasurement 和 Analytics 扩展代码编辑器中的 s_gi()

调用 s_gi() 函数以实例化跟踪对象。其唯一参数包含以逗号分隔的报表包 ID 字符串。报表包 ID 参数为必需参数。

TIP
Adobe 建议将 s 变量用作跟踪对象。Adobe 在其文档、实施示例和插件中使用 s。但是,只要在网站中保持一致,可以使用任何变量。
// Instantiate the tracking object with a single report suite
var s = s_gi("examplersid");

// Instantiate the tracking object to send to multiple report suites
var s = s_gi("examplersid1,examplersid2");
CAUTION
以下各部分和示例包含复杂的实施主题。完整测试您的实施并跟踪贵组织的](https://experienceleague.adobe.com/prepare/solution-design.html?lang=zh-Hans)解决方案设计文档[中的重要自定义项。

使用不同的跟踪对象管理多个实施

如果您实例化多个跟踪对象,则可以向不同的报表包发送不同的数据。这两个跟踪对象会相互独立地运作。

// Instantiate two separate tracking objects to two different report suites
var s = s_gi('examplersid1');
var z = s_gi('examplersid2');

// The s object and z object contain their own independent Analytics variables simultaneously
s.pageName = "Example page name 1";
z.pageName = "Example page name 2";

// Send data to the examplersid1 report suite
s.t();

// Send data to the examplersid2 report suite
z.t();

覆盖 s 对象后还原 AppMeasurement 变量

某些第三方工具可能还使用 JavaScript s 对象。如果意外覆盖了网站上的 s 对象,可以使用相同的 RSID 字符串参数调用 s_gi 以恢复所有被覆盖的变量和方法。

// Step 1: Instantiate the tracking object
var s = s_gi("examplersid");

// Step 2: Set eVar1
s.eVar1 = "Example value";

// Step 3: Accidentally overwrite the tracking object
s = "3rd party tool";

// Step 4: If you attempt to send a tracking call, an error is returned. Instead, re-instantiate the tracking object
s = s_gi("examplersid");

// Step 5: The previous values of all variables are preserved. You can send a tracking call and eVar1 is correctly set
s.t();

使用多个变量引用同一跟踪对象

如果两个变量使用同一报表包引用同一 s_gi() 函数,则可以交替使用这些变量。

// If the RSID is the same, any variables set in the 's' tracking object also get set in 'z' tracking object
var s = s_gi('examplersid');
var z = s_gi('examplersid');

s.eVar1 = "Shared tracking object value";

// This tracking call contains the above eVar1 value
z.t();
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690