Chrome 扩展程序的分析事件跟踪

ejf*_*cis 0 javascript google-analytics google-chrome-extension

我正在尝试在 chrome 扩展中添加谷歌分析事件跟踪,但它似乎没有正确地将事件发送到服务器。我正在从内容脚本向后台脚本发送一条消息消息,让它知道跟踪事件,并使用 _gaq.push() 尝试将事件发送到服务器。我将包括我在这里得到的东西,并希望得到一些帮助,因为我可以找到什么是错的/遗漏的

这是我的清单文件,我已将谷歌分析添加到 content_security_policy

{
    "name": "XXXXXX",
    "short_name": "XXXXXX",
    "version": "0.4.2",
    "description": "XXXXXX",
    "icons": { "128": "icon_128.png", "48": "icon_48.png" },
    "permissions": ["storage"],
    "content_security_policy" : "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
    "content_scripts": [
        {
            "matches": [
                "XXXXXX",
                "XXXXXX"
            ],
            "js": ["jquery.js","jquery.ba-hashchange.min.js","contentscript.js"],
            "run_at": "document_end"
        }
    ],
    "background" : {
        "scripts" : ["background.js"],
        "persistent" : false
    },
    "manifest_version": 2
}
Run Code Online (Sandbox Code Playgroud)

这是我的内容脚本中的调用,让后台脚本知道使用谷歌分析跟踪事件

//send message to background.js for analytics event tracking
chrome.runtime.sendMessage({
      action : 'analytics_add_item',
      item_name : item.name,
      item_stat : item.stat,
      item_number : itemNumber
}, function(response) {
       //
});
Run Code Online (Sandbox Code Playgroud)

这是我的后台脚本,侦听消息并通过跟踪事件进行响应(好吧,无论如何都应该这样做)

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

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {

        //track event - create
        if(request.action == "analytics_add_item"){
            _gaq.push(['_trackEvent',
                request.action,
                request.item_name.toLowerCase(),
                request.item_stat,
                request.item_number
            ]);
        }

});
Run Code Online (Sandbox Code Playgroud)

Ale*_*rov 5

GA 在我的 ext 中的背景页面中运行良好:https : //github.com/WellDoneCode/perfectpixel/blob/develop/Extension/background.js

您是否在后台页面中添加了 GA 脚本?

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);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您可以使用“ https://ssl.google-analytics.com/u/ga_debug.js ”作为 src 来查看控制台中的调试信息。