Actualizado: 29 de marzo de 2025
Este artículo ha sido escrito por Rick Beijen, quien ha compartido amablemente sus consejos con los lectores de Analytics Mania.
Si trabajas con Microsoft Ads (también conocidos como Bing Ads), ahora es esencial implementar el Modo de Consentimiento de Microsoft. Si aún no lo has hecho y te encuentras en las ubicaciones requeridas, es probable que hayas notado una disminución en las conversiones atribuidas a tus campañas. La implementación del modo de consentimiento debería restaurar tu seguimiento y atribución de conversiones.
Este artículo proporciona una guía paso a paso para implementar el Modo de Consentimiento de Microsoft utilizando Google Tag Manager (GTM) o JavaScript, además de una forma de probar y verificar tu configuración utilizando las herramientas de desarrollo del navegador.
¿Qué es el Modo de Consentimiento de Microsoft y cómo funciona?
Microsoft introdujo su Modo de Consentimiento a finales de septiembre de 2024 en el Espacio Económico Europeo, el Reino Unido y Suiza, convirtiéndolo en un componente obligatorio de su seguimiento de conversiones. Similar al Modo de Consentimiento de Google, establece un estado de consentimiento predeterminado que debe actualizarse una vez que el usuario proporciona su consentimiento.
Una diferencia clave entre el enfoque de Microsoft y el de Google es que Microsoft utiliza solo un parámetro, ad_storage, que se puede establecer como granted (concedido) o denied (denegado). Cuando se envía un evento, se agrega el parámetro asc, que indica el estado de consentimiento del usuario:
- Un valor de G para granted
- Un valor de D para denied
El Modo de Consentimiento de Microsoft permite dos modalidades de implementación:
- Básico: Los datos solo se envían a Microsoft después de que se otorga el consentimiento, pero se utilizan los nuevos parámetros.
- Avanzado: Los datos se envían a Microsoft sin consentimiento, pero el ID de clic no se almacena ni se envía. Si el ID de clic está en la URL, se almacena y se envía con el estado de consentimiento actualizado si se concede posteriormente.
Aspectos importantes a considerar
Es fácil asumir que no necesitas implementar el Modo de Consentimiento de Microsoft si tu negocio opera fuera del EEE, el Reino Unido o Suiza. Sin embargo, he encontrado casos en los que los datos de conversión caen a cero, incluso en otras regiones.
Esto sugiere que la implementación del Modo de Consentimiento es necesaria independientemente de tu ubicación. La diferencia clave radica en que deberás ajustar los estados de consentimiento predeterminados y actualizados para alinearlos con las regulaciones y prácticas específicas de tu país.
Modo de consentimiento avanzado de Microsoft
Examinemos más de cerca su modo de consentimiento avanzado. Aunque no hay mucha documentación (o ninguna), quiero compartir algunos de mis resultados de pruebas.
Cuando se visita un sitio web sin otorgar consentimiento, el modo de consentimiento avanzado envía solicitudes no consentidas con el parámetro asc configurado como D (denegado). Puedes ver el msclkid en la URL, pero no se añade como parámetro en la solicitud. Además, no se guarda la cookie _uetmsclkid con el ID de clic.
Cuando acepto las cookies (con el ID de clic aún disponible en la URL), se envía un comando de actualización con el ID de clic, lo que permite que la cookie se almacene y esté disponible para todos los eventos posteriores.
Sin embargo, si negamos las cookies (o ignoramos el banner) en la primera página y aceptamos las cookies en la segunda, el ID de clic se establece en N, ya que no está disponible en la URL, y nuevamente, no se guarda ninguna cookie.
Esto me lleva a creer que el modo de consentimiento avanzado solo funciona cuando tienes algún tipo de mecanismo de paso de URL para transmitir el ID de clic entre páginas, al igual que Google. Pero, hasta donde sé, Microsoft no cuenta con eso.
¿Cuál debería elegir?
Más allá de las preocupaciones legales y de privacidad, me cuesta ver algún valor añadido en elegir el modo de consentimiento avanzado, dada la falta de documentación y su funcionamiento. El único caso en el que podría tener sentido es si muchos usuarios no interactúan con tu banner de consentimiento en la primera página de su sesión. Pero incluso en ese caso, necesitarías implementar tu propio mecanismo de paso.
A continuación, te mostraré cómo se ve la información de los datos en las herramientas de desarrollo y después explicaré la configuración en Google Tag Manager. Estoy utilizando Google Chrome, pero otros navegadores funcionan de manera similar.
Verificación de las solicitudes de red
Utiliza la pestaña de red del navegador para ver las solicitudes enviadas a los servidores de anuncios de Microsoft. Para abrir las herramientas de desarrollo en cualquier sitio web, usa la combinación de teclas (F12 en Windows o Option + ⌘ + I en Mac) o haz clic en los tres puntos alineados verticalmente en la esquina superior derecha de tu ventana de Google Chrome y luego dirígete a Más herramientas > Herramientas para desarrolladores.
Ve a la pestaña de red y recarga la página. Verás todas las solicitudes de red realizadas desde el navegador, que es donde depuraremos nuestras configuraciones.
Comprobación del estado de consentimiento en la consola
Aparte de verificar las solicitudes de red, puedes obtener los estados de consentimiento del script UET en la consola. Encuentra la consola en las mismas herramientas de desarrollo.
Pega este código en la consola:
console.table(uetq.uetConfig.consent)
Esto mostrará el estado de consentimiento en la consola en una tabla fácil de leer, donde podrás verificar si el modo de consentimiento está habilitado y si se ha concedido o denegado.
Cómo configurar el Modo de Consentimiento de Microsoft en Google Tag Manager
La configuración del Modo de Consentimiento de Microsoft depende de cómo esté configurada tu gestión de consentimientos. He listado dos métodos que deberían cubrir la mayoría de las configuraciones.
Desactivar la configuración de consentimientos en la etiqueta de anuncios de Microsoft
Si utilizas la plantilla de seguimiento de eventos universal de Microsoft Advertising, hay una casilla que está habilitada por defecto para escuchar actualizaciones de consentimiento.
Desactiva esta configuración para gestionar manualmente las actualizaciones de consentimiento. Desmarca la casilla para que la etiqueta se vea así:
Uso de la plantilla de etiqueta del Modo de Consentimiento de Simo Ahava
Primero, verifica si estás utilizando el Modo de Consentimiento de Google y si lo gestionas con la plantilla de etiqueta de Simo Ahava. Si es así, deberías tener estas dos etiquetas en tu contenedor.
Si no utilizas esa plantilla, la segunda forma de implementación es para ti. Afortunadamente, Simo Ahava ha incorporado el Modo de Consentimiento de Microsoft en su plantilla de etiqueta del Modo de Consentimiento de Google. Es importante notar que funciona configurando el estado de consentimiento predeterminado antes de que se cargue la etiqueta UET, lo que difiere de lo descrito en la documentación, pero funciona igual de bien.
Veamos los modos de consentimiento avanzado y básico.
Método avanzado: Configuración del estado predeterminado
Abre tu etiqueta de consentimiento predeterminado y marca la casilla ‘Habilitar Modo de Consentimiento de Microsoft’. Desplázate hacia abajo y asegúrate de que el estado de ad_storage esté configurado de acuerdo a tu valor deseado. Quiero utilizar una variable que devuelva ‘granted’ o ‘denied’ dependiendo del consentimiento.
En mi caso, es una variable de dataLayer que lee ‘cookiehub_marketing’, pero en tu caso puede ser un evento diferente (dependiendo de tu CMP). Esta es la variable necesaria para la configuración:
Si tu variable devuelve ‘true’ o ‘false’, como la mía, deberás convertir esas respuestas a ‘granted’ y ‘denied’ y establecer el predeterminado como ‘denied’. Configura el disparador para ‘Inicialización de Consentimiento – Todas las Páginas’.
El comando predeterminado ahora está configurado. Un paso importante es asegurarte de que tu etiqueta UET se dispare antes de que se conceda el consentimiento, por ejemplo, en ‘Inicialización – Todas las Páginas’.
Actualización del consentimiento cuando se concede
Abre tu etiqueta de actualización de consentimiento y habilita la casilla ‘Habilitar Modo de Consentimiento de Microsoft’. Desplázate hacia abajo y establece el valor de ad_storage. Quiero utilizar esa misma variable aquí. Esto establecerá los estados de consentimiento predeterminados y actualizará los estados de consentimiento de manera adecuada, asegurando que el estado predeterminado sea ‘granted’ cuando ya existe consentimiento, y para cada página que el usuario navegue después de otorgar el consentimiento.
Prueba de la configuración
Ahora es momento de probar. Haz clic en ‘vista previa’. Espera a que el sitio web se abra en modo de vista previa y abre la pestaña de red en las herramientas de desarrollo. Recarga la página y busca ‘bing’ en el filtro.
Si no has dado ningún consentimiento, la etiqueta UET se cargará y el estado de consentimiento predeterminado se establecerá en ‘Denied’. Deberías ver al menos estas 4 solicitudes:
- bat.js
- <tu_id>.js
- Una solicitud 0?= para establecer el consentimiento predeterminado como esta: “https://bat.bing.net/actionp/0?ti=00000000&…..&evt=consent&src=default&……&asc=D”.
- Una solicitud 0?= para enviar un pageLoad como esta:
“https://bat.bing.net/action/0?ti=00000&………&evt=pageLoad&sv=1&asc=D…….”.
En mi caso y probablemente en el tuyo, verás 5 solicitudes. Microsoft está aplicando gradualmente un estado de consentimiento predeterminado de ‘Denied’ para los visitantes del Espacio Económico Europeo, el Reino Unido y Suiza. Esto significa que también podrías ver una solicitud como esta:
“https://bat.bing.net/actionp/0?……&evt=consent&src=enforced…&asc=D”.
Está bien si no ves esto, siempre que haya una solicitud predeterminada. Lo más importante es asegurarte de que el parámetro asc esté incluido en cada solicitud a Microsoft (las solicitudes 0?ti=…). Haz clic en una de las solicitudes y verás que el parámetro debería ser D:
Ahora acepta tus cookies, debería enviarse una solicitud de actualización con G para asc.
Cuando navegues a una nueva página, tu evento de pageLoad (y cualquier otro evento que hayas implementado) tendrá el mismo parámetro:
Cuando revises la tabla en la consola, debería devolver esto:
La información más importante es que enabled y adStorageAllowed deberían ser verdaderos.
Método básico: Configuración del estado predeterminado
Hay múltiples formas de implementar el modo de consentimiento básico. Lo importante es que solo dispares la etiqueta de Microsoft Ads cuando se otorgue el consentimiento con los parámetros actualizados. Te mostraré cómo me gusta hacerlo.
Suponiendo que tu consentimiento ya está implementado en GTM, primero debemos establecer un valor predeterminado, como en el modo de consentimiento avanzado. Abre tu etiqueta de consentimiento predeterminado y habilita la casilla ‘Habilitar Modo de Consentimiento de Microsoft’. Desplázate hacia abajo y asegúrate de que el estado de ad_storage esté configurado según tu valor deseado. Quiero utilizar la misma variable de dataLayer que uso en el modo avanzado.
El disparador de esta etiqueta debe configurarse para ‘Inicialización de Consentimiento – Todas las Páginas’.
Actualización del consentimiento y disparo de la etiqueta de Microsoft
Abre tu etiqueta de actualización de consentimiento y habilita la casilla ‘Habilitar Modo de Consentimiento de Microsoft’. Desplázate hacia abajo y establece el valor de ad_storage. Quiero utilizar esa misma variable aquí.
A continuación, deseo habilitar el evento de dataLayer. Esto disparará un evento en el dataLayer cuando se actualice el consentimiento. La push del dataLayer tendría este aspecto:
dataLayer.push({'event': 'gtm_consent_update'});
Para usar esto, primero debemos crear un nuevo disparador en Disparadores > Nuevo. Elige ‘Evento Personalizado’ y establece el nombre del evento como ‘gtm_consent_update’. Haz clic en ‘guardar’ y ahora lo agregamos como un disparador para nuestra etiqueta de anuncios de Microsoft y configuramos las condiciones de consentimiento para dispararse solo en ad_storage.
Haz clic en ‘guardar’ y estamos listos para probar.
Prueba de la configuración
Haz clic en ‘vista previa’. La etiqueta de consentimiento predeterminado debería activarse primero con el Modo de Consentimiento de Microsoft verdadero y en consentimiento denegado. Tu etiqueta de actualización debería dispararse en la actualización de consentimiento, y tu etiqueta de Microsoft debería dispararse en el gtm_consent_update. Cuando eso funcione, abre la pestaña de red en tu sitio web, recarga el sitio y busca ‘bing’.
Abre el evento de pageLoad. El parámetro asc debería ser G. La tabla en la consola debería mostrar que enabled y adStorageAllowed son verdaderos.
Uso de la plantilla de Modo de Consentimiento de Microsoft de Markus Baersch
Si no estás utilizando la plantilla de Simo o el Modo de Consentimiento de Google en absoluto, y necesitas el Modo de Consentimiento de Microsoft en GTM, la plantilla de Markus Baersch es perfecta. Facilita el cambio entre configuraciones básicas y avanzadas, así que mostraré cómo configurar la avanzada y cómo cambiar entre ellas.
Etiqueta de Microsoft Ads
Para que este método funcione mejor, debes agregar el comando predeterminado como una etiqueta de limpieza para tu etiqueta de Microsoft Ads. La etiqueta de Microsoft Ads debería activarse en un evento de actualización de consentimiento de cookies. En mi caso, ese disparador se ve así con Cookiehub:
Y mi etiqueta de Microsoft Ads está configurada para activarse ‘Una vez por página’. Puedes hacer esto en la configuración avanzada de tu etiqueta.
Agregando la etiqueta predeterminada
Primero, debemos obtener la plantilla de etiqueta de la Galería de Plantillas de la comunidad. Crea una nueva etiqueta y haz clic en la galería. Busca ‘Modo de Consentimiento de Microsoft UET’ y selecciona la plantilla de mbaersch.
Haz clic en ‘Elegir plantilla’. Esto abrirá el nuevo tipo de etiqueta. Aquí podemos establecer el estado de consentimiento predeterminado y agregar un tiempo en milisegundos de cuánto tiempo deben esperar las etiquetas UET para un comando de ‘Actualización’. En mi experiencia, funciona mejor si utilizas un tiempo de no más de 2000 milisegundos y una variable que devuelva ‘granted’ o ‘denied’ en el comando predeterminado.
La etiqueta retrasa las solicitudes a Microsoft durante 2 segundos para permitir actualizaciones de consentimiento y las envía cuando se recibe la actualización. Ajusta el tiempo si es necesario, pero ten en cuenta que cualquier valor más largo podría arriesgar el envío de un evento antes de que el usuario navegue.
La variable para ad_storage es una variable de dataLayer que lee ‘cookiehub_marketing’. En tu caso, puede ser un evento de dataLayer diferente (dependiendo de tu CMP). Si tu variable devuelve ‘true’ o ‘false’ como la mía, deberás convertir esas respuestas a ‘granted’ y ‘denied’ y establecer el predeterminado como ‘denied’. La última cosa que debes hacer es establecer esta etiqueta para que se dispare ‘Una vez por página’ en Configuración Avanzada.
También tienes estas casillas:
- Si estás utilizando TCF, puedes habilitar esa casilla.
- Puedes habilitar esa casilla si estás utilizando Microsoft Clarity y deseas que la etiqueta gestione el consentimiento de Clarity. Sin embargo, ten en cuenta que esto requiere más configuración en Clarity.
- Puedes marcar la casilla si deseas que la etiqueta empuje un evento al dataLayer, la cual enviará un evento uet_consent_default con la configuración de la etiqueta.
Dejaré eso desmarcado. Guarda la etiqueta sin un disparador y abre tu etiqueta de Microsoft. Aquí, podemos establecer esta etiqueta como la etiqueta de limpieza para que se dispare después de la etiqueta de Microsoft.
¿Por qué usamos la secuenciación de etiquetas aquí, mientras que no lo hicimos con la plantilla de Simo Ahava? Según la documentación de Microsoft, el modo de consentimiento debe configurarse después de la etiqueta UET. Sin embargo, con el modo de consentimiento de Simo, es imposible disociar los datos del modo de consentimiento de Microsoft de los de Google. Por eso configuramos el modo de consentimiento de Microsoft antes de las etiquetas. Independientemente de la documentación de Microsoft, funcionó bien para mí.
Con la plantilla de Markus Baersch, tenemos un modo de consentimiento de Microsoft separado, por lo que podemos seguir más de cerca la documentación de Microsoft.
Agregando la etiqueta de actualización
Junto a la etiqueta predeterminada, podemos agregar una etiqueta de ‘Actualización’ para enviar cambios en el consentimiento. La configuración es bastante similar. Primero, creemos una nueva etiqueta de Modo de Consentimiento de Microsoft. La plantilla debería estar en tu lista. Cambia el comando de consentimiento a ‘update’ y establece el valor. Puedes establecer un valor estático de ‘granted’ o una variable que contenga el estado de consentimiento (recomiendo la última opción). En mi caso, añado mi variable cookiehub_marketing.
Mantengo todo lo demás desmarcado. Ahora, debemos agregar el mismo disparador de consentimiento de cookies que utilicé anteriormente. Debo agregar esto como un disparador. Al final, debería verse algo así:
Esta etiqueta debe dispararse ‘Una vez por evento’ en lugar de ‘Una vez por página’. Este es el valor predeterminado, pero puedes verificarlo aquí. Haz clic en ‘guardar’.
Prueba de la configuración
Cuando todo esté guardado, puedes hacer clic en ‘vista previa’. Deberías ver algo como esto: Si ya habías aceptado tus cookies antes, deberías ver ‘granted’ tanto en las etiquetas de predeterminado como de actualización. Pero supongamos que llegas como un nuevo usuario, por lo que predeterminado será ‘denied’, y después de un tiempo, aceptas tus cookies. Deberías ver un valor predeterminado de ‘denied’ en el primer disparador de cookie_consent_update.
Y el comando de actualización debería dispararse en el siguiente disparador de cookie_consent_update, que debería contener ‘granted’. Para verificar que todo funcione correctamente, puedes observar las solicitudes de red. Abre la pestaña de red en tu sitio web, recarga el sitio y busca ‘bing’. Haz clic en una de las solicitudes y encontrarás el parámetro que debería ser D.
Ahora acepta tus cookies, debería enviarse una solicitud de actualización con G para asc. Cuando navegues a una nueva página, tu evento de pageLoad (y cualquier otro evento que hayas implementado) tendrá el mismo parámetro. Cuando revises la tabla en la consola, debería devolver esto:
Lo más importante es que enabled y adStorageAllowed deberían ser verdaderos.
Cambio de avanzado a básico
Si sigues los pasos anteriores, habrás implementado el modo de consentimiento avanzado. Si deseas el básico, solo necesitas agregar un disparador de bloqueo a la etiqueta de Microsoft para que no se active en eventos sin consentimiento. También puedes eliminar la etiqueta de actualización. Este es mi disparador de bloqueo:
Se configura para activarse en todos los eventos utilizando la expresión regular “.*” y cuando mi variable de cookiehub no contiene granted. Agrego esto como un disparador de bloqueo a mi etiqueta de Microsoft.
Después, solo deberías ver solicitudes de red con un valor de G para el parámetro asc.
Cómo configurar el Modo de Consentimiento de Microsoft de forma codificada
A veces, no puedes implementar el modo de consentimiento con GTM y debes usar JavaScript. Esto puede ser necesario por muchas razones, pero lo importante es recordar que no necesitas ambos, GTM y código. Esto es innecesario si ya has implementado el modo de consentimiento con GTM. Consulta a un desarrollador para garantizar una implementación adecuada.
Configuración del estado predeterminado
Primero, deberás establecer el estado predeterminado. Debes pegar este código justo después de tu código de la etiqueta UET en el <head>:
// La etiqueta UET se añade aquí
// Puedes establecer el modo de consentimiento predeterminado justo después de la etiqueta UET
<script>
window.uetq = window.uetq || [];
window.uetq.push('consent', 'default', {
'ad_storage': 'denied',
'Wait_for_update': 2000
});
</script>
Esto debe establecerse en todas las páginas. Ajusta el tiempo de espera si es necesario.
Actualización del consentimiento después de que se concede
Cuando el usuario otorga su consentimiento, deberás actualizar su estado de consentimiento utilizando este código:
<script>
window.uetq = window.uetq || [];
window.uetq.push('consent', 'update', {
'ad_storage': 'granted'
});
</script>
Cuándo ejecutar este código depende de tu banner de consentimiento. Es mejor pedir a los desarrolladores que ejecuten este código en el consentimiento de cookies (específicamente la categoría de anuncios); ellos sabrán qué hacer.
Si has implementado el estado predeterminado y la etiqueta UET antes de que se otorgue el consentimiento, se enviarán eventos a Microsoft. Si no deseas esto pero sí deseas cargar la etiqueta UET, puedes establecer una cookie llamada _uetmsdns con un valor de 1. Este es un ejemplo de código para establecer la cookie:
document.cookie = "_uetmsdns=1; path=/; Secure; SameSite=Strict";
Esto establecerá la cookie, que se eliminará cuando finalice la sesión. Recuerda que cuando el usuario consienta, esta cookie debe ser eliminada.
Prueba de la configuración codificada
Una vez que hayas implementado los códigos de modo de consentimiento, es hora de probar la configuración. Abre la pestaña de red en tu sitio web, recarga el sitio y busca ‘bing’.
Si no has dado ningún consentimiento, la etiqueta UET se cargará y el estado de consentimiento predeterminado se establecerá en ‘Denied’. Deberías ver al menos estas 4 solicitudes:
- bat.js
- <tu_id>.js
- Una solicitud 0?= para establecer el consentimiento predeterminado como esta: “https://bat.bing.net/actionp/0?ti=00000000&…..&evt=consent&src=default&……&asc=D”
- Una solicitud 0?= para enviar un pageLoad como esta:
“https://bat.bing.net/action/0?ti=00000&………&evt=pageLoad&sv=1&asc=D…….”
En mi caso y probablemente en el tuyo, verás 5 solicitudes. Microsoft está aplicando gradualmente un estado de consentimiento predeterminado de ‘Denied’ para los visitantes del Espacio Económico Europeo, el Reino Unido y Suiza. Esto significa que también podrías ver una solicitud como esta:
“https://bat.bing.net/actionp/0?……&evt=consent&src=enforced…&asc=D”.
Está bien si no ves esto, siempre que haya una solicitud predeterminada. Lo más importante es asegurarte de que el parámetro asc esté incluido en cada solicitud a Microsoft (las solicitudes 0?ti=…). Haz clic en una de las solicitudes y verás que el parámetro debería ser D:
Ahora acepta tus cookies, debería enviarse una solicitud de actualización con G para asc.
Cuando navegues a una nueva página, tu evento de pageLoad (y cualquier otro evento que hayas implementado) tendrá el mismo parámetro. Cuando revises la tabla en la consola, debería devolver esto:
Los más importantes son que enabled y adStorageAllowed deberían ser verdaderos.
Hola, soy Rick Beijen. Me especializo en consultoría técnica de marketing, enfocándome en Google Tag Manager y Google Analytics 4 con mi propio negocio de consultoría. También comparto regularmente mis experiencias prácticas con GTM y GA4 en el blog de Analytics Mania.

























