Google analytics 使用UTM查询预缓存时重复获取请求
我本打算把这篇文章发布在Github repo的工具箱中,但我怀疑这是一个bug,更可能是我自己的误解。我发现了一些稍微相似的问题,但没有一个答案能清楚地解释我如何解决我的问题 在我的sw.js文件中,我正在预先设置主URL和起始URL。起始URL与主URL完全相同,只是在URL后面附加了Google analytics 使用UTM查询预缓存时重复获取请求,google-analytics,workbox,Google Analytics,Workbox,我本打算把这篇文章发布在Github repo的工具箱中,但我怀疑这是一个bug,更可能是我自己的误解。我发现了一些稍微相似的问题,但没有一个答案能清楚地解释我如何解决我的问题 在我的sw.js文件中,我正在预先设置主URL和起始URL。起始URL与主URL完全相同,只是在URL后面附加了?utm_source=pwa。这是我读过的一种技术,其他人在Google Analytics中跟踪PWA的使用情况,我喜欢这个想法 但是,现在当新用户到达网站时,他们加载初始页面,然后Workbox获取主UR
?utm_source=pwa
。这是我读过的一种技术,其他人在Google Analytics中跟踪PWA的使用情况,我喜欢这个想法
但是,现在当新用户到达网站时,他们加载初始页面,然后Workbox获取主URL,然后获取开始URL。这意味着,如果用户到达网站主页,他们将加载该页面3次。我想弄清楚如何让Workbox意识到主URL和开始URL本质上是相同的,不需要第三个获取请求
我知道,ignoreUrlParametersMatching
默认使用[/^utm\/]
,我希望它能像上面所描述的那样使用,但可能我理解不正确,它不适用于预取的URL。。。?如果我没有从precacheAndRoute()
显式调用它,它会自动应用吗
为了澄清我对ignoreUrlParametersMatching
的期望,它会预先缓存主URL,然后当它尝试缓存开始URL时,它会忽略(删除)UTM参数,看到它已经缓存了该URL,并且不会提取。然后,当从缓存请求开始URL时,它将再次忽略UTM参数,并使用缓存中的URL进行响应这离现实很远吗?如果是,我应该如何做才能实现跟踪和减少“重复”提取
下面是我的sw.js文件的一些摘录:
const HOME\u URL='1https://gearside.com/nebula/';
const START\u URL='1https://gearside.com/nebula/?utm_source=pwa';
workbox.precaching.precacheAndRoute([
//…其他预归档文件
{url:HOME\u url,修订号:revisionNumber},
{url:START\u url,修订号:revisionNumber},
]);
这两个URL都是预先设置的:
显示两个提取请求:
注意:我注意到这个问题,不管有没有修订号。TL;博士
- 不包括
在预制清单中https://gearside.com/nebula/?utm_source=pwa
- 使用
模块:workbox google analytics
https://gearside.com/nebula/
和https://gearside.com/nebula/?utm_source=pwa
提供完全相同的内容,只预缓存其中一个内容(最好是不带查询字符串的内容)
选项ignoreURLParametersMatching
用于指定将根据查询参数测试的正则表达式数组,如果其中任何一个匹配,则路由匹配将忽略此类查询参数
举例来说
precacheAndRoute([
{url: '/styles/main.css', revision: '777'},
], {
ignoreURLParametersMatching: [/.*/]
});
将匹配以下任何请求:
/styles/main.css
/styles/main.css?minified=0
/styles/main.css?缩小=0&更新=1
/styles/main.css
,因为正则表达式*
匹配任何查询字符串
ignoreURLParametersMatching
的默认值为[/^utm\/]
。如果在上面的示例中我们跳过ignoreURLParametersMatching
,则以下任何请求都将被匹配(并使用预缓存的/styles/main.css
进行解析):
/styles/main.css
/styles/main.css?utm\u hello=yes
/styles/main.css?utm\u yes\u what=dunno&utm\u really=yes
/styles/main.css?重塑=昂贵&utm\u pwa=否
/styles/main.css?utm_spa=note&trees=awesome
utm\uu
开头的查询参数
有关workbox google analytics
模块的更多信息,请参见此处:TL;博士
- 不包括
在预制清单中https://gearside.com/nebula/?utm_source=pwa
- 使用
模块:workbox google analytics
https://gearside.com/nebula/
和https://gearside.com/nebula/?utm_source=pwa
提供完全相同的内容,只预缓存其中一个内容(最好是不带查询字符串的内容)
选项ignoreURLParametersMatching
用于指定将根据查询参数测试的正则表达式数组,如果其中任何一个匹配,则路由匹配将忽略此类查询参数
举例来说
precacheAndRoute([
{url: '/styles/main.css', revision: '777'},
], {
ignoreURLParametersMatching: [/.*/]
});
将匹配以下任何请求:
/styles/main.css
/styles/main.css?minified=0
/styles/main.css?缩小=0&更新=1
/styles/main.css
,因为正则表达式*
匹配任何查询字符串
ignoreURLParametersMatching
的默认值为[/^utm\/]
。如果在上面的示例中我们跳过ignoreURLParametersMatching
,则以下任何请求都将被匹配(并使用预缓存的/styles/main.css
进行解析):
/styles/main.css
/styles/main.css?utm\u hello=yes
/styles/main.css?utm\u yes\u what=dunno&utm\u really=yes