自定义变量 - 网络跟踪 (ga.js)

自定义变量是您可以插入到跟踪代码中以便优化 Google Analytics(分析)跟踪的名称值对标记。使用自定义变量,您可以定义其他细分以应用于 Google Analytics(分析)已提供的访问者之外的访问者。本文档将介绍自定义变量及其设置方法。

概览

如果您了解 Google Analytics(分析)中使用的基本访问者互动模型,则可以充分利用自定义变量。在此模型中,访问者在一段时间内与您的内容互动,并且与您网站的互动会细分为一个层次结构。

下图说明了访问您网站的单个访问者的模型,其中每个方块表示来自该特定用户的用户会话和互动次数。

此模型中每个级别的定义如下:

  • 访问者 - 访问网站的客户端,例如用户操作的浏览器或手机。
  • 会话 - 访问者在网站上处于活动状态的时间段。
  • 网页 - 代表用户向 Google Analytics(分析)服务器发送 GIF 请求的活动。 通常表现为网页浏览,但可能包括:
    • 网页浏览
    • 事件(例如,点击某个电影按钮)

这三个级别的互动构成了访问者互动的具体“范围”。这种区别对自定义变量来说非常重要,因为每个自定义变量都被限制在一个特定范围内。 例如,您可能想要了解访问者从购物车中移除了商品的会话数量。对于该特定情况,您要将自定义变量定义为会话级别,以便将该访问者的整个会话标记为已从在线购物车中移除商品。

返回页首

使用自定义变量

由于您可以设置各种自定义变量来跟踪网站的用户活动,因此您通常会创建自己的 JavaScript 实用程序来管理这些变量。您的脚本将使用基本方法创建自定义变量,如下所示:

_setCustomVar(index, name, value, opt_scope)

此方法接受四个参数:

  • index(编号)- 自定义变量的位置。必需。这是一个数字,其值介于 1 - 5 之间(包括这两个数值)。自定义变量应仅放置在一个槽中,且不得在不同槽中重复使用。
  • name - 自定义变量的名称。必需。这是一个标识自定义变量的字符串,将显示在 Google Analytics(分析)报告的顶级“自定义变量”报告中。
  • value - 自定义变量的值。必需。这是一个与名称配对的字符串。您可以将多个值与一个自定义变量名称配对。该值将显示在所选变量名称的界面表格列表中。通常,一个给定名称会有两个或多个值。例如,您可以定义一个自定义变量名称 gender,并提供 malefemale 作为两个可能的值。
  • opt_scope - 自定义变量的范围。可选。如上所述,范围定义了用户与您网站的互动程度。它是一个数字,其可能的值为 1(访问者级)、2(会话级)或 3(网页级)。如果未定义,自定义变量范围默认为网页级互动。

以下代码段说明了如何设置自定义变量来跟踪用户从购物车移除了商品的访问。此处,_setCustomVar() 方法在 _trackEvent() 方法之前调用,因此它会在 _trackEvent() 方法发送的 GIF 请求中传递。 该 activity 使用名为 Items Removed 且值为 Yes 的 activity,以便定义网站用户的相应活动。此外,还应该为 Items RemovedNo 设置默认自定义变量。这样,您就可以获得从购物车移除商品的访问次数,以及未移除商品的访问次数。

异步代码段(推荐)

 _gaq.push(['_setCustomVar',
      1,                   // This custom var is set to slot #1.  Required parameter.
      'Items Removed',     // The name acts as a kind of category for the user activity.  Required parameter.
      'Yes',               // This value of the custom variable.  Required parameter.
      2                    // Sets the scope to session-level.  Optional parameter.
   ]);
 _gaq.push(['_trackEvent',
      'Shopping', // category of activity
      'Item Removal', // Action
   ]);

设置自定义变量后,您可以使用 _deleteCustomVar(index) 方法移除自定义变量。

返回页首

实际应用示例

可通过多种不同的方式实现自定义变量,具体取决于您的网站模型和业务需求。示例探讨了不同的用例,每个用例展示了不同的范围级别:

网页级自定义变量

使用网页级自定义变量来定义由用户执行的一系列网页级活动。

例如,假设您管理一家在线报纸的网站,访问者在该网站上查看许多不同的文章。虽然很容易确定哪些特定报道最受欢迎,但现在您还可以使用自定义变量来确定报纸的哪些版块最受欢迎。为此,您需要在网页级别为每篇文章设置一个自定义变量,其中该文章的相应版块被设置为自定义变量。例如,您可能有“生活与时尚”“观点”和“商务”等部分。您可以设置一个自定义变量来按版块跟踪所有报道。

