1)www.mysite.site/product/brand?card_type=all

2)www.mysite.site/product/brand?card_type=all&cp=randomID&keyword=randomKeyword&network=randomNetwork&v3=sometype&v4=MM

因此,我在Google Analytics(分析)上报告了以下两种类型的网址:


该页面上自然产生的点击量
通过“付费流量”显示在该页面上的流量


我基本上需要找到所有在“ card_type”的值之后带有“&”后跟(cp | keyword | v1 | v2 | v3 | v5)的链接,并将其替换为“ ppc-traffic”-理想情况下, :


www.mysite.site/product/brand?card_type=all
www.mysite.site/product/brand/ppctraffic或仅mysite.site/ppctraffic


我尝试了什么:

搜索字符串
请求URI

^(https?:\/\/\S+\/[^?]*)(.*?)&(cp|keyword|v1|v2|v3|v5)


替换字符串:

/ppctraffic


(我也尝试过$1/ppctraffic$2/ppctraffic

在线测试正则表达式时,它似乎可以正常工作,所以不确定我在做什么错。
任何帮助深表感谢

最佳答案

一种方法是在/brand匹配而不是问号[^?]+的情况下捕获组,然后再匹配?card_type=all&,后跟任意字符,直到字符串结尾。

由于您的链接不是以https://开头,因此可以将该部分设为可选的(?:https?:\/\/)?

^((?:https?:\/\/)?www\.[^?]+)\?card_type=all&(?:cp|keyword|v[1235]).*$


然后在替换中使用$1/ppctraffic

Regex demo



const pattern = /^((?:https?:\/\/)?www\.[^?]+)\?card_type=all&(?:cp|keyword|v[1235]).*$/;
[
  "www.mysite.site/product/brand?card_type=all&cp=randomID&v1=randomIDv2=productName&v3=sometype&v4=MM&fbclid=randomID",
  "www.mysite.site/product/brand?card_type=all",
  "www.mysite.site/product/brand?card_type=all&aa=randomID&v1=randomIDv2=productName&v3=sometype&v4=MM&fbclid=randomID"
].forEach(s => console.log(s.replace(pattern, "$1/ppctraffic")));

关于regex - GA Regex过滤器-过滤PPC流量并将其替换为“PPC”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57006684/

10-13 09:30