2017-05-31 9 views
2

Ich versuche, ein Ereignis zu Google Analytics von background.js (das Hintergrundskript) meiner Chrome-Erweiterung zu senden.Senden Analytics-Ereignis von Hintergrund Chrome-Erweiterung

Ich habe diesen Code in meinem 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); 
})(); 

Datei und ich versuche, dieses Ereignis zu senden:

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

aber ich bin nicht das Ereignis zu sehen, auf Analytics Dashboard. Ich fügte auch meiner manifest.json Datei diese Zeile hinzu: "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'", Was muss ich tun, damit es vom Hintergrund funktioniert?

Antwort

4

Dies ist der Code, den ich verwende. Sie müssen die checkProtocolTask für eine Erweiterung festlegen. Nicht sicher, was Sie mit _gaq tun, aber Ihre _gaq.push Zeile fehlt eine schließende Klammer. Außerdem verwenden Sie eine veraltete Version von Analytics. Siehe hier: 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'); 

Auch vergessen Sie nicht https://www.google-analytics.com zum "content_security_policy" in Ihrem Manifest hinzuzufügen.

+0

sehen Sie dies auf der Event-Seite zu Analytics? Ich sehe es nirgends Was machst du, um Ereignis zu senden? 'ga ('send', 'event', 'event_name', 'show', Wert);'? – Dkova

+0

@Dkova Ich protokolliere Ereignisse, Seiten und Ausnahmen und sie alle erscheinen. Ich verwende die Felder Objekt wie folgt aus: '\t Ereignis: function (event, label = null, action = null) { \t \t \t if (event) { \t \t \t \t const ev = {}; \t \t \t \t ev.hitType = 'Ereignis'; \t \t \t \t ev.eventLabel = Bezeichnung? Etikett: ev.eventLabel; \t \t \t \t ev.eventAction = Aktion? action: ev.eventAction; \t \t \t \t ga ('senden', ev); \t \t \t} \t \t}, aber was Sie tun, sieht OK für mich aus. –

+0

und alles aus der Datei background.js? und nicht popup.js? – Dkova

Verwandte Themen