内容脚本与谷歌Analytics跟踪(Content Script tracking with Go

2019-06-26 03:18发布

我工作的谷歌的Chrome扩充功能,修改与内容脚本某些页面。 为了了解何时何地这些更改应用,我们正在调查谷歌分析,因为我们将其用于其他网站的属性了。

我们包括通过清单文件ga.js库,并与同步页面调用触发_trackPageview当我们将更改应用于一个页面。

var pageTracker = _gat._getTracker("UA-our-UA");    
pageTracker._setDomainName("none");
pageTracker._setAllowLinker(true);    
pageTracker._trackPageview(window.location.href);

这里麻烦的是,在不同的领域各综合浏览量计数作为一个新的参观游客。 它有没有办法来规避呢? 例如,它使用的Chrome扩展SQLite数据库或键值存储在浏览器中存储唯一的用户名和登陆ID域无关。 这可能吗?

谢谢

Answer 1:

你不应该执行内其他人的网站代码。 在谷歌Analytics(分析)配置是有些敏感,如果一个网站有一个自定义实现你可能会打破它为游客。

你应该在你自己的背景页谷歌分析。 然后从content_script传送回你的背景页面每次你需要跟踪的事件。

通过包括你的背景脚本的GA脚本是不错的,因为你不与网站上的其他代码干扰,它总是从同一个域中执行,从而将使用相同的cookie不会造成重复访问/人次。

下面是关于如何在背景页上安装GA更多信息。

http://code.google.com/chrome/extensions/tut_analytics.html

下面是用于使从内容脚本的信息到你的背景页文档:

http://code.google.com/chrome/extensions/messaging.html



Answer 2:

由于爱德华多在他回答说,你需要一个背景页,这样就可以像做:

在您的manifest.json文件:

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

content_scripts.js只要你想跟踪事件,将消息发送给后台页面来触发事件。

chrome.runtime.sendMessage({action: "yourEvent"});

background.js

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

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-XXXXXXX-X']);

    // here we receive the coming message from the content script page
    chrome.runtime.onMessage.addListener(function( request, sender, sendResponse ) {
        if(request.action == "yourEvent"){
            _gaq.push(['_trackEvent', "eventCategory", 'eventType']);
        }
    });


文章来源: Content Script tracking with Google Analytics