Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展的分析事件跟踪_Javascript_Google Chrome Extension_Google Analytics - Fatal编程技术网

Javascript Chrome扩展的分析事件跟踪

Javascript Chrome扩展的分析事件跟踪,javascript,google-chrome-extension,google-analytics,Javascript,Google Chrome Extension,Google Analytics,我试图在chrome扩展中添加google analytics事件跟踪,但它似乎没有正确地将事件发送到服务器。我将从内容脚本向后台脚本发送一条消息,让它知道如何跟踪事件,并使用_gaq.push()尝试将事件发送到服务器。我将在这里列出我所拥有的,并将感谢您的帮助,因为我可以找到错误/缺失的地方 这是我的清单文件,我已将谷歌分析添加到内容安全策略中 { "name": "XXXXXX", "short_name": "XXXXXX", "version": "0.4.2"

我试图在chrome扩展中添加google analytics事件跟踪,但它似乎没有正确地将事件发送到服务器。我将从内容脚本向后台脚本发送一条消息,让它知道如何跟踪事件,并使用_gaq.push()尝试将事件发送到服务器。我将在这里列出我所拥有的,并将感谢您的帮助,因为我可以找到错误/缺失的地方

这是我的清单文件,我已将谷歌分析添加到内容安全策略中

{
    "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
}
下面是我的内容脚本中的调用,让背景脚本知道如何使用google analytics跟踪事件

//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) {
       //
});
这是我的背景脚本,监听消息并通过跟踪事件做出响应(好吧,反正应该是这样的)


GA在my ext的背景页面中运行良好:

您是否已将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);

顺便说一句,您可以使用“”作为src来查看控制台中的调试信息。

GA在my ext的后台页面中运行良好:

您是否已将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);

顺便说一句,您可以使用“”作为src来查看控制台中的调试信息。

这应该是正确的答案。我发现了一种可靠的方法来执行这项任务,我相信这是谷歌自己的一个例子,以及他们推荐的方法(阅读代码片段中的注释)。链接到使用Google Analytics跟踪数据的示例扩展。

供参考的代码段:

// 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);
  }
});
//版权所有(c)2012 Chromium作者。版权所有。
//此源代码的使用受BSD样式许可证的约束,该许可证可以
//在许可证文件中找到。
/**
*在此处添加您的分析跟踪ID。
*/
var_分析代码='UA-XXXXXX-X';
/**
*下面是Google Analytics异步跟踪的修改版本
*代码片段。它已被修改为拉取ga.js的HTTPS版本
*而不是默认的HTTP版本。建议您使用此选项
*代码段,而不是设置时提供的标准跟踪代码段
*谷歌分析账户。
*/
var _gaq=_gaq | |[];
_gaq.push([“设置帐户”,分析代码];
_gaq.push([''u trackPageview']);
(功能(){
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);
})();
/**
*使用异步跟踪API跟踪对按钮的单击。
*
*看http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
*有关如何使用异步跟踪API的信息。
*/
功能轨迹按钮单击(e){
_gaq.push([''u trackEvent',e.target.id',clicked']);
}
/**
*现在为弹出窗口的'button'元素设置事件处理程序
*弹出窗口的DOM已加载。
*/
document.addEventListener('DOMContentLoaded',函数(){
var buttons=document.queryselectoral('button');
对于(变量i=0;i

同样正如Alex指出的,要对发送的分析数据进行调试日志记录,请使用while开发,而不是。

这应该是正确的答案。我发现了一种可靠的方法来执行这项任务,我相信这是谷歌自己的一个例子,以及他们推荐的方法(阅读代码片段中的注释)。链接到使用Google Analytics跟踪数据的示例扩展。

供参考的代码段:

// 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);
  }
});
//版权所有(c)2012 Chromium作者。版权所有。
//此源代码的使用受BSD样式许可证的约束,该许可证可以
//在许可证文件中找到。
/**
*在此处添加您的分析跟踪ID。
*/
var_分析代码='UA-XXXXXX-X';
/**
*下面是Google Analytics异步跟踪的修改版本
*代码片段。它已被修改为拉取ga.js的HTTPS版本
*而不是默认的HTTP版本。建议您使用此选项
*代码段,而不是设置时提供的标准跟踪代码段
*谷歌分析账户。
*/
var _gaq=_gaq | |[];
_gaq.push([“设置帐户”,分析代码];
_gaq.push([''u trackPageview']);
(功能(){
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);
})();
/**
*使用异步跟踪API跟踪对按钮的单击。
*
*看http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
*有关如何使用异步跟踪API的信息。
*/
功能轨迹按钮单击(e){
_gaq.push([''u trackEvent',e.target.id',clicked']);
}
/**
*现在为弹出窗口的'button'元素设置事件处理程序
*弹出窗口的DOM已加载。
*/
document.addEventListener('DOMContentLoaded',函数(){
var buttons=document.queryselectoral('button');
对于(变量i=0;i

同样正如Alex指出的,要对发送的分析数据进行调试日志记录,请使用while开发,而不是。

您实际上没有将分析代码包括在后台页面中。显然,这是行不通的。这对以前没有做过的人来说并不明显。然而,很明显,如果我知道我不会问这个问题。你能举个例子说明怎么做吗?我已尝试将“”添加到清单中的权限中,并将“”添加到清单的后台脚本中,但出现一个错误“无法加载后台脚本”。“您实际上没有将分析代码包含到后台页面中。显然,它不起作用。这是错误的。”