web-dev-qa-db-fra.com

Comment configurer les analyses sur React Native pour iOS

J'ai donc terminé un projet React Native pour iOS, mais je souhaite y intégrer des analyses. J'ai essayé le package react-native-google-analytics, mais des problèmes l'empêchent de fonctionner correctement. En outre, le package react-native-cordova-plugin ne fonctionne que sur Android, il est donc hors de question de pouvoir brancher un plug-in Cordova pour les analyses. De plus, je n’ai pas d’expérience Swift/Objective C, je serais donc complètement perdu pluggin in GA de cette façon. Quelqu'un a-t-il des suggestions sur la manière de connecter Google Analytics (ou toute autre analyse) à React Native pour iOS? Dans l'affirmative, donnez quelques instructions détaillées à ce sujet. Moi, et j'en suis sûr, beaucoup d'autres l'apprécieront :)

12
Tom Goldenberg

Je suis l'auteur d'un package Google Analytics pour React Native: https://github.com/idehub/react-native-google-analytics-bridge

S'agissant d'un pont natif assez simple avec les bibliothèques officielles de Google Analytics, il ne devrait pas vous exposer de problèmes liés à la plate-forme. En outre, il gérera automatiquement un grand nombre de métadonnées, telles que l'UUID du périphérique, le modèle de périphérique, la taille de la fenêtre d'affichage, la version du système d'exploitation, etc.

En raison de cette dernière partie, les appels peuvent être assez simples, comme le suivi d'une nouvelle vue d'écran:

import { GoogleAnalyticsTracker } from 'react-native-google-analytics-bridge';
let tracker = new GoogleAnalyticsTracker('UA-12345-1');
tracker.trackScreenView('Home')

Ou un événement:

tracker.trackEvent('testcategory', 'testaction');
12
cbrevik

Je viens de configurer mixpanel avec ce paquet: https://github.com/davodesign84/react-native-mixpanel

Et puis j'ai quelque chose comme ça dans mon fichier main.js qui contient tous mes composants de vue:

componentWillMount: function() {
    this.loadData(this.setDataState);
    // not sure if this is the best way to do it, but whatever
    Mixpanel.identify(DeviceInfo.getUniqueID());
    Mixpanel.set("$name", DeviceInfo.getDeviceName());
    Mixpanel.track("App Loaded");
}

Et puis dans mon view.js qui rend un composant avec des données, j'ai quelque chose comme ça:

componentWillMount: function() {
    Mixpanel.trackWithProperties("Definition Viewed",{Word:this.state.Word});

}

Et puis j'appelle aussi mixpanel lorsqu'un utilisateur ajoute/supprime des données.

Après tout cela, je viens de remarquer que fabric fait de l’analyse, alors je vais probablement migrer vers cela, car j’avais l'habitude de gérer les bêta-testeurs.

2
kevando

Je suis l'auteur de react-native-google-analytics. Le problème vient du manque de prise en charge par React Native des données GIF dans les réponses XHR sur iOS 7. J'essaie toujours de déterminer si le problème est réel. L’expérience est toujours limitée à iOS 7. Le problème a été signalé comme ayant été corrigé par l’équipe d’équipe réseau pour iOS> 7, mais si ce n’est pas le cas, il doit y avoir une régression. Le suivi du problème React Native se trouve ici: https://github.com/facebook/react-native/issues/1780

Si vous avez d'autres questions concernant le module, n'hésitez pas à les poser sur GitHub!

2
iLoch

Cela peut donc être utile aux gens, mais j'ai trouvé Segment - https://segment.com/ - beaucoup plus facile à configurer. Segment est intégré à Google Analytics et à tous les autres progiciels d’analyse, ce qui facilite les choses une fois la connexion établie. J'ai dû suivre quelques tutoriels sur la création d'un pont natif à l'aide de la technique RCT_EXPORT_MODULE, mais une fois que j'ai établi une connexion avec le client, j'ai pu insérer le code de démarrage de Segment. J'ai lié des appels d'événement spécifiques à différentes actions côté client via NativeModules.AnalyticsHelper.openApp(clientId), NativeModules.AnalyticsHelper.shareContent(clientId), etc. Je pense que c'est une bonne méthode à suivre.

J'ai également créé un Gist pour montrer comment configurer Segment Analytics for React en natif.

0
Tom Goldenberg