javascript - 离线谷歌分析不起作用
问题描述
我无法让 Google Analytics 离线工作。我有一个服务人员:
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('js/OfflineGoogleAnalytics.js')
.then(function (registration) {
console.log('Registered:', registration);
})
.catch(function (error) {
console.log('Registration failed: ', error);
});
});
}
服务工作者在一个单独的 JavaScript 文件中注册代码,该文件包含:
importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.3.1/workbox-sw.js');
workbox.googleAnalytics.initialize();
我按照以下说明操作:https ://developers.google.com/web/tools/workbox/guides/enable-offline-analytics
我正在从 Visual Studio 运行一个 asp.net 核心网站。我通过互联网连接运行该网站,因此它能够在线启动。然后我禁用所有网络适配器以模拟离线模式并浏览各个页面。接下来,我重新启用网络适配器以重新启用 Internet 访问,并进行更多导航。
离线页面视图永远不会发送到 Google Analytics,而且我没有看到它们显示在 Google Analytics 仪表板中。
此外,在 Chrome 的开发人员工具中,我可以看到 service worker 正在运行,并且控制台中没有错误。
我还需要做什么才能使离线 Google Analytics 正常工作吗?
解决方案
我终于让它工作了。我认为服务人员的范围存在问题。在 Chrome 开发工具中,服务人员从未列出任何“客户端”。我移动了服务工作者注册并归档了一个级别并将范围设置为“/”。
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('OfflineGoogleAnalytics.js', { scope: '/' })
.then(function (registration) {
console.log('Registered:', registration);
})
.catch(function (error) {
console.log('Registration failed: ', error);
});
});
}
推荐阅读
- tensorflow - one-hot 或 hashing 的替代方法是什么
- swift - 在后台队列上订阅时,Combine Publisher 不会取消
- c++ - 如何从控制台程序运行另一个外部控制台程序?
- html - 只有在 .css 存档中时,CSS 才会显示背景。所有其他部分工作正常。如果我将 CSS 添加到 HTML,背景会显示
- php - 使用 Laravel 6 在本地环境中发送邮件 - 出现错误:
- javascript - 如何将使用“new”运算符创建的对象保存到 Firestore?
- ios - CALayer中backing store的含义
- css - 盖茨比捆绑失败
- javascript - 正则表达式提取带有嵌套括号的字符串列表
- python - 使用 numpy.linalg.norm() 修复无效语法问题