Una URL etiquetada para medir campañas puede llevar hasta seis parámetros UTM: source, medium, campaign, term, content y el propio id. De todos ellos, el utm_id es el patito feo. Casi nadie lo rellena y ni sabe muy bien para qué sirve. De hecho, hay bastante lío en foros y tutoriales: que si sirve para diferenciar variantes de un anuncio, que si es un utm_campaign con otro nombre… Ni una cosa ni la otra. Tiene una función muy concreta y, si inviertes en campañas de pago, te interesa de verdad.
Es la pieza que te permite saber si tus campañas fuera de Google te están saliendo rentables sin pelearte con hojas de cálculo y macros de Excel cada lunes por la mañana. Entendamos qué hace, en qué se diferencia del nombre de campaña y cómo implementarlo sin cagarla.
Qué es el utm_id (y lo que no es)
El utm_id es el identificador de campaña: un código numérico o alfanumérico único que le cuelgas a un enlace para que los sistemas reconozcan esa campaña de forma inequívoca. El malentendido más extendido es confundirlo con utm_campaign.
El utm_campaign es el nombre que tú lees en los informes: rebajas-junio. El utm_id es el código que usan las máquinas para casar datos entre bases de datos distintas: ga_12345. Uno es para humanos; el otro, para las tripas del software. Se parecen, pero hacen trabajos totalmente distintos.
Para qué sirve de verdad: medir el ROAS real
Aquí está la chicha. El utm_id es la llave con la que GA4 cruza tu tráfico web con lo que te has gastado en los paneles de anuncios. O lo que es lo mismo: lo que convierte el dato plano de «te han entrado 500 visitas de Meta» en «esta campaña te ha costado 300 € y te ha devuelto 1.200 € en ventas, así que tu ROAS es de 4».
¿Cómo funciona el engranaje? GA4 cuenta con una función de importación de datos de coste (Administrar → Importación de datos → Datos de coste). Subes un CSV con el gasto, los clics y las impresiones de tus campañas, y GA4 lo pega a las sesiones del usuario usando el ID de campaña como campo clave. Si tus enlaces llevan un utm_id y tu informe de coste trae ese mismo ID, GA4 une los dos mundos y te calcula el ROAS, el CPC y el CPA dentro de tu propio panel.
Un matiz importante: esto va enfocado a las campañas que ejecutas FUERA del las herramientas de Google. Google Ads ya se entiende con GA4 por su cuenta de forma nativa (vía gclid y el autoetiquetado), así que ahí no necesitas este parámetro. Donde de verdad cambia las reglas del juego es en Meta Ads, TikTok Ads, LinkedIn o Microsoft Ads.
Y ojo, porque aquí hay novedad reciente: desde octubre de 2025, GA4 importa el coste de Meta y TikTok de forma nativa, sin CSV. Conectas la cuenta y los datos fluyen solos. Pero eso no funciona por arte de magia.
Para que GA4 pegue ese gasto a las conversiones de tu web, tus anuncios tienen que llevar UTMs coherentes: como mínimo, la misma utm_source y el mismo utm_medium en todos.
Y aquí es donde el utm_id suma: no es obligatorio para la conexión nativa, pero GA4 lo usa para casar los datos a nivel de campaña cuando está presente, que es lo que te da el cruce fino.
Sin un etiquetado consistente, la conexión nativa te devuelve números sueltos que no cuadran con nada.
utm_id vs utm_campaign. Principales diferencias
Para evitar confusiones en tu matriz de etiquetado, aquí tienes la diferencia exacta de roles:
| Concepto | utm_campaign | utm_id |
|---|---|---|
| ¿Qué es? | El nombre semántico de la campaña | El identificador único de la campaña |
| ¿Para quién va? | Para que lo lea un humano en sus informes | Para que lo casen las bases de datos |
| Ejemplo real | rebajas-junio |
648392017 (ID nativo de la plataforma) |
| Función principal | Filtrar y agrupar el tráfico en la interfaz | Cruzar datos de gasto externo y calcular el ROAS |
| ¿Es obligatorio? | Sí, si quieres mantener el orden de tus canales | Solo si vas a importar costes o usar BigQuery |
En cristiano: el utm_campaign le dice a GA4 qué campaña trajo la visita; el utm_id le permite ponerle precio a ese clic.
Los otros parámetros de pago que debes conocer
Cuando Google rescató el utm_id, metió un par de etiquetas más, pensadas para el ecosistema de tráfico de pago. Te las vas a encontrar cada vez más:
utm_source_platform: la plataforma de compra o gestión desde la que lanzas el anuncio (por ejemplo,Search Ads 360oDV360).utm_creative_format: el tipo de pieza creativa (video,interstitial,carousel,native), para aislar el rendimiento del formato.
Para el 90% de las webs de clientes ni los vas a tocar. Pero si gestionas presupuestos potentes o arquitecturas complejas, te dan un desglose muy detallado.
El truco para analistas: la extracción en BigQuery
Y aquí va un detalle que casi nadie tiene en cuenta: aunque pongas el utm_id en tus enlaces, GA4 no te lo muestra en sus informes. Lo recoge y lo guarda, sí, pero no vas a encontrar ninguna dimensión de «ID de campaña» en los informes de adquisición para filtrar o agrupar por él. En la interfaz, el dato está ahí, pero escondido.
Pero el dato se recoge perfectamente por detrás. Si tienes activa la exportación de GA4 a BigQuery, lo encontrarás en el campo manual_campaign_id, anidado dentro de collected_traffic_source.
Tener ese ID en tu data warehouse es oro puro: te permite cruzar por SQL tus tablas de sesiones web con las tablas de coste reales que saques de las APIs de Meta o LinkedIn, y montarte tus propios modelos de atribución sin las limitaciones ni el muestreo de la interfaz gráfica.
Cómo meter el utm_id en tus campañas diarias
Llevarlo a la práctica no tiene misterio, solo método:
- En el etiquetado del enlace: es un parámetro normal. Si construyes tus URLs con un generador de UTM, verás que ya incluye el campo específico para el ID.
- Usa las macros dinámicas de la plataforma (esto es clave): no escribas el ID a mano. En el apartado de URL de Meta Ads o TikTok Ads, aprovecha sus parámetros dinámicos. En Meta, por ejemplo, añades
utm_id={{campaign.id}}. Así el sistema inyecta el ID real de la campaña en cada clic y coincidirá al milímetro con el informe de coste.
Ojo con el orden de los factores: si subes los costes a mano por CSV, la estructura del archivo tiene que ser milimétrica. GA4 casa los datos por el ID de campaña, la utm_source y el utm_medium. Si el enlace llevaba utm_medium=cpc pero en el CSV pones por descuido Paid Social, la máquina no cruza nada y el informe se queda a cero.
¿Te hace falta meterte en este berenjenal?
Seamos honestos: no siempre. Si tu web vive del tráfico orgánico, del SEO local, o si tu única inversión en pauta es Google Ads (donde el gclid hace todo este trabajo sucio en la sombra), el utm_id te sobra.
Lo dejas vacío y tus informes siguen siendo igual de fiables.
Ahora bien, si estás metiendo dinero en Meta, TikTok o LinkedIn Ads y quieres sentarte con tu cliente o tu equipo a demostrar qué campaña concreta está aportando más al negocio sin montar un Frankenstein de Excels cada semana, este parámetro pasa a ser obligatorio.
Es lo que marca la diferencia entre intuir lo que pasa y medirlo con criterio.
Tus siguientes pasos
Si todo esto de BigQuery y las macros automáticas te suena a chino, tranquilo: lo primero es asegurar los cimientos. Antes de obsesionarte con el ROAS automatizado, necesitas que tu tráfico no se empaquete en canales corruptos. Para eso, usa este generador gratuito de UTM y normaliza tus enlaces.
Y si al revisar tu tráfico sigues viendo un montón de sesiones sin atribución clara, arregla eso antes que nada: no tiene sentido afinar el ROAS por campaña si los datos de origen ya te vienen sucios. Tienes la hoja de ruta en mi guía sobre por qué aparece el tráfico Unassigned en GA4.