异步代码段(推荐)

_gaq.push(['_setCustomVar',
      1,                   // This custom var is set to slot #1.  Required parameter.
      'Section',           // The top-level name for your online content categories.  Required parameter.
      'Life & Style',  // Sets the value of "Section" to "Life & Style" for this particular aricle.  Required parameter.
      3                    // Sets the scope to page-level.  Optional parameter.
   ]);

我们继续讨论此示例,并假设您不仅想要标记特定文章的版块,还想要标记子版块。例如,报纸的“生活与时尚”版块可能也有多个子版块,如“餐饮”“时尚”和“体育”。因此,对于特定文章,您可以同时跟踪版块和子版块。 您可以设置附加自定义变量以按子板块跟踪所有文章。

异步代码段(推荐)

_gaq.push(['_setCustomVar',
          2,                   // This custom var is set to slot #2.  Required parameter.
          'Sub-Section',       // The 2nd-level name for your online content categories.  Required parameter.
          'Fashion',           // Sets the value of "Sub-section" to "Fashion" for this particular article.  Required parameter.
          3                    // Sets the scope to page-level.  Optional parameter.
         ]);

在本示例中,您将同时为单个网页设置两个网页级自定义变量。对于任何单个网页,您最多可以跟踪五个自定义变量,每个变量都具有独立的位置。也就是说,您还可以在这个页面上再分配 3 个自定义变量。对于您网站上的所有报道,您可以设置一组网页级自定义变量,以按各种版块和子版块跟踪这些报道。如需详细了解如何正确使用网页级自定义变量,请参阅下面的使用指南

返回页首

会话级自定义变量

使用会话级自定义变量来区分不同会话之间的不同访问者体验。

例如,如果您的网站为用户提供登录功能,您可以针对用户登录状态使用范围限定为会话级别的自定义变量。这样,您就可以按照来自已登录会员和匿名访问者的访问细分。

异步代码段(推荐)

_gaq.push(['_setCustomVar',
      1,             // This custom var is set to slot #1.  Required parameter.
      'User Type',   // The name of the custom variable.  Required parameter.
      'Member',      // Sets the value of "User Type" to "Member" or "Visitor" depending on status.  Required parameter.
       2             // Sets the scope to session-level.  Optional parameter.
   ]);

假设您希望同时跟踪用户类型以及指定会话中是否发生购买尝试。如果我们假设每个网页都为用户提供登录功能,则需要为 User Type 自定义变量预留 1 个槽位,并为购买尝试预留另一个槽位:

异步代码段(推荐)

_gaq.push(['_setCustomVar',
      2,                   // This custom var is set to slot #2.  Required parameter.
      'Shopping Attempts', // The name of the custom variable.  Required parameter.
      'Yes',               // The value of the custom variable.  Required parameter.
                           //  (you might set this value by default to No)
      2                    // Sets the scope to session-level.  Optional parameter.
   ]);

返回页首

访问者级自定义变量

使用访问者级自定义变量可以区分多个会话中的访问者类别。

例如,如果您的网站向付费订阅者提供付费内容,您可以设置访问级自定义变量,以分析哪些用户是付费会员、处于哪个付款级别以及哪些用户正在使用网站的免费服务。您可以将此自定义变量设置为一次性函数,因为其值在访问者 Cookie 的生命周期内持续有效。

异步代码段(推荐)

_gaq.push(['_setCustomVar',
      1,                // This custom var is set to slot #1.  Required parameter.
      'Member Type',    // The name of the custom variable.  Required parameter.
      'Premium',        // The value of the custom variable.  Required parameter.
                        //  (possible values might be Free, Bronze, Gold, and Platinum)
      1                 // Sets the scope to visitor-level.  Optional parameter.
 ]); 

使用指南

本部分介绍了不同类型的自定义变量之间的差异以及如何正确使用它们:

自定义变量类型

下表定义了不同变量类型的关键特性。请注意,当不同的变量使用相同的槽时存在某些限制。

任何自定义变量名称和值的总长度不能超过 128 个字符。

返回页首

  时长 与其他变量共享某个槽时 所允许的数量
页面级

一次网页浏览、事件或交易调用。

