正则表达式 (RegEx) 看起来很复杂,但对它有了基本的了解后,就会发现它是一个非常有用的工具。
正则表达式基础知识
正则表达式 (RegEx) 是表达特定文本模式的字符串,可以用一个正则表达式匹配不同的文本数据,而不必使用多个“包含”条件。
正则表达式 ABC
要构建匹配模式,需要对 RegEx 字符有一定了解。以下是在 Google Analytics 和 Google Tag Manager (GTM) 中最常用的正则表达式字符。
正则表达式 | 含义 | 例子 |
| | 或 | a|b – 匹配a或b |
. | 任意单个字符 | a.c – 匹配abc , acc , adc , … |
? | 零个或一个前面的字符 | goo?gle – 匹配gogle 和google,但不匹配gooogle |
* | 零个或多个前面的字符 | goo * gle – 匹配gogle、google、gooogle |
+ | 一个或多个前面的字符 | goo+gle – 匹配google , gooogle , 但不匹配 gogle |
^ | 匹配字符串的开头位置 | ^apple – 匹配 apple juice, 但不匹配 pineapple |
$ | 匹配字符串结束位置 | apple$ – 匹配 pineapple, 但不匹配 apple juice |
[] | 匹配的项目列表 | [a-z] – 匹配从 a 到 z 的任何小写字母 b2[cb] – 匹配b2c , b2b |
() | 组元素 | Jan(uary)? – 匹配 Jan, January January? – 匹配 Januar, January |
{} | 定义字符数 {x}, {x,y} | [0-9]{2} – 匹配从 01 到 99 的任意两个数字字符串 [0-9]{1,3} – 匹配从 1-999 的任意数字字符串 |
\ | 将 RegEx 字符视为普通字符 | \? – 匹配一个问号,而不是零或一个字符 |
如何测试正则表达式?
- 测试。 在 Google Analytics 中,可以预览自定义细分并验证目标设置,以及在启用 RegEx 选项的情况下,测试高级表格过滤器。在 GTM 中,只需进入预览模式查看标签是否正确触发即可。
- 使用 RegEx 调试器。测试不同的自定义字符串以查看是否匹配的工具。 您可以通过搜索引擎自己搜索,或者使用这个:https://www.debuggex.com/,它有直观的可视化模式。
正则表达式实际应用
接下来让我们看看,如何在谷歌分析和谷歌跟踪标签管理器中,使用正则表达式。
1) 谷歌分析目标
如果掌握了正则表达式,可以在谷歌分析中更好配置目标。
假设目标页面是 www.example.com/en/ferry-tickets/booking.php?id=1234。如果使用“等于”和“开头为”过滤条件都是不合适的,因为语言(/en/) 和id参数可能会更改,因此正则表达式就是唯一的选项。也可以只输入booking,但这也会匹配其他页面,例如 www.example.com/en/booking-rules,因此要准确匹配 booking.php 需要包含扩展名,最好在点之前使用反斜杠来匹配点。
再举一个更复杂的例子。假设网站在用户进行几种操作后,有几个不同的致谢页面,每个页面都针对特定的服务,并且想为它们配置单独的目标。
/en/service1/?sid=1234&success=1 – Goal 1
/en/service2/?sid=2345&success=1 – Goal 2
通过将“success”作为一种模式,它可以匹配两个页面。所以目标 1 的模式应该更具体,例如 (.*)/service1/(.*)success。
在这里,我们定义了查找在“/service1/”开头或者在“/service1/”和“success”中间有其他的字符。当然,这不是唯一的解决方案,很大程度上取决于 URL 结构。
2) 谷歌分析自定义细分和表格过滤器
“细分”是指您的一部分 Google Analytics(分析)数据。例如,在您的整个用户群中,您可使用一个细分指定来自特定国家/地区或城市的用户,使用另一个细分指定购买特定产品系列或访问网站上特定部分的用户。在使用表格过滤器或细分过滤数据时,最常使用的正则表达式是只过滤少数特定值。
2.1) 过滤流量来源和活动
例如,要创建一个只有 direct / (none) 和 google / organic traffic 流量的细分。可以使用 2 个“包含”条件,但使用正则表达式是一个更好的解决方案,只需使用管道 (|)即可。
使用管道时,不要忘记分组。例如 google/cpc|organic 将过滤匹配 google/cpc 或所有包含 organic 的流量来源,因此bing/organic 也将包括在内。
如果您只想过滤 google/cpc 和 google/organic,请不要忘记使用分组。正确的正则表达式是 google/(cpc|organic)。
或者,您想查看具有特定广告系列流量的细分。 例如,您知道该广告系列的结构,并且只想查看非品牌广告系列数据。
- Search_Campaing_brand_EN
- Search_Campaing1_nonbrand_EN
- Search_Campaing2_nonbrand_EN
- GDN_Campaing1_nonbrand_EN
我们可以使用正则表达式 Search.*nonbrand ,这将匹配所有名称带有“Search”和“nonbrand”的广告系列(.* 用来匹配任意数量的任何字符)。
过滤报告表也可以这样做。只需在搜索字段中输入正则表达式模式。
2.2.) 过滤特定内容
内容报告中的页面过滤器示例很少。假设您想要获取具有以下链接结构的所有博客文章。
结构 1:/lang/blog-post-name/post-id/(例如:/en/how-to-become-analytics-ninja/12/)
正则表达式应该是这样的,/en/(.*)/[0-9]+/ 。包含 /en/ 以及后面的任何字符和至少一个数字(post id)或多个数字作为第三个 URL 目录。同样可以直接在搜索字段中输入模式或单击高级过滤器。
结构 2:/yyyy/mm/blog-post-name/(例如:/2014/12/how-to-become-analytics-ninja/)
正则表达式要这样写,/[0-9]{4}/[0-9]{2}/ 。包含一个代表年份的 4 数字字符串和代表一个月的 2 数字字符串。
同样可以仅过滤选定的登录页面、网站部分等。
3)谷歌标签管理器触发器
使用触发器,可以控制何时启动不同的代码标签。通常,要分隔不同的 URL、链接或其他元素,像“包含”这样的条件是不够的,需要使用正则表达式定义特定的模式。
3.1) 所有页面或 (.*)
如果使用过 Google Tag Manager,您应该知道。点表示任何字符,星号表示没有字符或多个前面的(即任何)字符。所以该模式匹配任何文本字符串,即所有页面。(所有页面触发器默认可用,无需手动创建)。
3.2) 主页
主页的正则表达式通常是^/$。用人类语言讲,它的意思是“以 / 开始并立即结束”。
由于 URL 变量包含域名和可能的查询参数,最好使用页面路径(在 GTM 帐户中启用它,在变量 > 启用的内置变量下)。
如果页面是多语言的,主页也可以是/en、/en/、/lv或/lv/。那么模式将是^/(lv|en)?/?$。
这看起来很复杂,用简单的话来描述一下,就是页面路径路径必须:
- ^/ – 以斜杠开头;
- (lv|en)?– 可以有 lv 或 en 中的一个或什么都没有;
- /?$ – 必须以 / 结尾或什么都没有。
问号表示“一个字符或无字符”,() 括号用于对元素进行分组。请参考下面这个可视化正则表达式演示。
3.3) 链接模式
要跟踪所有指向 pdf 文档的链接,您可以使用“包含 pdf ”条件,而要跟踪所有传出链接,请使用“不包含mydomain.com ”。但有时需要更复杂的模式。
例如,我想单独跟踪我的社交媒体链接点击次数。链接是:
- http://www.twitter.com/apasters
- https://plus.google.com/+AleksandrsPasters
- http://lv.linkedin.com/in/aleksandrspasters
另外,我知道社交媒体分享按钮中可能有类似的字符串,例如 https://plus.google .com/share?url=http://www.a Pasters .com / blog/7-things -to-consider-for-google-analytics-friendly-website-development/
可以使用下面的正则表达式:*(twitter|plus.google|linkedin).com/([A-Za-z/+]+)asters$
模式解释:
- 可以从任何东西开始。
- 强制 Group 1 包含下面三个值之一:twitter、plus.google 或linkedin。
- 网站名称后必须包含 .com/。
- 强制 Group 2 包含字母(大写和小写)、斜线或加号。
- 必须以 asters 的最后一个字母结尾。
3.4) 自定义事件触发器
如果想为多个自定义事件设置同一个触发器,可以使用正则表达式匹配并输入事件名称的方式。这里的模式是区分大小写的,所以要小心值。
4) 查看过滤器
假设网址是下面这样的 /en/section-name/page-name,但其中一个部分由于某些原因具有不同的/section-name/en/page-name。使用正则表达式,您可以匹配这个“错误”的 URI 并重写它。
使用圆括号为 3 个请求 URI 部分创建正则表达式组:首先必须包含至少一个字母或破折号;第二必须包含 en;第三有零个或多个字母、数字或破折号。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/webmaster/regex-guide-in-google-analytics-and-tag-manager/