J'essaie d'ajouter Google Analytics à une application Web React.
Je sais comment le faire dans les sites HTML/CSS/JS et je l’ai également intégré à une application AngularJS. Mais, je ne sais pas trop comment s'y prendre quand il s'agit de réagir.
Avec HTML/CSS/JS, je venais de l'ajouter à chaque page.
Ce que j’avais fait avec AngularJS, c’est d’ajouter GTL et le script GA à index.html et d’ajouter des étiquettes UA aux libellés HTML (et boutons) pour obtenir des clics.
Comment puis-je faire cela avec React?
S'il vous plaît aider!
Mise à jour: février 2019
Voyant que cette question faisait l'objet de nombreuses recherches, j'ai décidé d'élargir mon explication.
Pour ajouter Google Analytics à React, je vous recommande d’utiliser React-GA.
Ajouter en exécutant:npm install react-ga --save
Initialisation:
Dans un composant racine, initialisez en exécutant:
import ReactGA from 'react-ga';
ReactGA.initialize('Your Unique ID');
Pour signaler une page vue:
ReactGA.pageview(window.location.pathname + window.location.search);
Pour signaler un événement personnalisé:
ReactGA.event({
category: 'User',
action: 'Sent message'
});
Plus d'instructions peuvent être trouvées dans github repo
La meilleure pratique pour cette OMI consiste à réagir-ga . Consultez le github rep
Sans utiliser un paquet, voici comment je le ferais:
Dans votre index.js
(dans la méthode render
):
{/* Global site tag (gtag.js) - Google Analytics */}
<script
async
src="https://www.googletagmanager.com/gtag/js?id=YOUR_TRACKING_ID"
/>
<script>{injectGA()}</script>
Et en dehors de la classe:
const injectGA = () => {
if (typeof window == 'undefined') {
return;
}
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.Push(arguments);
}
gtag('js', new Date());
gtag('config', 'YOUR_TRACKING_ID');
};
Une autre excellente bibliothèque que vous pouvez vérifier est redux-beacon .
Il s’intègre très facilement à l’application react/redux et dispose d’une excellente documentation. ReactGA est également utile, mais avec redux-beacon, vous n'encombrerez pas le code de votre application avec le code Google Analytics car il fonctionne via son propre middleware.
Je suggère d’incorporer le script Segment dans votre index.html
, d’utiliser la bibliothèque d’analyses accessible sur l’objet window
et d’ajouter des appels de suivi aux gestionnaires d’événements de React:
export default class SignupButton extends Component {
trackEvent() {
window.analytics.track('User Signup');
}
render() {
return (
<button onClick={this.trackEvent}>
Signup with Segment today!
</button>
);
}
}
Je suis le responsable de https://github.com/segmentio/analytics-react . Je vous recommande de vérifier si vous souhaitez résoudre ce problème en utilisant une API unique pour gérer les données de vos clients et pouvoir l'intégrer à tout autre outil d'analyse (nous prenons en charge plus de 250 destinations) sans écrire de code supplémentaire. ????