46 votes

Comment intégrez-vous Universal Analytics dans les extensions Chrome?

L'extension chrome guide a un tutoriel pour l'ancien analytics installer: https://developer.chrome.com/extensions/tut_analytics.html

Les instructions viens de dire pour le lien vers le https version et mise à jour le manifeste pour permettre le chargement des scripts à partir de cette URL. Donc, ceux qui doivent encore s'appliquer à la nouvelle version. Et en fait, je peux voir le script de chargement à partir du serveur.

Une fois le script charge analytique ne pas initialiser correctement soi-même et jamais des processus internes de la file d'attente (ga.f) pour envoyer ces événements sur le serveur. Il n'y a pas d'erreur dans la console. C'est juste tranquillement ne fait rien.

Ma conjecture est que le nouveau Universal Analytics est pas configuré pour s'exécuter dans le prolongement de l'environnement, mais l'universel docs font aucune mention de ce qui suit: https://developers.google.com/analytics/devguides/collection/analyticsjs/

personne ne sait si c'est même possible d'ajouter Universal Analytics à une extension encore, et lorsque cela pourrait être ajouté?

40voto

Sven Ackermann Points 131

Il y a un problème pour que sur Google code. Il n'est pas encore fixée (il semble que personne n'est à même de travailler sur elle), mais un utilisateur a commenté que vous pouvez passer analytics de votre propre protocole de la fonction de contrôle de façon officielle avec:

ga('set', 'checkProtocolTask', function(){/* just do not throw sth. here */});

Il semble que ce qui doit être fait après l' ga('create', ...), il ne fonctionne pas pour moi avant de cette ligne.

Si vous n'avez pas besoin de modifier l'original analytics.js script. Il suffit d'inclure la norme extrait de code de suivi (ne pas oublier d'ajouter "https:" prefix) et ajouter "https://www.google-analytics.com" à votre Contenu Politique de Sécurité.

Une note de ayal gelles solution ci-dessus: Il n'est pas nécessaire d'ajouter de l' chrome-extension://... le Contenu de la Politique de Sécurité, car il est déjà inclus dans l' 'self' déclaration. Aussi, au lieu de charger le script codé en dur via l'URL que vous devez utiliser chrome.extension.getURL("path/to/analytics.js"). De cette façon, vous n'avez pas besoin de connaître votre extension de l'ID, google Chrome le remplir pour vous.

32voto

dvdsmpsn Points 778

J'ai écrit un billet de blog sur ce sujet - Comment ajouter Google Universal Analytics suivi d'une extension Chrome

Voici les tripes de celui-ci:

// Standard Google Universal Analytics code
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();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'); // Note: https protocol here

ga('create', 'UA-XXXXX-YY', 'auto');
ga('set', 'checkProtocolTask', function(){}); 
ga('require', 'displayfeatures');
ga('send', 'pageview', '/options.html');

Il y a 3 points je serais tout particulièrement à mettre en évidence:

  • Spécifiez "https" au début de l'adresse de script pour correspondre avec l'inscription dans le manifeste.fichier json
  • Remplacer checkProtocolTask avec une fonction vide
  • Envoyer une page vue virtuelle en spécifiant le chemin d'accès – /options.html – sinon, Google Analytics va rejeter une URL dans le format chrome-extension://gdocgfhmbfbbbmhnhmmejncjdcbjkhfc/options.html

9voto

ayal gelles Points 1399

J'ai juste rencontré ce et semblent avoir piraté mon chemin à travers. Cela pourrait casser à un moment ou à ne pas être pleinement fonctionnel, mais va ici:

  • Télécharger le GA uglified+minifiés code source à partir d'ici: https://www.google-analytics.com/analytics.js, mettez dans votre extension chrome dossier, où il peut être plus tard chargé par la page d'arrière-plan.

  • En cela, trouver une fonction qui ressemble à quelque chose comme ceci:

function Oa(){var a=M[B][E];if("http:"!=a&&"https:"!=a)throw"abort";}. 

C'est le "point de rupture" depuis notre "protocole" est "chrome-extension:" et pas les deux.

  • Donc.. modifier cette fonction pour être quelque chose comme:
function Oa(){var a=M[B][E];if("chrome-extension:"!=a&&"http:"!=a&&"https:"!=a)throw"abort";}
  • ajouter un Contenu "Politique de Sécurité" de ce genre pour votre fichier de manifeste, assurez-vous qu'il pointe vers VOTRE version LOCALE de analytics.js vous avez juste modifié:
"content_security_policy": "script-src 'self'  chrome-extension://EXTENSIONID/path/to/analytics.js;  object-src 'self'",
  • Modifier la GA extrait de AUSSI le point de ce même fichier, quelque chose comme ceci:
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','chrome-extension://EXTENSIONID/path/to/analytics.js','ga');

espérons que cette aide.

2voto

Soflete Points 383

J'ai réussi à obtenir de Google Analytics et en cours d'exécution à l'aide de Chrome Plate-forme Analytique (CPA). La seule partie confusion est la façon de configurer une propriété dans la console d'administration de la GA. J'ai dû créer une Application Mobile de propriété, ce qui n'est pas trop intuitif.

Aussi, j'ai créé une page d'options qui permet aux utilisateurs de désactiver google analytics si vous le souhaitez, pour se conformer à l' opt-out exigences.

J'espère que ça aide!

1voto

simox Points 44

Il existe un moyen d'utiliser le protocole de mesure pour communiquer avec Google Analytics. J'ai développé un script pour ça:

https://github.com/melalj/universal-ga-extension

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X