Nous souhaitons utiliser GTM pour injecter des publicités dans le DOM. Nous avons installé le plugin publicitaire et configuré divers types d’espaces publicitaires vides avec des conteneurs div comme <div id="adunit_x"></div>.
Cependant, lors de l’évaluation de l’ID de tous les conteneurs div publicitaires sur virtualPageView, les publicités situées entre les publications n’ont pas encore été affichées. Cela est probablement dû au fait que le DOM virtuel n’a pas encore tout rendu au moment de l’événement virtualPageView que nous utilisons pour déclencher l’évaluation.
Lorsqu’on ajoute un délai d’attente, par exemple 3000 ms, avant d’évaluer tous les conteneurs div publicitaires, cela fonctionne.
Existe-t-il un événement dans GTM que nous pourrions exploiter et qui indique que le DOM virtuel initial a été rendu après le déclenchement de virtualPageView ?
Nous ne pouvons utiliser aucune des autres options standard de plugin publicitaire, car elles ne sont pas conformes au RGPD ou à la CCPA. Par conséquent, nous devons procéder via GTM et un CMP de cookies qui contrôle si les publicités peuvent être injectées ou non (et quand).
L’événement virtualPageView est sympathique, mais ce qui manque vraiment, c’est un autre événement de type virtualPageLoaded, déclenché via appEvents.trigger(“virtualPageLoaded”) une fois que tous les éléments et widgets de la page visible sont chargés. Ainsi, des scripts, par exemple dans GTM, pourraient interroger l’arbre DOM final. Par exemple, lorsqu’on est connecté en tant qu’administrateur, le mini-profiler affiche le temps nécessaire pour rendre la page complète ; il serait agréable de déclencher un événement virtualPageLoaded à ce moment-là.
Nous avons désormais mis en place une solution de contournement consistant à attendre que les éléments requis soient accessibles, mais je n’aime pas cette approche.