2017-05-31 57 views
2

我想从我的Chrome扩展的background.js(后台脚本)向Google Analytics发送事件。从后台Chrome扩展发送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); 
})(); 

我尝试发送此事件:

_gaq.push(['_trackEvent', 'event_send', 'event_label'); 

,但林没有看到在分析仪表盘上的事件。 我还在我的manifest.json文件中加入了这一行: "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", 我需要做些什么才能使它在后台工作?

回答

4

这是我使用的代码。您需要将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'); 

而且,不要忘了在你的清单中添加https://www.google-analytics.com"content_security_policy"

+0

您是否在分析的活动页面上看到了这一点? 我没有看到它 你在做什么发送活动? 'ga('send','event','event_name','show',value);'? – Dkova

+0

@Dkova我记录事件,页面和例外,并且它们都显示出来。我用对象的字段是这样的:'\t事件:功能(事件,标签= NULL,动作= NULL){ \t \t \t如果(事件){ \t \t \t \t const的EV = {}; \t \t \t \t ev.hitType ='event'; \t \t \t \t ev.eventLabel = label?标签:ev.eventLabel; \t \t \t \t ev.eventAction = action?行动:ev.eventAction; ('send',ev); \t \t \t \t ga('send',ev); \t \t \t} \t \t},'但你在做什么对我来说看起来不错。 –

+0

这一切都来自background.js文件?而不是popup.js? – Dkova

相关问题