Vogliamo utilizzare GTM per iniettare annunci nel DOM. Abbiamo installato il plugin per gli annunci e configurato i vari tipi di annunci generici vuoti con contenitori div come <div id="adunit_x"></div>.
Tuttavia, quando si valuta l’ID di tutti i contenitori div degli annunci durante l’evento virtualPageView, gli annunci inseriti tra i post non sono ancora stati renderizzati. Probabilmente perché il virtual DOM non ha ancora completato il rendering di tutti gli elementi al momento dell’evento virtualPageView che stiamo utilizzando per attivare la valutazione.
Aggiungendo un timeout, ad esempio 3000 ms, prima di valutare tutti i contenitori div degli annunci, il problema si risolve.
Esiste un evento in GTM che possiamo sfruttare per segnalare che il virtual DOM iniziale è stato renderizzato dopo l’attivazione dell’evento virtualPageView?
Non possiamo utilizzare nessuna delle altre opzioni standard dei plugin pubblicitari, in quanto non sono conformi al GDPR o al CCPA. Pertanto, dobbiamo gestire questa funzionalità tramite GTM e un CMP per i cookie che controlla se e quando è possibile iniettare gli annunci.
Il virtualPageView è utile, ma ciò che manca davvero è un altro evento di tipo virtualPageLoaded, attivato tramite appEvents.trigger(“virtualPageLoaded”) una volta caricati tutti gli elementi e i widget per la pagina visualizzata. In questo modo, script ad esempio in GTM potrebbero interrogare l’albero DOM finale. Quando si accede tramite l’amministratore, il mini profiler mostra quanto tempo è stato necessario per rendere l’intera pagina; ad esempio, sarebbe utile attivare un evento virtualPageLoaded in quel momento.
Attualmente abbiamo adottato una soluzione alternativa in cui attendiamo che gli elementi richiesti siano accessibili, ma non mi piace questo approccio.