在Google跟踪代码管理器中的某些网页上触发代码

时间:2013-12-06 14:39:28

标签: regex google-analytics google-tag-manager

我正在尝试创建一个正则表达式,以在某些页面上的Google跟踪代码管理器中触发代码。

我遇到的问题是我不想在匹配其中的查询字符串的URL上触发此标记,因为它只是一个会话标识符,我不需要在具有查询字符串的页面上触发标记。这些基本上是重复的,它们不需要在第三方跟踪程序中进行跟踪。我知道如何在GA中排除它们,但我无法弄清楚如何为第三方跟踪做到这一点。

我将详细介绍下面的场景以及我尝试过的内容。

如果我查看GA,则会在我的网址报告中显示的示例页面:

  

/ page

     

/页/子页面我帅查询字符串&安培;一些-其他数据

     

/ page / subpage

     

/ page / subpage / subsubpage

     

/页/?查询字符串,再

所以我想做的是在没有查询字符串的页面上触发跟踪,这证明了问题。

如果我放入^/page.*[^\?]它就行不通。我想我完全使用否定的字符类都错了?我不能让它工作,并需要一些协助如何设计一个更好的正则表达式。

我试过的其他一些是:

^/page/.*但这个只匹配/page/之后的所有内容,而不是/page

我对正则表达式不是很了解,所以我基本上想做的是匹配/page, /page/subpage, /page/subpage/subpage等,但不包含任何包含查询字符串的URL。

在GTM中,我不能创建两个说"Include {{url path}} matching this" and "Exclude {{url path}} matching \?"的规则,所以这一切都需要在一个正则表达式内完成......而这完全让我感到茫然。

编辑:迈克给出了一个很好的答案来解决我的GTM部分,但我仍然有兴趣学习是否有可能在上面做,但只有一个正则表达式?

1 个答案:

答案 0 :(得分:7)

您实际上可以按照描述创建两个规则。

在GTM中,标签可以同时具有“触发规则”和“阻止规则”。阻止优先。例如

射击规则:

{{url}} matches ^page/.*

阻止规则:

{{url}} does not contain ?

另一种选择是使用自定义JavaScript宏。 它采用function(){ }的形式,可以在window.location.search中检测查询字符串值并返回布尔值。然后有一个解雇规则{{your custom fn}} equals 1

您还可以创建一个使用URL宏类型和Query组件类型的宏。 该值设置为不带前导?的查询字符串。如果网址为example.com?foo=bar,则此宏将包含foo=bar。然后只需添加点火规则{{query}} matches Regex ^${{query}} does not contain something-that-will-never-be-in-the-url-to-avoid-regex