- La etiqueta del proveedor debe viajar con el creativo, desde la configuración de la campaña hasta la respuesta de la subasta.
- El storefront debe insertar el script en el banner renderizado después de que el comprador haya otorgado el consentimiento.
@topsort/verification para gestionar estos pasos.
La biblioteca auxiliar actualmente admite solo IAS. Reduce el código personalizado necesario para gestionar la inserción de etiquetas, los re-renders de banners, la rotación de anuncios y los cambios de consentimiento.
La biblioteca está disponible para todos los clientes de Topsort y funciona con o sin Banners.js. Siga los pasos siguientes para un renderizador de banners personalizado. Si usa Banners.js, consulte también Uso de Banners.js.
Antes de empezar
- Sus banners deben usar plantillas JSON, que definen campos creativos con nombre.
- Necesita una Consent Management Platform (CMP) para recopilar y registrar el consentimiento del comprador. Topsort y esta biblioteca no proporcionan una CMP. Conecta la biblioteca a su CMP existente mediante un adaptador de consentimiento.
Paso 1: Configurar la plantilla de banner
Al crear la plantilla de banner, incluya un campo de texto llamadoverificationTag. Este campo contiene la etiqueta de verificación del anunciante.
Puede usar otro nombre de campo, siempre que su storefront lea el mismo nombre de la respuesta de la subasta. Esta guía usa verificationTag.
Paso 2: Proporcionar la etiqueta de verificación
Durante la creación de la campaña, el anunciante pega en el campo de la plantilla la etiqueta que le suministra su proveedor de verificación. Para el soporte actual de IAS de la biblioteca, el valor aceptado es exactamente una etiqueta de script externa:- La URL debe usar HTTPS.
- El hostname debe ser
staticjs.adsafeprotected.com. - La ruta debe ser
/fw.js. - La URL debe contener exactamente un
advEntityIdnumérico y unpubEntityIdnumérico. - Se rechazan JavaScript en línea, atributos extra, elementos extra, otros hosts, puertos explícitos y fragmentos de URL.
Paso 3: Leer la etiqueta de la respuesta de la subasta
Los campos de la plantilla se devuelven en el objetocontent del asset ganador. Lea verificationTag junto con la URL de la imagen, el titular y otros campos creativos.
En la respuesta cruda de la subasta, esto es winner.asset[index].content.verificationTag, donde index identifica el asset que está renderizando.
Los ejemplos siguientes asumen que su aplicación mapea el objeto content de ese asset a banner.content y el resolvedBidId del ganador a banner.resolvedBidId. Estos son mapeos a nivel de aplicación, no un formato distinto de respuesta de subasta.
Paso 4: Registrar el banner renderizado
La biblioteca inserta el script validado en el contenedor del banner después de que se otorgue el consentimiento. También gestiona los cambios de registro cuando los banners se vuelven a renderizar, se rotan o se eliminan. En los ejemplos aparecen tres términos:- Runtime: El objeto que devuelve
createVerificationRuntime(...). Se conecta a su adaptador de consentimiento y rastrea los elementos de banner registrados. Cree un runtime para la página y reutilícelo entre banners. - Register: Llamar a
register(...)proporciona el elemento del banner, la etiqueta de verificación y la clave de render. La biblioteca comprueba el consentimiento antes de insertar el script. - Handle: El objeto que devuelve
register(...). Su métododispose()termina el registro y elimina el nodo de script que insertó la biblioteca.
consentSource descrito en Conecta tu CMP y luego registre cada banner después de que su elemento contenedor esté disponible:
renderKey distingue un re-render del mismo anuncio de un anuncio nuevo renderizado en el mismo elemento. Registrar un renderKey nuevo en el mismo elemento desmonta y reemplaza automáticamente el registro anterior.
Mantenga la clave estable para re-renders del mismo anuncio y cámbiela para el render de un anuncio nuevo.
Si element no es un elemento válido, la etiqueta está vacía o renderKey está vacío, register no hace nada y no carga nada. No lanza un error en el código de renderizado de banners.
Uso de React
Para React, cree el runtime una vez en un módulo compartido e impórtelo donde renderice banners. No lo cree dentro de un componente, donde montajes repetidos crearían runtimes y suscripciones de consentimiento separados.useVerificationRef devuelve un callback ref. React lo llama con el nodo DOM cuando el banner se monta y con null cuando se desmonta. El helper registra el banner y gestiona la limpieza, así que usted no llama a dispose().
Conecta tu CMP
La biblioteca no muestra UI de consentimiento y no se comunica directamente con su CMP. Usted proporciona un adaptador con dos funciones:current()devuelve el estado actual de consentimiento.subscribe(listener)informa los cambios de consentimiento y devuelve una función que deja de escuchar.
"unknown", "granted" o "denied".
El siguiente ejemplo ilustra la estructura del adaptador. Reemplace readMyCmp() y myCmp.on/off con las APIs reales de su CMP:
unknown: Espera sin parsear la etiqueta, obtener el script del proveedor ni modificar el DOM.granted: Valida la etiqueta, crea un elemento<script>nuevo a partir delsrcvalidado y lo añade dentro del elemento del banner. No inserta markup almacenado medianteinnerHTML.denied: Termina el registro sin cargar el script.
"granted" omite el control de consentimiento y permite que IAS se cargue en cuanto se registra el banner.
Si el consentimiento se retira más tarde, la biblioteca termina el registro y elimina su propio nodo de script. No puede deshacer código del proveedor que ya se ejecutó, solicitudes ya enviadas, globals ya definidos ni almacenamiento ya escrito. La limpieza es de mejor esfuerzo y cubre solo el nodo de script creado por la biblioteca.
Comprueba la integración
Pase un callbackonDiagnostic al crear el runtime para recibir códigos de estado como:
registeredactiveconsent_deniedinvalid_tagprovider_load_failedprovider_load_timeout
active significa solo que el script del proveedor terminó de cargar. No confirma que IAS registró una impresión, consideró el anuncio visible o aceptó los datos. Confirme la medición en los reportes de IAS.
Content Security Policy
Si su storefront usa una Content Security Policy (CSP), permitastaticjs.adsafeprotected.com en script-src para que el navegador pueda cargar el script de IAS.
Esto no es una allowlist de producción completa. El conjunto completo de orígenes de IAS requeridos para script-src, connect-src, img-src y frame-src sigue sujeto a validación de IAS.
Uso de Banners.js
La misma configuración de plantilla y el mismo adaptador de consentimiento aplican al usar Banners.js. Después de que Banners.js renderice un banner y dispare su eventoready:
- Identifique el elemento contenedor del banner renderizado.
- Lea
verificationTagdel content de plantilla del creativo ganador. - Registre el elemento, la etiqueta y la clave de render con el runtime de verificación, como se muestra en el Paso 4.