离线Google Analytics(分析)不起作用

时间:2018-07-06 12:20:48

标签: javascript google-analytics

我无法使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(分析)正常工作,我还需要做什么吗?

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。我相信服务工作者的范围存在问题。在Chrome Dev Tools中,服务人员从未列出任何“客户端”。我移动了服务人员注册并提交了一个级别,并将范围设置为“ /”。

        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);
                });
        });
    }