通过后台Chrome扩展程序发送Analytics事件

Dko*_*ova 3 javascript google-analytics google-chrome-extension

我正在尝试从chrome扩展程序的background.js(后台脚本)向Google Analytics(分析)发送事件。

我将此代码放在background.js文件中

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';
  ga.checkProtocolTask = null;
  var s = document.getElementsByTagName('script')[0];
  s.parentNode.insertBefore(ga, s);
})();
Run Code Online (Sandbox Code Playgroud)

我尝试发送此事件:

 _gaq.push(['_trackEvent', 'event_send', 'event_label');
Run Code Online (Sandbox Code Playgroud)

但我在Google Analytics(分析)仪表板上看不到该事件。我还将manifest.json以下行添加到文件中: "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", 我需要做些什么才能使其在后台运行?

Mic*_*ike 6

这是我使用的代码。您确实需要checkProtocolTask为扩展名设置。不知道您在做什么_gaq,但是您的_gaq.push行缺少右括号。另外,您正在使用不建议使用的分析版本。参见此处:https : //developers.google.com/analytics/devguides/collection/gajs/gaTrackingOverview

    // Standard Google Universal Analytics code
    // noinspection OverlyComplexFunctionJS
    (function(i, s, o, g, r, a, m) {
        i['GoogleAnalyticsObject'] = r;
        // noinspection CommaExpressionJS
        i[r] = i[r] || function() {
                (i[r].q = i[r].q || []).push(arguments);
            }, i[r].l = 1 * new Date();
        // noinspection CommaExpressionJS
        a = s.createElement(o),
            m = s.getElementsByTagName(o)[0];
        a.async = 1;
        a.src = g;
        m.parentNode.insertBefore(a, m);
    })(window, document, 'script',
        'https://www.google-analytics.com/analytics.js', 'ga');
    ga('create', TRACKING_ID, 'auto');
    // see: http://stackoverflow.com/a/22152353/1958200
    ga('set', 'checkProtocolTask', function() { });
    ga('set', 'appName', 'Photo Screensaver');
    ga('set', 'appId', 'photo-screen-saver');
    ga('set', 'appVersion', '<version here>');
    ga('require', 'displayfeatures');
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记添加https://www.google-analytics.com"content_security_policy"您的清单。