跟踪代码、规则、宏和数据层

跟踪代码和规则

跟踪代码是在网页上执行的 HTML 代码。跟踪代码有各种各样的用途,但是 Google 跟踪代码管理器中使用的大多数跟踪代码的作用是将您网站中的信息发送到第三方,例如 Google。此类代码的示例包括 Google Analytics(分析)跟踪代码和 AdWords 转化跟踪代码,它们会将与您网站上的活动相关的信息发送到 Google。

如果您不使用 Google 跟踪代码管理器之类的跟踪代码管理解决方案,则需要将所有跟踪代码直接添加到网站的源代码中。但是,如果使用 Google 跟踪代码管理器,您就不需要将跟踪代码添加到网站中,而可以使用 Google 跟踪代码管理器的用户界面指定您要使用的跟踪代码。

在加载网页或者对网页上的某些用户操作进行响应时,通常会执行或触发跟踪代码。在 Google 跟踪代码管理器中,您可以为跟踪代码添加规则,以指定触发这些代码的条件。预定义的“所有页面”就是此类规则的一个示例。如果您为某个跟踪代码添加了此规则,那么任何时候加载任何网页都会触发该跟踪代码。

规则和宏

规则是在运行时评估结果为“真”或“假”的条件。评估方法是将宏的值与您在定义规则时指定的值进行比较。例如,预定义的宏“url”始终包含当前加载的网页的网址。如果您希望仅针对网页 example.com/purchase/receipt.html 触发跟踪代码,那么您需要定义这样的规则:

{{url}} matches example.com/purchase/receipt.html

下面定义的是“所有页面”规则。此规则始终评估为“真”,因为任何网址 (Regex .*) 都与当前加载的网页网址匹配。

{{url}} matches RegEx .*

宏包含运行时值。例如,预定义的宏“url”始终包含当前加载的网页的网址。您可以定义自己的宏,每个宏都包含需要在运行时使用的某些信息。然后,您可以在规则条件中使用这些宏,或者通过这些宏将信息传递给跟踪代码。例如,您可以定义包含用户正在查看的项目价格的宏。您也可以定义包含常量值(例如您的 Google Analytics(分析)帐户 ID 字符串)的宏。

宏和数据层

假设您需要定义包含用户正在查看的项目价格的宏。那么,宏在运行时如何得知项目的价格?它可以从您的源代码中的“数据层对象”检索价格(您需要与您的网站开发者协作,以设置包含您所需信息的数据层对象)。数据层是一个对象,其中包含您要传递给 Google 跟踪代码管理器的所有信息。数据层通过宏将该信息传递给 Google 跟踪代码管理器。然后,宏就可以根据规则的定义,在适当的位置访问信息,例如确定是否应该触发跟踪代码。

例如,假设您希望每当访问者在您网站上的花费超过 1000 元时便触发 Google 展示广告网络再营销代码。那么,跟踪代码的触发规则就有必要知道访问者的交易值,以评估其是否超过 1000 元。要进行此设置,您可以将交易值推送到数据层(使用dataLayer.push 方法),并且定义检索该值的宏,以保证触发规则可以对其进行评估。

要让宏检索运行时信息,并非一定要通过设置数据层来实现。 宏还可以直接从 JavaScript 变量和 DOM 检索信息。有关详细信息,请参阅。但是,最佳做法通常是设置宏从数据层检索信息,而不是从 JavaScript 变量或 DOM 进行检索。如果您的宏依赖于特定的变量或 DOM 元素,并且这些变量或元素会在网站更新的过程中发生更改,那么这些宏可能会失效。参考数据层中的所有相关信息,尽量降低发生此类问题的可能性,从而建立结构完善且访问性良好的数据模型,同时简化问题排查过程。

实施案例

如何在您的网站上实施 Google 跟踪代码管理器?这里主要有三个实施案例。

    • 如果您的跟踪代码只需要在加载网页时触发(也就是它们不需要在响应网页上的用户互动时触发),并且跟踪代码不需要网址以及引荐来源网址之外的任何信息,那么您只需要将容器代码段添加到您网站的每个网页即可。

 

    • 如果您的跟踪代码只需要在加载网页时触发,但是需要网址以及引荐来源网址之外的信息,那么您需要添加用于创建数据层并且将信息推送到其中的代码。在容器代码段的前面添加此代码,这样就可以在加载网页时使用数据层信息。请注意,每个网页都必须包含用于创建数据层并且将信息推送到其中的代码,因为数据层不能跨网页使用。 

      如果您需要的信息可在网页加载时直接从 JavaScript 变量和 DOM 获得,那么您可能不需要实施数据层。但是,应将直接从 JavaScript 变量和 DOM 检索信息视为中间解决方案。最佳做法是设置包含所需信息的数据层。参考数据层中的所有信息,以建立结构完善且访问性良好的数据模型,同时简化问题排查过程。

 

  • 如果只有在用户与网页互动之后,您需要收集或使用来触发跟踪代码的数据才可用(也就是您需要在响应用户互动时触发跟踪代码,而不是在加载网页时即触发),那么您需要添加用于将数据推送到数据层的代码。例如,您可能需要推送与用户正在播放的视频、用户自定义产品(例如汽车)的颜色,或者已点击链接的目标网址相关联的元数据。请注意,只要您不需要在加载网页时使用该数据,那么您就不用添加实例化数据层本身的代码。容器代码段代码能够实例化您的数据层。但是,您需要添加用于将信息推送到数据层以响应用户事件的代码。请注意,每个网页都必须包含用于将所需信息推送到数据层的代码,因为数据层不能跨网页使用。

发表回复