Application Insights in Power Pages erst nach Einwilligung laden
Application Insights in Power Pages erst nach Einwilligung laden: SDK-Lebenszyklus, Widerruf, erneute Zustimmung und eine wichtige technische Grenze.
Inhalt
- Warum statische SDK Skripte die Kontrolle umgehen
- Wie der Adapter Telemetrie aktiviert
- Was mit Nutzerkontext und Cookies passiert
- Was ein Widerruf tatsächlich beendet
- Wo ein Rennen beim SDK Download entsteht
- Wie sich Ablehnung, Zustimmung und Widerruf auswirken
Warum statische SDK Skripte die Kontrolle umgehen
Ich lade Application Insights erst nach einer positiven Einwilligung. Der Adapter fügt beide SDK Skripte dynamisch ein und erstellt die Instanz erst, wenn sie geladen sind. Wurde ein SDK Skript vorher statisch eingebunden, kann der Browser bereits Netzwerkanfragen gesendet haben. Ein späterer Widerruf macht diese Anfragen nicht rückgängig.
Der Adapter steuert nur den eigenen Ladevorgang. Eine Einbindung außerhalb dieses Adapters bleibt davon unberührt. Consent und technische Laufzeit sind getrennte Zustände.
Wie der Adapter Telemetrie aktiviert
Die CMP Bridge synchronisiert die Einwilligung mit der Consent-Service-Registry. Bei positiver Einwilligung reiht die Registry den Enable-Callback des Application Insights Adapters ein. Dieser Callback lädt beide SDK Skripte nacheinander:
https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.jshttps://js.monitor.azure.com/scripts/b/ext/ai.clck.3.gbl.min.js
ensureApplicationInsightsSdk() teilt eine laufende Lade-Promise zwischen parallelen Aufrufen. Sind beide SDKs bereits verfügbar, startet kein weiterer Download. Schlägt das Laden fehl, setzt der Adapter die Promise zurück. Eine spätere Synchronisierung kann den Ladevorgang erneut versuchen.
Erst nach dem Laden beider Skripte erstellt initializeTelemetry() die Application Insights Instanz. Der Adapter lädt sie mit loadAppInsights(), registriert den Telemetry Initializer und sendet die erste Page View. Danach stellt er Tracking-Funktionen über window.telemetry bereit.
Die Registry veröffentlicht den Consent Snapshot, bevor Lifecycle-Callbacks abgeschlossen sind. Ein Wert von true bestätigt deshalb die Einwilligung, nicht den aktiven Telemetrie-Lifecycle. Die Architekturübersicht für Power Pages und React ordnet diese Zuständigkeiten ein.
Was mit Nutzerkontext und Cookies passiert
Der Adapter setzt Nutzerkontext nur, wenn die Konfiguration eine authenticatedUserId enthält. Dafür verwendet er setAuthenticatedUserContext() und übergibt eine optionale Account-ID. Das dritte Argument erlaubt dem SDK, den Nutzerkontext für die aktuelle Sitzung in einem Cookie zu speichern. Konkrete Identitäten und Konfigurationswerte gehören nicht in ein öffentliches Beispiel.
Nach der Initialisierung stellt window.telemetry Funktionen für Events, Seitenaufrufe, Exceptions und Traces bereit. Beim Widerruf entfernt der Adapter diese globale Schnittstelle wieder. Sie steht damit nur bereit, solange eine Telemetrie-Instanz existiert.
Was ein Widerruf tatsächlich beendet
unloadTelemetry() ruft zuerst flush() auf. Danach löscht der Adapter den authentifizierten Nutzerkontext, beendet die Instanz mit unload(true), entfernt die Cookies ai_user und ai_session und löscht window.telemetry.
Die bereits geladenen SDK Skripte bleiben im DOM. Bei einer erneuten Zustimmung erkennt der Adapter die verfügbaren SDK Globals und lädt die Skripte nicht erneut herunter. Er erstellt eine neue Telemetrie-Instanz.
Wo ein Rennen beim SDK Download entsteht
Widerruft ein Nutzer die Einwilligung während des SDK Downloads, wartet der Disable-Callback hinter dem laufenden Enable-Callback. Der Download wird nicht abgebrochen. Danach prüft initializeTelemetry() die Einwilligung nicht erneut. So kann trackPageView() noch ausgeführt werden, bevor Disable die Instanz beendet. Eine Sofort-Sperre erfordert eine erneute Consent-Prüfung vor der Instanzerstellung.
Wie sich Ablehnung, Zustimmung und Widerruf auswirken
Bei einer Ablehnung steht getSnapshot().applicationInsights auf false. Ohne vorherige Zustimmung fordert der Adapter die beiden SDKs nicht an. Nach einer Zustimmung lädt er die Skripte in der beschriebenen Reihenfolge. Der Snapshot beschreibt die Einwilligung. window.isTelemetryInitialized() meldet dagegen, ob bereits eine Instanz existiert. Während ein Callback läuft, können die Werte voneinander abweichen.
Die ECE Fallstudie zur Power Pages Enterprise-Suche zeigt den Projektkontext für den Application Insights Adapter.
Nach Abschluss des Deaktivierungs-Callbacks ist window.telemetry entfernt. Der Adapter löscht außerdem die Cookies ai_user und ai_session. Die Script Elemente bleiben trotzdem im DOM. Bei einer erneuten Zustimmung erstellt der Adapter eine neue Instanz, ohne die bereits verfügbaren SDK Skripte erneut anzufordern. Ein Widerruf während eines laufenden SDK Downloads unterliegt weiterhin dem beschriebenen Race.
Für Enterprise Portale macht diese Trennung die Zuständigkeit nachvollziehbar. Die CMP liefert die Entscheidung, die Registry veröffentlicht den Status und der Adapter steuert Application Insights. Das ist eine technische Architekturentscheidung und keine Zusicherung rechtlicher Konformität. Die bestehende Analytics-Architektur mit Application Insights behandelt Auswertung und Dashboards. Wenn du den Consent-Lifecycle deines Power Pages Portals prüfen möchtest, lass uns die Zuständigkeiten gemeinsam bewerten.
