首页 文章

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

提问于
浏览
2

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

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

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

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

/ page / page / subpage?my-handsome-query-string&some-other-data / page / subpage / page / subpage / subsubpage / page /?query-string-again

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

如果我输入 ^/page.*[^\?] 它只是没有让它工作,并需要一些协助如何设计一个更好的正则表达式 .

我试过的其他一些是:

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

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

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

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

1 回答

  • 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

相关问题