Google Analytics
Google Maps und Geocoding, Google Analytics und Google Fonts (wenn sie von Googles CDN abgerufen werden) können als nicht DSGVO-konform angesehen werden. Daher werden auf vielen Websites in der Europäischen Union, die diese Dienste nutzen, Warnungen oder Einverständniserklärungen angezeigt.
Beachten Sie die obigen Informationen, bevor Sie diese Dienste in Ihre Webanwendungen aufnehmen.
Jutro-Anwendungen verfügen über einen einfachen Mechanismus zur Aktivierung von Google Analytics (GA4). Sie enthalten auch Dienstprogramme, mit denen Sie benutzerdefinierte Ereignisse senden können.
Basisimplementierung von Google Analytics
Fügen Sie zum Aktivieren von Google Analytics die folgende Variable in der .env-Datei hinzu. Dies wird manchmal als Hinzufügen einer „Tracking-ID“ oder „Mess-ID“ bezeichnet. Diese ID finden Sie in Ihrem Google-Analytics-Konto.
"REACT_APP_GA4_TRACKING_ID": "G-XXXXXXXXXX"
Benutzerdefinierte Implementierung
Sie können die standardmäßige Analyseimplementierung mit einer eigenen benutzerdefinierten Implementierung überschreiben.
Es folgt ein Beispiel für die Basisvorlage für eine benutzerdefinierte Implementierung:
import { getConfigValue } from '@jutro/config';
import { publish, subscribe, JUTRO_TOPICS, loadGtag } from '@jutro/events';
export default () => {
const gtag = loadGtag(getConfigValue('GA4_TRACKING_ID'));
publish([
JUTRO_TOPICS.FETCH_REQUEST,
JUTRO_TOPICS.FETCH_RESPONSE,
JUTRO_TOPICS.FETCH_ERROR,
],)
subscribe(
[
JUTRO_TOPICS.FETCH_REQUEST,
JUTRO_TOPICS.FETCH_RESPONSE,
JUTRO_TOPICS.FETCH_ERROR,
],
(event, topic) => {
const transformedEvent = translate(whitelist(event));
gtag('event', topic, {
event_category: 'My fetch event'
event_label: JSON.stringify(transformedEvent),
});
}
);
publish()
};
Weitere Informationen zum Einrichten und Nachverfolgen von Ereignissen finden Sie in der Dokumentation zur Ereignis-API.
Tests in einer CI-Umgebung
Wir stellen einen E2E-Beispieltest bereit, mit dem geprüft wird, ob Ihre Anwendung Analysedaten an Google Analytics sendet. Dieser Test wird nur ausgeführt, wenn die Umgebungsvariable REACT_APP_GA4_TRACKING_ID für den Prozess festgelegt ist, der den Test ausführt. Wenn sie in der .env-Datei nicht angegeben ist, können Sie sie in TeamCity als Parameter festlegen, entweder in der Benutzeroberfläche oder in der Build-Konfigurationsdatei: param("env.REACT_APP_GA4_TRACKING_ID", "testGa4Id").
Anwendungsfehler nachverfolgen
Die Jutro-Beispielanwendung enthält ein Beispiel dazu, wie im Frameworkcode ausgelöste Fehler nachverfolgt werden können.
import { publish, subscribe, JUTRO_TOPICS } from '@jutro/events';
publish(JUTRO_TOPICS.UNKNOWN_ERROR, { val: 'unknown application error' });
subscribe(JUTRO_TOPICS.UNKNOWN_ERROR, (error) => {
//... your analytics code
});
Um alle Fehler nachzuverfolgen, fügen Sie dem Objekt window einen Listener hinzu. Wenn Listener für JUTRO_TOPICS.UNKNOWN_ERROR vorhanden sind, entfernen Sie sie.
window.addEventListener('error', (error) => {
//... your analytics code
});
Besonderheiten von Google Analytics-Ereignissen
Beispiel für das Senden eines Google Analytics-Ereignisses als Zeichenfolge in event_label:
gtag('event', 'play', {
event_category: 'Song Played',
event_label: JSON.stringify({
'Song Artist': 'The Rolling Stones',
'Song Title': 'Gimme Shelter',
}),
});
Damit werden die Nutzdaten an Google Analytics gesendet, aber:
- die maximale Länge jedes Ereignisattributs beträgt nur 500 Byte, sodass umfangreichere Nutzdaten möglicherweise nicht gesendet werden können
- das Objekt wird als Rohzeichenfolgenwert von
event_labeldargestellt
Sie können wie folgt mehrere Ereignisse senden, damit Daten mit Google Analytics einfacher verarbeitet werden können:
gtag('event', 'Song Played', {
event_category: 'Song Artist',
event_label: 'The Rolling Stones',
});
gtag('event', 'Song Played', {
event_category: 'Song Title',
event_label: 'Gimme Shelter',
});
Whitelists und Umwandlungen
Zwei Konzepte sind mit dem Senden von Benutzerereignissen außerhalb der Anwendung verbunden:
-
Whitelists (auch als Allowlists oder Positivlisten bezeichnet): Zu verwenden, um sensible Benutzerdaten vor dem Senden eines Ereignisses zu verbergen. Mit einer einfachen Implementierung in der Jutro-Anwendung werden alle Ereigniswerte immer verborgen, indem sie durch
whitelistConfig.obfuscationStringin der Konfiguration ersetzt werden. Die inwhitelistConfig.allowedPropertiesangegebenen Eigenschaften werden nicht verschleiert. -
Umwandlungen: Ereigniseigenschaften sind in Analyse-Dashboards nicht immer einfach lesbar. Mit einer Implementierung der Jutro-Anwendung können Ereigniseigenschaften durch besser lesbare Zeichenfolgen ersetzt werden.
Siehe
dictionaryConfig.eventKeysim folgenden Codebeispiel:
{
"whitelistConfig": {
"allowedProperties": ["path", "componentName"],
"obfuscationString": "**OBFUSCATED**"
},
"dictionaryConfig": {
"eventKeys": {
"path": "Field Data Path",
"componentName": "Component Name"
}
}
}
Ressourcen: