Wir möchten GTM verwenden, um Werbeanzeigen in das DOM einzufügen. Wir haben das Anzeigen-Plugin installiert und verschiedene leere Platzhalter-Anzeigentypen mit Div-Containern wie <div id="adunit_x"></div> eingerichtet.
Wenn wir jedoch bei einem virtualPageView die IDs aller Anzeigen-Div-Container auswerten, wurden die Anzeigen zwischen den Beiträgen noch nicht gerendert. Vermutlich, weil das virtuelle DOM zum Zeitpunkt des virtualPageView-Ereignisses, das wir zur Auslösung der Auswertung verwenden, noch nicht vollständig gerendert ist.
Wenn wir ein Timeout hinzufügen, z. B. 3000 ms, bevor wir alle Anzeigen-Div-Container auswerten, funktioniert es.
Gibt es ein Ereignis in GTM, das signalisiert, dass das initiale virtuelle DOM nach dem Auslösen von virtualPageView vollständig gerendert wurde, und das wir nutzen können?
Wir können keine der anderen Standard-Ad-Plugin-Optionen verwenden, da sie alle nicht GDPR- oder CCPA-konform sind. Daher müssen wir dies über GTM und ein Cookie-CMP-System lösen, das steuert, ob und wann Werbung injiziert werden darf.
Die virtualPageView ist nett, aber es fehlt wirklich ein weiterer Event-Typ wie virtualPageLoaded, der über appEvents.trigger(“virtualPageLoaded”) ausgelöst wird, sobald alle Elemente und Widgets für die angezeigte Seite geladen sind. So könnten Skripte, z. B. in GTM, den endgültigen DOM-Baum abfragen. Wenn man sich als Admin eingeloggt hat, zeigt der Mini-Profiler, wie lange die vollständige Seitenrenderung gedauert hat – ein virtuelles virtualPageLoaded-Event zu diesem Zeitpunkt wäre beispielsweise sehr hilfreich.
Wir haben mittlerweile einen Workaround etabliert, bei dem wir warten, bis die erforderlichen Elemente verfügbar sind, aber ich mag diese Lösung nicht.