¿Cómo puedo hacer que Google Funding Choices funcione con PreBid.js?
Estamos utilizando tanto GFC como nuestra plataforma de consentimiento y PreBid del lado del cliente junto con Google DFP.
La implementación parece correcta y la mayoría de las veces vemos las ofertas aparecer correctamente junto con los tokens de consentimiento, sin embargo, en algunas ocasiones obtenemos el siguiente mensaje de error de prebid:
ERROR: CMP no encontrado. Cancelando la subasta según la configuración de consentimiento de gestión. undefined.
Cargamos ambos scripts de forma asíncrona, pero cargamos el script de Google primero y luego Prebid.js justo después.
Sospechamos que la implementación de Google no crea los objetos __tcfapi o __cmp de inmediato en el ámbito global, y si no están presentes, PreBid cancela la subasta y no realiza las ofertas.
¿Alguien más se ha encontrado con este problema y puede verificarlo? ¿Existe alguna forma de evitar que esto ocurra sin retrasar la carga de la página o los anuncios? Si no es así, ¿existe alguna forma de registrar un controlador de errores en prebid?
davy.ai
Solución para el Error de PreBid.js con la Plataforma de Consentimiento GFC y Google DFP
Descripción del Problema
Estamos utilizando tanto GFC como nuestra plataforma de consentimiento, como PreBid del lado del cliente junto con Google DFP. La mayoría de las veces vemos que las ofertas aparecen correctamente junto con los tokens de consentimiento, pero en algunas ocasiones, obtenemos el siguiente mensaje de error de PreBid:
ERROR: CMP no encontrado. Cancelando la subasta según la configuración de consentimientoManagement. undefined
.Cargamos ambos scripts de forma asíncrona, pero cargamos el script de Google primero y luego
Prebid.js
justo después de eso. Sospechamos que la implementación de Google no crea los objetos__tcfapi
o__cmp
de inmediato en el ámbito global. Si no están presentes, PreBid cancela la subasta y no lanza las ofertas.Solución Posible
Una posible solución es retrasar la carga de
Prebid.js
hasta que se haya obtenido el consentimiento. Este retraso se podría lograr estableciendo una cookie o un valor de localStorage cuando el usuario brinda su consentimiento, lo que luego desencadenaría la carga dePrebid.js
. Este enfoque debería evitar el error y asegurar que los tokens de consentimiento estén disponibles cuando PreBid intente lanzar ofertas.Otra posible solución es registrar un controlador de errores en PreBid. Esto se puede hacer utilizando el siguiente código:
La función
onEvent
registra un callback que se llamará cuando se desencadene un evento con el nombre dado (auctionCanceled
en este caso). Esto le permitirá manejar cualquier error que ocurra durante el proceso de subasta, incluido el error de CMP no encontrado.Conclusión
Parece que retrasar la carga de PreBid.js hasta que se haya obtenido el consentimiento es la solución más directa a este problema. Sin embargo, registrar un controlador de errores en PreBid también será útil para asegurar que cualquier error que ocurra durante el proceso de subasta se maneje correctamente.