GA Regex过滤器-过滤PPC流量并将其替换为“ PPC”

时间:2019-07-12 12:06:47

标签: regex google-analytics

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(分析)上报告了以下两种类型的网址:

  1. 在该页面上自然投放的流量
  2. 通过付费流量访问该页面的流量

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

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

我尝试过的事情:

搜索字符串 请求URI

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

替换字符串:

/ppctraffic

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

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

1 个答案:

答案 0 :(得分:2)

一种方法是在/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")));