针对 Chrome 扩展程序的分析事件跟踪
Analytics Events Tracking for a 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
}
这是我的内容脚本中的调用,让后台脚本知道使用谷歌分析跟踪事件
//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
]);
}
});
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);
顺便说一句,您可以使用"https://ssl.google-analytics.com/u/ga_debug.js"作为src来查看控制台中的调试信息。
这应该是正确的答案。我遇到了一种执行任务的可靠方法,我相信这是 Google 本身的样本,具有他们推荐的方式(阅读代码片段中的注释(。链接到使用谷歌分析跟踪数据的示例扩展。https://developer.chrome.com/extensions/examples/tutorials/analytics.zip
供参考的代码片段:
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* Add your Analytics tracking ID here.
*/
var _AnalyticsCode = 'UA-XXXXXX-X';
/**
* Below is a modified version of the Google Analytics asynchronous tracking
* code snippet. It has been modified to pull the HTTPS version of ga.js
* instead of the default HTTP version. It is recommended that you use this
* snippet instead of the standard tracking snippet provided when setting up
* a Google Analytics account.
*/
var _gaq = _gaq || [];
_gaq.push(['_setAccount', _AnalyticsCode]);
_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);
})();
/**
* Track a click on a button using the asynchronous tracking API.
*
* See http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
* for information on how to use the asynchronous tracking API.
*/
function trackButtonClick(e) {
_gaq.push(['_trackEvent', e.target.id, 'clicked']);
}
/**
* Now set up your event handlers for the popup's `button` elements once the
* popup's DOM has loaded.
*/
document.addEventListener('DOMContentLoaded', function () {
var buttons = document.querySelectorAll('button');
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('click', trackButtonClick);
}
});
此外,正如 Alex 指出的那样,要启用正在发送的分析数据的调试日志记录,请在开发时使用 https://ssl.google-analytics.com/u/ga_debug.js 而不是 https://ssl.google-analytics.com/ga.js。
- 谷歌分析事件跟踪
- iOS/HTML5上的视频相关事件跟踪
- 在 Web 应用中处理事件跟踪的最佳(高性能)方法
- 如何在表单提交时在谷歌分析上设置事件跟踪
- Wordpress上的通用分析事件跟踪
- 如何使用Google Analytics添加自定义事件跟踪
- 谷歌分析悬停事件跟踪
- 基于AJAX的联系人表单7事件跟踪新的谷歌分析代码
- 新的谷歌分析事件跟踪代码不适用于我的网站
- 谷歌分析事件跟踪无法正常工作
- 使用谷歌通用分析进行事件跟踪
- 谷歌分析事件跟踪 - 不起作用
- 为什么此事件跟踪器不起作用
- 按钮上的谷歌分析事件跟踪
- 轻量级 Youtube 嵌入 + G. 分析事件跟踪
- JQuery location.href - 事件跟踪
- 谷歌分析出站链接事件跟踪
- 针对 Chrome 扩展程序的分析事件跟踪
- 高效的 JavaScript 事件跟踪
- 事件跟踪 - 需要链接在新窗口中打开,而不会被视为弹出窗口