46 votes

Comment utiliser Google Analytics avec Phonegap sans plugin?

Je crée une application et je souhaite obtenir des analyses des utilisateurs. J'ai essayé d'utiliser le plugin Phonegap, mais je n'ai pas eu la moindre chance d'essayer de le mettre en œuvre.

Je me demandais s'il était possible d'obtenir Google Analytics en traitant l'application comme une page Web normale et en mettant du javascript dans l'en-tête de ma page.

Y a-t-il une meilleure manière de faire cela? et Phonegap Google Analytics est-il BEAUCOUP meilleur que ce que j'essaie de faire?

34voto

Mike Points 470

Découvrez la vidéo pour la voir en action:

http://screencast.com/t/6vkWlZOp

Après quelques recherches, j'ai trouvé une solution. Je suis tombé sur ce fil de discussion sur le Phonegap Groupe Google: https://groups.google.com/forum/#!msg/phonegap/uqYjTmd4w_E/YD1QPmLSxf4J (merci TimW et Dan Levine!) Dans ce fil, j'ai découvert qu'il est possible d'utiliser Google Analytics sans plugin. Tout ce que vous avez à faire est de télécharger l'ga.js fichier de Google http://www.google-analytics.com/ga.js (il suffit d'enregistrer la page dans votre dossier www)

Puis modifier la ga.js fichier en ajoutant un caractère. La recherche de la ga.js fichier pour le mot "fichier:" et remplacer par "_file:".

Dans le thread, j'ai lié ci-dessus, "TimW" explique le raisonnement pour cela:

Essentiellement, Google Analytics ne fonctionne pas si son utilisé à partir d'un file:/// url. Dans iOS/PhoneGap c'est le cas. Afin de résoudre ce problème, vous devez d'abord télécharger le ga.js fichier de google et comprennent comme une partie de votre construction locale. Vous remarquerez que ce fichier est d'obfuscation. Recherchez le fichier pour la chaîne "fichier:" ce qui devrait se produire qu'une seule fois. Lorsque vous le trouvez, ajouter un trait de soulignement au début (si c' devient "_file:"). Cela l'empêche de correspondance le protocole de la page emplacement (qui est "fichier:").

Après l'ajout d'un caractère vers la ga.js de fichier, il vous suffit d'inclure ce qui suit dans le haut de votre page:

<script type="text/javascript" src="ga.js"></script>
    <script>
 var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-YOUR_ID_HERE']);
    _gaq.push(['_setDomainName', 'none']);
    _gaq.push(['_trackPageview', 'NAME_OF_PAGE']);
    </script>

J'ai testé cela sur le simulateur, et j'en ai eu la preuve qu'il travaillait à l'aide de la vue en Temps Réel de Google Analytics. Le simulateur a été de travailler sur iOS 5.0. Mon téléphone est toujours sur l'iOS 4.2, et quand je l'ai testé sur mon appareil, il n'a pas montré sur le suivi en Temps Réel.

Dans le fil, quelqu'un a mentionné les mêmes problèmes avec Android 4.0+... j'espère qu'il y aura une meilleure solution dans le futur mais pour l'instant c'est le plus facile et moins compliqué pour obtenir de base analytique pour mon application. Il ne peut pas le faire en mode hors connexion de suivi, mais c'est un peu flippant de toute façon.

Même si iOS 4 et les utilisateurs d'Android sont une minorité dans le marché (voir graphique):

http://static7.businessinsider.com/image/4fd65fac6bb3f7925700000f/chart-of-the-day-ios-vs-android-june-2012.jpg

Je voudrais stil, comme pour obtenir les données à partir de tous les OS.

30voto

Guillaume Gendre Points 713

La solution pokki suggérée par Alex fonctionne bien avec quelques ajustements pour supprimer le besoin de Pokki.

J'ai créé un projet git pour cette version nettoyée ici:

https://github.com/ggendre/GALocalStorage

Fonctionne très bien sur Android 4.1 et iOS 6, je vais tester plus de périphérique très bientôt. J'espère que cela t'aides ! :)

2voto

Alex Points 41

Cela n'a pas fonctionné pour moi. Le problème que Google Code utilise des cookies et ne fonctionne pas avec file: // urls.

J'ai trouvé une bonne implémentation qui utilise localStorage à la place des cookies: https://developers.pokki.com/docs/tutorials.php

1voto

kate Points 83

J'ai implémenté la bibliothèque segment.io - analytics.js dans une application HTML5 / météore.

Je n'ai pas de plugin d'analyse dans phonegap (3.1). A travaillé immédiatement pour iOS.

Après la mise en œuvre, les analyses de l'application Android ne s'affichaient pas pendant environ 4 heures. Il a ensuite commencé à fonctionner sans modification de l’écart téléphonique ou des paramètres météores.

J'espère que cela aidera quelqu'un à éviter quelques heures de recherche d'un bug mystère.

Remarque: Assurez-vous que l’origine de l’accès est correcte. Par exemple, ajoutez

0voto

Wytze Points 2689

Si vous rencontrez des problèmes avec l'excellente solution de Guillaume Gendre sous Android 4.1 ou une autre plate-forme spécifique, cela pourrait les résoudre.

Si les journaux de votre console Android affichent "Erreur de chrome inconnue: 0", il est probable que vous ayez besoin d'affiner vos autorisations d'accès dans config.xml. J'ai résolu mon problème et l'ai décrit ici .

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