2017-05-31 50 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

相關問題