Установка кода отслеживания
Стандартный фрагмент кода отслеживания Google Analytics извлекает файл с именемga.js
с URL-адреса, защищенного SSL, если текущая страница была загружена с использованием протокола https://
.Расширения и приложения Chrome могут использовать только защищенную SSL версию ga.js
.Загрузка ga.js
через незащищенный HTTP запрещена политикой безопасности содержимого Chrome по умолчанию.Это, а также тот факт, что расширения Chrome размещаются по схеме chrome-extension://
, требуют небольшого изменения обычного фрагмента отслеживания для извлечения ga.js
непосредственно из https://ssl.google -analytics.com / ga.js вместо местоположения по умолчанию.
Ниже приведен измененный фрагмент для API асинхронного отслеживания (измененная строка выделена жирным шрифтом):
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = 'https://ssl.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
Также необходимо убедиться, что ваше расширение имеетдоступ к загрузке ресурса путем ослабления политики безопасности содержимого по умолчанию.Определение политики в вашем manifest.json может выглядеть следующим образом:
{
...,
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
...
}
Вот всплывающая страница (popup.html), которая загружает асинхронный код отслеживания через внешний файл JavaScript (popup.js) и отслеживаетпросмотр одной страницы:
<!DOCTYPE html>
<html>
<head>
...
<script src="popup.js"></script>
</head>
<body>
...
</body>
</html>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = 'https://ssl.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();