Расширение Chrome / Firefox / Edge - Google Analytics - PullRequest
0 голосов
/ 03 октября 2018

У нас есть расширение, написанное на Typescript, работающее с Chrome, Firefox и Edge, к которому мы добавляем Google Analytics.Мы сделали это, создав простой файл для загрузки Google Analytics:

import { environment } from "../environment";

(function (i, s, o, g, r, a, m) {
    i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
        (i[r].q = i[r].q || []).push(arguments)
    }, i[r].l = 1 * new Date().getTime(); a = s.createElement(o),
        m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');

ga('create', environment.googleAnalyticsTrackingCode, 'auto');
ga('set', 'checkProtocolTask', function () { }); // Removes failing protocol check. @see: http://stackoverflow.com/a/22152353/1958200
ga('require', 'displayfeatures');

Затем мы используем Webpack для создания этого и ссылаемся на файл в имеющемся у нас popup.html.Мы добавили ссылку на пакет NPM:

"@ types / google.analytics": "^ 0.0.39"

Из всплывающего файла js мызатем мы можем сделать вызов функции ga следующим образом:

ga('send', 'pageview', url); 

Мы также изменили манифест, включив в него:

"content_security_policy": "script-src 'self'https://www.google -analytics.com ; object-src' self '"

В Chrome все работает без проблем, и мы видим, что просмотры страниц зарегистрированы в Google Analaytics, но в Firefoxи Edge нет запросов к Google Analytics, но нет и каких-либо ошибок, он попадает в функцию ga, но ничего не происходит.

Есть ли что-то еще, что мы должны были бы сделать в Firefox и Edge, чтобы сделать эторабота?

Структура нашего приложения такова, что скрипт содержимого создает на странице iframe и загружает popup.html в качестве источника этого iframe.Есть ли ограничение в Firefox / Edge, но не в Chrome, которое могло бы повлиять на Google Analytics для расширения, структурированного таким образом?

Сравнение сетевых запросов, Chrome слева, Firefox справа:

enter image description here

Я также изменил, чтобы он регистрировал просмотр страницы из фона.Опять же, это нормально работает в Chrome, но не работает в Edge / Firefox, но без ошибок.

...