【问题标题】:Excluding analytics.js and fbevents.js from Service Worker从 Service Worker 中排除 analytics.js 和 fbevents.js
【发布时间】:2019-06-11 00:23:21
【问题描述】:
是否可以排除通过 PWA 中的 Service Worker 获取 Google Analytics、Google Tag Manager 和 Facebook Pixel 脚本?
根据我今天的发现 - 如果网站使用 Service Worker,则 Facebook Pixel Helper 和 Google Tag Assistant 在重新加载后会返回错误。我不确定是否没有发送数据(Chrome 开发工具显示向 Facebook 和 Google 发送的请求是使用代码 200 发送的)。
看起来这两个脚本都在第一次访问时触发,但在重新加载时不会触发。我没有编程经验,对 Service Worker 的工作方式有一个模糊的概念,但我需要确保我正确获取所有数据,因为我是一名分析师。谁能指出我正确的方向?
【问题讨论】:
标签:
google-analytics
service-worker
progressive-web-apps
facebook-pixel
【解决方案1】:
如果您对 facebook 像素有疑问,可以尝试这种方式。
您应该在服务人员中排除 facebook 请求。
self.addEventListener('fetch', function(event) {
if(event.request.url.search("www.facebook.com") != -1 || event.request.url.search("connect.facebook.net") != -1){
// hack FB Pixel
}else{
event.respondWith(
fetch(event.request).catch(function(error) {
console.log( '[PWA Builder] Network request Failed. Serving content from cache: ' + error );
//Check to see if you have it in the cache
//Return response
//If not in the cache, then return error page
return caches.open('pwabuilder-offline').then(function (cache) {
return cache.match(event.request).then(function (matching) {
var report = !matching || matching.status == 404?Promise.reject('no-match'): matching;
return report
});
});
})
);
}
});
你可以用同样的方式破解 Google Tag Assistant