Google跟踪代码管理器PageView触发器正则表达式问题

时间:2019-12-19 18:55:06

标签: regex url google-tag-manager

我正在研究一个正则表达式表达式,该表达式将使网站主页符合以下条件(括号是可选字符串/字符):

Http(s)://(www.)example.com(/)(?parameter=value)

其核心目的是:

  • 包括Http
  • 排除www之外的所有子域。
  • 获取网址(可能是根目录或子目录)
  • 包括可选的斜杠
  • 包括任何参数(如果存在)

这是我想出的:

(https?:\/\/(?:www\.|(?!www))(example\.com)|www\.(example\.com))((\/?\?\S*)|(\/?\s))

我尝试过的每台RegEx测试仪都确认它正在工作(并且我尝试了许多其他可行的方法),但是我的网站上只有一个问题:

我正在使用此表达式在GTM的特定页面中触发代码。但是Google Analytics(分析)说RegEx与主页不匹配。

当有参数并且所有其他部分都匹配时,它确实起作用。更新我的GTM标签触发器时,由于某些原因,只有根域没有出现。

https://example.com/不匹配(问题在这里!)

https://example.com/?parameter=value匹配(按预期)

https://example.com/child-page不匹配(按预期)

问题出在哪里?感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这似乎与提到的所有排列相匹配:

((?:https?:\/\/)?(?:www\.)?(example\.com))(\/?(?:\?\S*|(?!\S)))

https://regex101.com/r/YezL4h/1

扩展

 (                             # (1 start) URL
      (?: https?:\/\/ )?
      (?: www \. )?
      ( example \. com )            # (2) Domain
 )                             # (1 end)
 (                             # (3 start) Parameters
      \/?
      (?:
           \? \S* 
        |  (?! \S )
      )
 )                             # (3 end)

-----------------------
如果Moogle不支持断言,则为:

((?:https?:\/\/)?(?:www\.)?(example\.com))(\/?(?:\?\S*|(?:\s|$)))

https://regex101.com/r/In57q6/1

答案 1 :(得分:0)

GTM用于Web容器的内置变量:
页面主机名:提供当前URL的主机名部分。
页面路径:提供当前URL的路径部分。
页面URL:提供当前页面的完整URL。

如果使用“页面主机名”变量,则无需指定http(s)协议。

创建GTM页面视图触发器-此触发器在以下位置触发-一些页面视图
页面主机名>匹配正则表达式> ^(www\.)?example\.com$
 +页面路径>匹配正则表达式> ^\/(\?.*)?$
enter image description here

如果确实需要指定http,则可以使用Page URL变量:

GTM页面浏览触发器-此触发器在以下页面上触发-部分页面浏览
页面URL>匹配正则表达式> ^https?:\/\/(www\.)?example\.com(\/)?(\?.*)?$ enter image description here