#javascript #google-chrome-extension #google-analytics
#javascript #google-chrome-расширение #google-analytics
Вопрос:
У меня есть расширение Chrome, которое отображает связанные страницы из example.com в iframe, когда люди запускают его во время просмотра других сайтов (скажем yahoo.com , например). У меня есть код отслеживания GA, настроенный в расширении, но когда запускается iframe, он отправляет URL-адрес окна (так что в данном случае «yahoo.com «) в ГА.
Как я могу заставить его отправлять информацию об URL-адресе example.com страница, которая вместо этого находится внутри iframe?
manifest.json:
"content_security_policy": "script-src 'self' https://www.googletagmanager.com https://ssl.google-analytics.com https://www.google-analytics.com/ https://www.google-analytics.com https://example.com; object-src 'self'; img-src www.googletagmanager.com https://www.google-analytics.com/ https://events.xg4ken.com https://beacon.krxd.net https://pubads.g.doubleclick.net https://sp.analytics.yahoo.com https://5237.xg4ken.com https://www.google.co.in https://s.amazon-adsystem.com www.google-analytics.com https://*.rfihub.com https://live.rezync.com https://secure.adnxs.com https://googleads.g.doubleclick.net https://www.googleadservices.com https://www.google.com https://trc.taboola.com https://www.facebook.com https://ad.doubleclick.net https://ext-inv-cdn.presage.io https://adservice.google.com/",
background.html:
<script src="../js/analytics.js"></script>
analytics.js:
(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();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', 'UA-XXXXXXXX-1', 'auto');
ga('set', 'checkProtocolTask', null);
В настоящее время код отслеживания на example.com неужели это:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXX-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXXXX-1');
if(window.parent)
window.parent.postMessage(window.location.pathname,"*")
</script>
Комментарии:
1. Не уверен, помогает ли это, но попытка работать наоборот — отслеживать iframe на странице практически невозможно (когда я пытался около года назад, это было возможно, только если iframe был из вашего собственного домена). Я предполагаю, что Google Analytics отправляет просмотр просмотров страниц до загрузки iframe (поскольку это JavaScript и, вероятно, загружается как один из последних элементов на странице). элементы). Вы можете попытаться отложить скрипт GA, чтобы убедиться, что он запускается после загрузки iframe. И вам, вероятно, потребуется перезаписать местоположение в скрипте GA. Если вы являетесь владельцем домена iframe, возможно, вы используете «виртуальные просмотры страниц» — отправляете поддельный просмотр страницы