- 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 versión inicial 0.1.0 admite renderizadores personalizados de banners web con etiquetas de monitorización de IAS. Todavía no incluye una integración automática con Banners.js, otros proveedores de verificación, medición en aplicaciones móviles nativas ni instalación directa mediante <script>.
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.
<script> del navegador.
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. Su renderizador debe registrar cada banner cuando su elemento esté conectado y eliminar el registro cuando retire el banner. Registrar una clave de render distinta en el mismo elemento reemplaza automáticamente el registro anterior. 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.
Una etiqueta vacía no carga nada y elimina de forma segura cualquier registro anterior del mismo elemento. Los elementos no válidos, las claves de render vacías y las etiquetas no vacías mal formadas no cargan nada y generan diagnósticos limitados. Estas condiciones no lanzan errores 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_failedconsent_withdrawnconsent_source_failedelement_not_readyruntime_disposed
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.
Banners.js
La integración automática con Banners.js no forma parte de0.1.0. Una integración personalizada solo puede usar el runtime si proporciona el elemento renderizado exacto, verificationTag y resolvedBidId, y elimina el registro según el ciclo de vida del banner. La compatibilidad de primera clase con Banners.js se documentará por separado cuando esté disponible.