Оффлайн Google Analytics не работает - PullRequest
0 голосов
/ 06 июля 2018

Мне не удалось заставить 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

Я управляю основным сайтом asp.net из visual studio. Я запускаю веб-сайт с подключением к Интернету, чтобы он мог запускаться онлайн. Затем я отключаю все свои сетевые адаптеры для имитации автономного режима и перемещаюсь по различным страницам. Затем я включаю сетевые адаптеры, чтобы снова включить доступ в Интернет, и я перемещаюсь немного больше.

Оффлайн просмотры страниц никогда не отправляются в Google Analytics, и я не вижу их на панели инструментов Google Analytics.

Кроме того, в инструментах разработчика Chrome я вижу, что сервисный работник работает и в консоли нет ошибок.

Что еще нужно сделать, чтобы Google Analytics работал в автономном режиме?

1 Ответ

0 голосов
/ 20 июля 2018

Я наконец-то заработал. Я считаю, что была проблема с областью обслуживания работника. В 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);
                });
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...