【发布时间】:2015-02-20 06:30:15
【问题描述】:
我正在尝试在 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
}
这是我的内容脚本中的调用,让后台脚本知道使用谷歌分析跟踪事件
//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) {
//
});
这是我的后台脚本,监听消息并通过跟踪事件进行响应(好吧,无论如何它都应该这样做)
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
]);
}
});
【问题讨论】:
-
您实际上并未将分析代码包含到您的背景页面中。显然,它不会起作用。
-
这对于以前没有这样做过的人来说并不明显。然而,很明显,如果我知道我不会问这个问题。你能提供一个如何做到这一点的例子吗?我尝试将“google-analytics.com”添加到清单中的权限,并将“google-analytics.com/analytics.js”添加到清单的 backgrounds.scripts 但收到错误“无法加载后台脚本'google-analytics.com/analytics.js'。”
标签: javascript google-chrome-extension google-analytics