virtualPageView y el DOM virtual

Queremos usar GTM para inyectar anuncios en el DOM. Instalamos el complemento de anuncios y configuramos los diversos tipos de anuncios vacíos con contenedores div como <div id="adunit_x"></div>.

Sin embargo, al evaluar el id de todos los contenedores div de anuncios en virtualPageView, los anuncios entre las publicaciones aún no se han renderizado. Probablemente porque el DOM virtual no ha renderizado todo en el evento virtualPageView que estamos utilizando para activar la evaluación.

Al agregar un tiempo de espera, por ejemplo, 3000 ms antes de evaluar todos los contenedores div de anuncios, funciona.

¿Existe algún evento en GTM que podamos aprovechar y que indique que el DOM virtual inicial se ha renderizado después de que se haya disparado virtualPageView?

No podemos utilizar ninguna de las otras opciones estándar de plugins de anuncios, ya que ninguna cumple con el RGPD o la CCPA. Por lo tanto, debemos hacerlo a través de GTM y un CMP de cookies que controle si se pueden inyectar anuncios o no (y cuándo).

El virtualPageView es agradable, pero lo que realmente falta es otro evento tipo virtualPageLoaded que se active mediante appEvents.trigger(“virtualPageLoaded”) una vez que todos los elementos y widgets de la página visible se hayan cargado. De esta manera, los scripts, por ejemplo en GTM, podrían consultar el árbol DOM final. Cuando se inicia sesión como administrador, el mini profiler muestra cuánto tiempo tardó en renderizarse la página completa; sería útil, por ejemplo, disparar un evento virtualPageLoaded en ese momento.

Hemos establecido un workaround donde esperamos a que los elementos requeridos estén accesibles, pero no me gusta hacerlo de esta manera.