Wie kann ich Hotjar in React- oder Angular-Anwendungen implementieren?

Melden
  1. Einführung
  2. Integration in React
  3. Integration in Angular
  4. Zusammenfassung und wichtige Hinweise

Einführung

Hotjar ist ein weitverbreitetes Tool zur Analyse des Nutzerverhaltens auf Websites. Es ermöglicht

unter anderem Heatmaps, Nutzeraufnahmen und Feedback-Umfragen. Die Integration von Hotjar in moderne

Frontend-Frameworks wie React oder Angular erfolgt meist durch das Einfügen des Hotjar-Tracking-Codes.

Aufgrund ihrer komponentenbasierten Architektur und häufigen Nutzung von Client-Side-Routing muss dabei

besonders darauf geachtet werden, Hotjar korrekt zu initialisieren und ggf. bei Seitenwechseln zu

Integration in React

In React-Anwendungen ist der beste Weg, Hotjar zu integrieren, den offiziellen Tracking-Code in die

index.html im public-Verzeichnis einzufügen. Dieser Code wird beim ersten Laden

Allerdings reicht das Einfügen in index.html nicht aus, wenn Ihr React-Projekt Single Page Application (SPA) mit Client-Side-Routing ist (z. B. React Router). Hotjar muss in diesem Fall über den Router

Um Hotjar nach einem Seitenwechsel zu informieren, können Sie einen kleinen Wrapper verwenden und die

hj(stateChange, url)-Funktion aufrufen. Beispiel: In der Hauptkomponente, die Ihre Routen rendert,

können Sie mit einem Effekt (z. B. useEffect) auf Routenänderungen reagieren und diesen

import { useEffect } from react;import { useLocation } from react-router-dom;function HotjarTracker() { const location = useLocation(); useEffect(() => { if (window.hj) { window.hj(stateChange, location.pathname + location.search); } }, ); return null;}export default HotjarTracker;

Anschließend können Sie diese Komponente z. B. im Wurzel-Layout oder direkt unter dem Router einbinden. So stellen Sie sicher, dass Hotjar jedes Mal über die aktuelle URL informiert wird.

Integration in Angular

Bei Angular-Anwendungen wird der Hotjar-Code ebenfalls im Allgemeinen in der index.html im

Analog zu React ist es erforderlich, Hotjar auch bei Navigationsereignissen innerhalb der SPA über Änderungen zu informieren, da Angular ebenfalls Client-Side-Routing verwendet.

Eine Möglichkeit besteht darin, den Hotjar-StateChange-Aufruf im Haupt- oder App-Komponenten-Code zu implementieren

und dort auf Routing-Ereignisse über den Angular-Router zu reagieren. Sie können dazu einen Service oder die

App-Komponente nutzen, um auf NavigationEnd-Events zu hören und dann den Hotjar-Befehl auszuführen.

import { Component, OnInit } from @angular/core;import { Router, NavigationEnd } from @angular/router;declare global { interface Window { hj: any; }}@Component({ selector: app-root, templateUrl: ./app.component.html})export class AppComponent implements OnInit { constructor(private router: Router) {} ngOnInit(): void { this.router.events.subscribe(event => { if (event instanceof NavigationEnd) { if (window.hj) { window.hj(stateChange, event.urlAfterRedirects); } } }); }}

Dabei wird im ngOnInit der App-Component auf alle Navigation-End-Events reagiert. Sobald eine Navigation abgeschlossen ist, ruft man die Hotjar-Funktion auf, um Hotjar darüber zu informieren.

Zusammenfassung und wichtige Hinweise

Grundsätzlich sollte der Hotjar-Skript-Code in der statischen index.html oder einer entsprechenden Hosting-Vorlage eingebunden werden, damit das Tool einmalig geladen wird. Weil moderne Frameworks wie React und Angular Single Page Applications sind und die URL oft dynamisch mit dem Router geändert wird, ist ein automatisches Erkennen des Seitenwechsels durch Hotjar nicht gewährleistet.

Darum ist es wichtig, bei jeder relevanten URL-Änderung den Hotjar-Befehl hj(stateChange, url) zu triggern. Dazu reagiert man in React auf location-Änderungen via useEffect oder in Angular auf NavigationEnd-Events des Routers.

Durch diese Maßnahmen werden Heatmaps, Session Recordings und andere Hotjar-Metriken korrekt auf die jeweiligen Seiten innerhalb Ihrer SPA gebunden und nicht nur auf die Initialladung.

0
0 Kommentare