获取和设置字段数据

要获取和设置跟踪器的字段数据,有时需要拥有该跟踪器对象本身的引用。由于添加到 ga() 命令队列的命令以异步方式执行,不会返回值,而且跟踪器通常都是使用 create 命令创建的,因此需要等到 create 命令执行之后才能获取对跟踪器对象的引用。您可以通过 ready callback 来完成这项操作。

ready callback

ready callback 是一个函数,您可以将其添加到 ga() 命令队列。当 analytics.js 库完全加载,且先前加入队列的所有命令都已执行后,系统就会立即调用此函数。

由于队列中的所有命令都是按顺序执行的,添加 create 命令后在队列中添加 ready callback 将可确保 ready callback 在跟踪器创建之后执行。如果在调用 ready callback 时默认跟踪器已创建,则系统会将默认跟踪器作为第一个(且是唯一一个)参数传递给此回调函数。

以下代码显示了如何访问默认跟踪器对象并将其写入控制台日志:

ga('create', 'UA-XXXXX-Y', 'auto');

ga(function(tracker) {
  // Logs the tracker created above to the console.
  console.log(tracker);
});

通过 ga 对象方法获取跟踪器

如果您没有使用默认跟踪器,或在网页上使用了多个跟踪器,那么可以通过 ga 对象方法中的任何一种方法访问这些跟踪器。

analytics.js 库完全加载后,会立即向 ga 对象本身添加更多方法。其中的两种方法 getByNamegetAll 可用于访问跟踪器对象。

getByName

如果您知道要访问的跟踪器的名称,可以使用 getByName 方法:

ga('create', 'UA-XXXXX-Y', 'auto', 'myTracker');

ga(function() {
  // Logs the "myTracker" tracker object to the console.
  console.log(ga.getByName('myTracker'));
});

getAll

要获取所有已创建跟踪器的数组,请使用 getAll 方法:

ga('create', 'UA-XXXXX-Y', 'auto', 'tracker1');
ga('create', 'UA-XXXXX-Z', 'auto', 'tracker2');

ga(function() {
  // Logs an array of all tracker objects.
  console.log(ga.getAll());
});

获取跟踪器上存储的数据

在您获得对跟踪器对象的引用后,就可以使用其 get 方法来访问当前存储在跟踪器上的任何字段的值。

ga('create', 'UA-XXXXX-Y', 'auto');

ga(function(tracker) {
  // Logs the trackers name.
  // (Note: default trackers are given the name "t0")
  console.log(tracker.get('name'));

  // Logs the client ID for the current user.
  console.log(tracker.get('clientId'));

  // Logs the URL of the referring site (if available).
  console.log(tracker.get('referrer'));
});

更新数据

可以使用 set 方法来更新跟踪器对象。可以使用跟踪器对象本身来调用跟踪器的 set 方法,也可以通过在 ga() 命令队列中添加 set 命令来进行调用。

由于获取对跟踪器对象的引用需要使用 ready callback,因此建议使用 ga() 命令队列来更新跟踪器。

ga() 命令队列

set 命令的调用方式有两种:一种是传递两个参数,即一个字段及其相应的值,另一种是传递一个包含字段/值对的对象。

以下示例将默认跟踪器的 page 字段设为 '/about'

ga('set', 'page', '/about');

以下示例同时设置了 pagetitle 字段:

ga('set', {
  page: '/about',
  title: 'About Us'
});

使用指定的跟踪器

如果您要使用指定的跟踪器而不是默认跟踪器,可以在命令字符串中传递跟踪器名称。

以下调用为名为 "myTracker" 的跟踪器设置 page 字段:

ga('myTracker.set', 'page', '/about');

通过跟踪器对象本身进行调用

如果您拥有对跟踪器对象的引用,就可以直接调用该跟踪器的 set 方法:

ga(function(tracker) {
  tracker.set('page', '/about');
});

“&”符号语法

跟踪器字段的获取和设置通常是使用字段名进行的。(要查看完整的 analytics.js 字段和名称列表,请参阅字段参考。)

获取和设置字段的另一种方法是通过其相应的 Measurement Protocol 参数名来引用字段。

例如,以下两个 console.log 表达式都将文档标题写入控制台日志:

ga(function(tracker) {
  // Gets the title using the analytics.js field name.
  console.log(tracker.get('title'));

  // Gets the title using the measurement protocol
  // parameter name, prefixed with an ampersand.
  console.log(tracker.get('&dt'));
});

一般不建议使用“&”语法,应该仅在用于 Measurement Protocol 参数的 analytics.js 字段名不存在时才使用这种方式(当 Measurement Protocol 中添加了 analytics.js 中尚未实现的新功能时有时会出现这种情况)。

后续步骤

至此您已了解如何创建跟踪器和更新其上存储的数据,下一步将学习如何向 Google Analytics(分析)发送数据以便进行处理。