要在某个网页上调用的最后一个网页级变量就是应用于该网页的变量。

对于任何网络媒体资源(网页集合),都可以设置许多唯一的网页级变量,并重复使用广告位。仅受给定会话中的命中次数限制。

对于任何单个网页,您最多可同时设置五个自定义变量。

会话级

访问者的当前会话。

在会话中调用的最后一个会话级变量即用于该会话。
示例:如果在会话开始时将槽位 1 设为 login=false,之后槽位 1 为 login=true 时,对于 login,会话会设为 true

覆盖在同一会话中调用的任何先前设置的网页级变量。
示例:如果槽 1 先用于 category=sports,然后用于某个会话的 login=true,则不会为该会话记录 category=sports

对于任何网络媒体资源,您可以根据键值对(128 个字符)的限制,创建任意数量的不同会话级自定义变量。

对于任何给定的用户会话,您最多可以设置五个会话级变量。

访问者级

访问者 Cookie 的当前会话及其生命周期内所有将来的会话。

为某个访问者设置的最后一个值就是应用于当前及将来的会话的值。

对于任何网络媒体资源,您都可以创建最多五个不同的访问者级变量。

返回页首

混用不同类型的变量时须小心

通常,不建议将同一自定义变量槽与不同类型的变量混用,因为这可能会导致奇怪的指标计算。

当您为网站媒体资源使用多个网页级、会话级和访问者级自定义变量时,您需要仔细确定位置的重复使用情况。如果您的网站出现这样一种情况,即设置了网页级变量或网页级自定义变量同时使用相同的位置,则系统仅会记录会话级(或网页级)变量。

以下场景展示了由同一浏览器上的单个用户设置的网页级、会话级和访问者级变量的混合用例。在每个示例中,槽位都由括号中的数字表示,而 S: 则指示变量的范围。

示例 1 - 最终的会话级变量优先级最高

在本例中,最后一页重复使用了槽 1 中的会话级自定义变量,因此它的优先级最高。

访问 1 第 1 页
(1) S:网页级
section=opinion
第 2 页
(1) S:会话级
login=true
第 3 页
(1) S:会话级
converted=true

访问报告将如下所示:

  • # visits for section=opinion: 0
  • # visits for login=true: 0
  • # visits for converted=true: 1

示例 2 - 最初的访问者级变量优先级最高

在本例中,位置 1 首先由访问者级自定义变量在访问 1 中使用,而网页级自定义变量在访问 3 中使用。如此一来,访问者级变量就不会覆盖网页级变量。

第 1 次访问 第 1 页
(1) S:访问者级
gender=male
第 2 次访问 第 1 页
(2) S:会话级
converted=false
第 3 次访问 第 1 页
(1) S:网页级
section=opinion

访问报告将如下所示:

  • # visits for gender=male: 2
  • # visits for converted=false: 1
  • # visits for section=opinion: 1
  • 请勿在各槽位中使用重复的键名
  • 如果 _setCustomVar() 函数可以在网页浏览或事件 GIF 请求之前进行设置,则调用该函数。
    在某些情况下,可能无法这样做,您需要在设置自定义变量之后设置另一个 _trackPageview() 请求。通常,只有在用户触发会话级或访问级自定义变量无法将相应方法与网页浏览、事件或电子商务跟踪调用捆绑的情况下,才需要执行此操作。
  • 使用槽矩阵跟踪大量自定义变量
    如果您的跟踪要求较为复杂,其中既有网页级变量和会话级变量可能存在冲突,则应构建一个广告位矩阵,以确保会话级变量不会无意中覆盖网页级变量。
  • 考虑针对特定应用使用事件跟踪,而不是使用自定义变量。
    例如,假设您有一家在线音乐商店,并且想要跟踪登录会话、购买尝试会话以及播放音乐样本的会话。那么,您应该使用事件跟踪来跟踪尝试播放音乐的次数,而不是使用会话级变量来实现此目的。在这里,您可以使用事件跟踪调用的第 4 个值参数来传入您自己的 Cookie 中的会话数据。
  • 请勿使用会话级变量来跟踪可使用网页级变量跟踪的行为。
    例如,假设您按会话跟踪登录状态和购物尝试状态,而且您的网站也提供了“会员特惠”页面,希望您也跟踪。由于网页级自定义变量将显示对该特定变量的访问次数,因此您已获得至少包含该网页一次的访问次数。

返回页首