lección 6
Canales, campañas y UTM: de dónde viene el tráfico
Leer una URL con UTM y armar una tabla de canales de adquisición limpia y normalizada.
⏱ 50 min
Esas etiquetas raras que ves colgando de casi cualquier enlace —"?utm_source=google&utm_medium=cpc"— tienen nombre y apellido, y una historia detrás. UTM son las siglas de Urchin Tracking Module. Urchin era una empresa de software de analítica web de principios de los 2000 que resolvió un problema muy concreto: cuando alguien llegaba a tu web, el navegador contaba de dónde venía el último clic, pero no sabía a qué campaña pertenecía. ¿Fue el anuncio de pago o el boletín de correo? ¿La campaña de rebajas o la de primavera? Urchin propuso pegar esa información a la propia URL, en unos parámetros normalizados, para que al llegar la visita ya viniera etiquetada. En 2005 Google compró Urchin, y ese producto se convirtió en lo que hoy conoces como Google Analytics. Los parámetros sobrevivieron con el nombre de la empresa que los inventó, y siguen siendo la forma estándar de responder la pregunta que todo responsable de marketing hace tarde o temprano: ¿de dónde viene cada usuario?
Esta lección va de responder una pregunta que parece simple: de dónde vienen los usuarios. La respuesta requiere entender qué es un canal de adquisición, cómo se estructura una campaña de marketing, qué son los parámetros UTM, cómo llegan a tu tabla de datos, y — lo más importante — cómo limpiar el desastre que inevitablemente encuentras cuando los abres por primera vez.
### El problema: saber de dónde viene cada usuario
Cuando alguien visita tu web, llega desde algún sitio. Puede haber escrito la URL directamente en el navegador. Puede haber buscado en Google y hecho clic en un resultado orgánico. Puede haber visto un anuncio en Instagram y tocado el enlace. Puede haber recibido un email con una oferta. Ese "desde dónde" se llama canal de adquisición — el camino que trajo al usuario hasta tu puerta.
Saber de dónde viene cada usuario importa porque la adquisición cuesta dinero. Si gastas 10.000 euros al mes en Google Ads y 5.000 en Instagram, necesitas saber cuál te trae mejores clientes — no más clics, sino más personas que acaban comprando y volviendo. Sin esa información, repartes el presupuesto a ciegas. Y el equipo de marketing necesita que TÚ se lo digas, porque la plataforma de Google te dice cuántos clics tuvo su campaña, pero no te dice qué pasaron esos usuarios después de llegar a tu web. Solo cruzando el canal de entrada con el comportamiento posterior (compró, se suscribió, volvió) puedes responder la pregunta del CMO.
### Canales orgánicos vs canales de pago
La primera gran división del tráfico es si has pagado para que venga o no. Los canales orgánicos son aquellos donde el usuario te encuentra sin que hayas pagado directamente por ese clic. Los canales de pago son aquellos donde cada visita tiene un coste asociado — pagas a una plataforma para que muestre tu anuncio.
- Orgánico de búsqueda (SEO): el usuario busca algo en Google, tu página aparece en los resultados normales (no en los anuncios de arriba), y hace clic. No pagas por ese clic, pero has invertido en que tu página aparezca ahí (contenido, optimización técnica, enlaces).
- Directo: el usuario escribe tu URL en el navegador, o tiene un marcador. No viene de ningún sitio externo. En la práctica, "directo" es también el cajón de sastre de lo que no se puede clasificar.
- Referral (referencia): el usuario llega desde otra web que enlaza a la tuya. Un blog que recomienda tu producto, un artículo de prensa, un foro.
- Orgánico de redes sociales: el usuario ve un post (no un anuncio) en Instagram, LinkedIn o Twitter y hace clic en el enlace.
- Email orgánico: llega desde un email que tu empresa envió (una newsletter, un recordatorio) pero que no es publicidad pagada a terceros.
- SEM / Búsqueda de pago: el usuario busca en Google y hace clic en los resultados marcados como "Patrocinado". Pagas por cada clic (modelo CPC, coste por clic).
- Social Ads (publicidad en redes): anuncios en Instagram, Facebook, TikTok, LinkedIn. Pagas por impresiones o por clics.
- Display: banners en otras webs (la red de Google Display, por ejemplo). El usuario está leyendo un periódico online y ve tu anuncio.
- Afiliados: terceros promocionan tu producto y cobran una comisión por cada venta que generan.
- Retargeting: anuncios que persiguen al usuario después de haber visitado tu web. Es un subconjunto de display o social ads, pero con audiencia específica.
### Cómo se estructura una campaña de marketing
Para entender los datos que vas a analizar, necesitas saber cómo piensa el equipo de marketing cuando organiza su inversión. No les pides que cambien su estructura: tú la lees. Y la estructura es una jerarquía de cuatro niveles, de lo más general a lo más concreto:
- 01.Canal: la plataforma donde se invierte. Google Ads, Meta (Facebook/Instagram), LinkedIn Ads, email marketing. Es el nivel más alto.
- 02.Campaña: un conjunto de anuncios con un objetivo común, un presupuesto y una fecha de inicio y fin. Ejemplo: "Black Friday 2024 - Abrigos", "Lanzamiento App iOS España".
- 03.Grupo de anuncios (ad group): dentro de una campaña, un subconjunto que comparte la misma audiencia o las mismas palabras clave. Ejemplo: dentro de la campaña de Black Friday, un grupo para "abrigos mujer" y otro para "abrigos hombre".
- 04.Creatividad (ad/creative): el anuncio concreto que ve el usuario. La imagen, el texto, el video. En un grupo de anuncios suele haber 2-5 creatividades distintas para probar cuál funciona mejor (A/B testing).
La analogía: piensa en un supermercado. El canal es la cadena (Mercadona, Carrefour). La campaña es una promoción ("Vuelta al cole"). El grupo de anuncios es la sección donde se coloca (pasillo de mochilas vs pasillo de cuadernos). Y la creatividad es el cartel concreto que ponen en el lineal. El equipo de marketing organiza así porque necesita saber a qué nivel del árbol está el problema: si una campaña entera no funciona, puede ser el mensaje o la audiencia; si funciona el grupo A pero no el B, el problema está en la segmentación; si dos creatividades del mismo grupo dan resultados distintos, la diferencia es el anuncio.
Consejo de senior: no necesitas conocer al detalle cómo funciona cada plataforma de publicidad (eso es trabajo del equipo de marketing). Lo que necesitas saber es la JERARQUÍA: canal > campaña > grupo > creatividad. Porque cuando te pidan "desglosar el rendimiento por campaña", tienes que saber a qué nivel de agregación te están pidiendo que bajes. Y cuando los datos vengan sucios, sabrás que un campo llamado "campaign" no es lo mismo que uno llamado "ad_group".
### Los parámetros UTM: cómo se marca el origen en la URL
Ahora viene la pieza técnica que conecta la estructura de marketing con tus datos. UTM son las siglas de Urchin Tracking Module — un sistema inventado por una empresa llamada Urchin que Google compró en 2005 para crear Google Analytics. La idea es sencilla: antes de compartir un enlace en una campaña, le añades parámetros a la URL que dicen de dónde viene el usuario. Cuando el usuario hace clic y llega a tu web, tu sistema de analítica lee esos parámetros y los guarda.
Un ejemplo real. La URL normal de tu página de producto es: https://tienda.com/abrigos/parka-azul. Cuando el equipo de marketing la comparte en una campaña de Google Ads, la convierte en: https://tienda.com/abrigos/parka-azul?utm_source=google&utm_medium=cpc&utm_campaign=black_friday_2024&utm_content=banner_descuento&utm_term=parka+mujer. Todo lo que va después del interrogante (?) son los parámetros UTM. El usuario no los nota (no afectan a la página que ve), pero tu sistema de analítica los lee y los guarda como columnas en la tabla de sesiones.
### Los cinco parámetros UTM
Hay cinco parámetros estándar. Los tres primeros son los que siempre están; los dos últimos son opcionales y se usan para campañas de pago donde necesitas más detalle:
- 01.utm_source — QUIEN te manda el tráfico. La plataforma o sitio de origen. Ejemplos: google, facebook, instagram, newsletter, partner_blog. Responde a "desde dónde viene el clic".
- 02.utm_medium — COMO te llega. El tipo de canal o mecanismo. Ejemplos: cpc (coste por clic), email, organic, social, referral, display. Responde a "qué tipo de tráfico es".
- 03.utm_campaign — POR QUÉ viene ahora. El nombre de la campaña específica. Ejemplos: black_friday_2024, lanzamiento_app, reactivacion_dormidos. Responde a "qué iniciativa lo trajo".
- 04.utm_content — QUÉ pieza concreta le trajo (opcional). Distingue entre creatividades o enlaces dentro de la misma campaña. Ejemplos: banner_hero, boton_cta, enlace_footer. Útil para A/B testing.
- 05.utm_term — QUÉ buscó el usuario (opcional). La palabra clave que activó el anuncio en búsqueda de pago. Ejemplos: parka+mujer, abrigo+invierno+barato. Solo tiene sentido en SEM.
1-- Asi se ve una URL con UTM completa:2-- https://tienda.com/producto?utm_source=google3-- &utm_medium=cpc4-- &utm_campaign=black_friday_20245-- &utm_content=banner_descuento6-- &utm_term=parka+mujer78-- Y asi llegan a tu tabla de sesiones:9SELECT10 session_id,11 user_id,12 landing_url,13 utm_source, -- 'google'14 utm_medium, -- 'cpc'15 utm_campaign, -- 'black_friday_2024'16 utm_content, -- 'banner_descuento'17 utm_term, -- 'parka mujer'18 started_at19FROM sessions20WHERE utm_source IS NOT NULL21LIMIT 5;
Los parámetros de la URL se convierten en columnas de tu tabla de sesiones
Consejo de senior: la regla de oro de los UTM es que NUNCA se ponen en enlaces internos de tu propia web. Si un botón dentro de tu página lleva UTM, estás "pisando" la atribución del canal original que trajo al usuario. El usuario llegó por Google Ads, navegó por tu web, hizo clic en un banner interno con utm_source=homepage, y ahora la conversión se atribuye a "homepage" en lugar de a Google. He visto esto destrozar informes enteros. Los UTM son SOLO para tráfico que viene de fuera.
### Fuente vs medio vs canal: la confusión que siempre aparece
Hay una confusión que aparece en todas las empresas: mezclar fuente (source) con medio (medium) con canal. No son lo mismo, pero mucha gente los usa como sinónimos. Vamos a aclararlo de una vez:
- Fuente (utm_source) es QUIÉN: google, facebook, mailchimp, blog_partner.
- Medio (utm_medium) es CÓMO: cpc, email, organic, social, display.
- Canal agrupado es una CATEGORÍA que tú defines combinando fuente + medio. Es el nivel al que normalmente informas al CMO.
La fuente sola no te dice el tipo de tráfico. "google" puede ser orgánico (alguien buscó y encontró tu resultado), de pago (clic en un anuncio), o display (un banner en un sitio de la red de Google). El medio es lo que distingue esos tres casos. Y el canal agrupado es la etiqueta limpia que tú construyes para presentar los datos: "Búsqueda de pago", "Orgánico", "Social de pago", "Email". El canal agrupado no viene en los datos — lo construyes tú con reglas.
### La pesadilla real: el caos de nomenclatura
Aquí es donde la teoría choca con la realidad. En la teoría, todo el equipo usa los mismos valores para utm_medium: "cpc" para pago, "organic" para orgánico, "email" para correo. En la práctica, lo que encuentras al abrir la tabla por primera vez es un festival:
1-- Lo que encuentras al hacer un DISTINCT de utm_medium:2SELECT DISTINCT utm_medium, COUNT(*) as sesiones3FROM sessions4WHERE utm_medium IS NOT NULL5GROUP BY utm_medium6ORDER BY sesiones DESC;78-- Resultado tipico (real, no inventado):9-- cpc 12.45010-- CPC 3.21011-- Cpc 89012-- paid 56013-- pago 23014-- search_paid 18015-- sem 12016-- google_ads 4517-- email 8.90018-- Email 1.20019-- EMAIL 34020-- correo 15021-- newsletter 890
El caos real: ocho variantes para "búsqueda de pago" y cuatro para "email"
Esto no es un problema técnico: es un problema de personas. No se resuelve con tecnología, se resuelve con un documento compartido que dice "estos son los valores válidos para utm_medium" y alguien que lo haga cumplir. Pero mientras ese documento no exista (o nadie lo siga), tu trabajo como analista es NORMALIZAR el caos que ya está en la tabla. Primero limpias, luego propones el estándar para el futuro.
### Construir la tabla de canal agrupado
La solución al caos es construir una columna derivada — canal_agrupado — que normaliza todas las variantes en categorías limpias. La lógica es un CASE WHEN que dice: "si el medio contiene esto, o la fuente es tal, entonces el canal es cual". Es tu tabla de traducción del caos al orden.
El patrón que funciona en todas las empresas es: primero pasa todo a minúsculas (LOWER), después quita espacios sobrantes (TRIM), y finalmente aplica las reglas. Las reglas van de más específico a más general — el orden importa porque CASE WHEN se detiene en la primera condición que cumple.
1-- Tabla de canal agrupado: normalizar el caos2SELECT3 session_id,4 utm_source,5 utm_medium,6 CASE7 -- Busqueda de pago: cualquier variante de cpc/sem/paid search8 WHEN LOWER(TRIM(utm_medium)) IN ('cpc', 'ppc', 'sem', 'paid', 'pago',9 'search_paid', 'paid_search', 'google_ads')10 THEN 'Busqueda de pago'1112 -- Social de pago13 WHEN LOWER(TRIM(utm_medium)) IN ('paid_social', 'social_paid',14 'social_cpc', 'paidsocial')15 THEN 'Social de pago'16 WHEN LOWER(TRIM(utm_medium)) = 'cpc'17 AND LOWER(utm_source) IN ('facebook', 'instagram', 'meta',18 'tiktok', 'linkedin')19 THEN 'Social de pago'2021 -- Display22 WHEN LOWER(TRIM(utm_medium)) IN ('display', 'banner', 'cpm')23 THEN 'Display'2425 -- Email26 WHEN LOWER(TRIM(utm_medium)) IN ('email', 'correo', 'newsletter',27 'mail', 'emailmkt')28 THEN 'Email'2930 -- Social organico31 WHEN LOWER(TRIM(utm_medium)) = 'social'32 OR LOWER(TRIM(utm_medium)) = 'organic_social'33 THEN 'Social organico'3435 -- Referral36 WHEN LOWER(TRIM(utm_medium)) IN ('referral', 'referido', 'affiliate')37 THEN 'Referral'3839 -- Organico de busqueda40 WHEN LOWER(TRIM(utm_medium)) = 'organic'41 THEN 'Organico'4243 -- Directo (sin UTM)44 WHEN utm_source IS NULL AND utm_medium IS NULL45 THEN 'Directo'4647 -- Lo que no encaja: cajon de sastre para investigar48 ELSE 'Otros'49 END AS canal_agrupado50FROM sessions;
CASE WHEN para normalizar el caos de UTM en categorías limpias
Consejo de senior: la categoría "Otros" no es un error, es una herramienta. Revísala cada lunes: si ves que acumula más del 5% del tráfico, tienes valores nuevos que clasificar. Monta una alerta o una query programada que te avise cuando "Otros" pase de un umbral. El caos de UTM no se arregla una vez: se gestiona continuamente, porque cada campaña nueva es una oportunidad para que alguien invente un utm_medium creativo.
### Caso práctico: el informe de rendimiento por canal
Volvamos a la reunión del principio. El CMO quiere un informe de rendimiento por canal. No le basta con saber cuántas sesiones trae cada canal — quiere saber cuántas conversiones genera cada uno y a qué coste. El informe que espera es una tabla así: canal, sesiones, conversiones, tasa de conversión, coste (si lo tienes), coste por conversión. Y la quiere ordenada por volumen de conversiones, no de sesiones — porque un canal puede traer mucho tráfico de baja calidad.
Para construir ese informe necesitas cruzar dos tablas: la de sesiones (con los UTM) y la de conversiones (con el evento que define el éxito — una compra, un registro, una suscripción). El JOIN es por session_id: cada conversión se atribuye a la sesión en la que ocurrió, y esa sesión tiene un canal de entrada.
1-- Informe de rendimiento por canal para el CMO2WITH sesiones_con_canal AS (3 SELECT4 session_id,5 CASE6 WHEN LOWER(TRIM(utm_medium)) IN ('cpc','ppc','sem','paid','pago')7 THEN 'Busqueda de pago'8 WHEN LOWER(TRIM(utm_medium)) IN ('paid_social','social_paid')9 THEN 'Social de pago'10 WHEN LOWER(TRIM(utm_medium)) IN ('email','correo','newsletter')11 THEN 'Email'12 WHEN LOWER(TRIM(utm_medium)) = 'organic'13 THEN 'Organico'14 WHEN LOWER(TRIM(utm_medium)) IN ('display','banner','cpm')15 THEN 'Display'16 WHEN utm_source IS NULL AND utm_medium IS NULL17 THEN 'Directo'18 ELSE 'Otros'19 END AS canal_agrupado20 FROM sessions21)22SELECT23 sc.canal_agrupado,24 COUNT(DISTINCT sc.session_id) AS sesiones,25 COUNT(DISTINCT c.conversion_id) AS conversiones,26 ROUND(27 100.0 * COUNT(DISTINCT c.conversion_id)28 / NULLIF(COUNT(DISTINCT sc.session_id), 0),29 230 ) AS tasa_conversion_pct31FROM sesiones_con_canal sc32LEFT JOIN conversions c ON sc.session_id = c.session_id33GROUP BY sc.canal_agrupado34ORDER BY conversiones DESC;
La query completa: CTE de normalización + LEFT JOIN + agregación por canal
### Qué pasa cuando no hay UTM: tráfico directo y dark traffic
No todo el tráfico viene etiquetado. Cuando un usuario escribe tu URL directamente, llega desde un marcador, o abre un enlace desde una app de mensajería (WhatsApp, Telegram, Slack), los UTM no existen. Ese tráfico aparece con utm_source y utm_medium a NULL en tu tabla. Se clasifica como "Directo" — pero es un cajón de sastre que esconde mucho más.
El "dark traffic" (tráfico oscuro) es todo lo que llega sin referrer y sin UTM pero que en realidad NO es directo. Incluye: enlaces compartidos por WhatsApp o Telegram (las apps de mensajería eliminan el referrer por privacidad), enlaces copiados y pegados en otro navegador, enlaces en PDFs o documentos de Word, tráfico de apps nativas que abren un webview. En empresas donde el boca a boca es fuerte, el "tráfico directo" puede ser el 40% del total — y la mitad de ese 40% no es gente que te conocía, sino gente a la que un amigo le pasó el enlace por WhatsApp.
Nunca informes al CMO de que "el tráfico directo es el 40%" sin añadir un asterisco que diga que "directo" incluye todo lo que no se puede clasificar. Si no lo haces, la conclusión será "nuestra marca es tan fuerte que la gente viene sola" — y puede que la mitad venga de un post viral en un grupo de WhatsApp que nadie ha medido. El tráfico directo es una confesión de ignorancia, no un logro de branding.
### De aquí a la siguiente lección: atribución
Ahora sabes clasificar cada sesión en un canal limpio. Pero un usuario puede venir cinco veces antes de comprar: primero por un anuncio en Google, luego por orgánico, luego por email, y finalmente escribe la URL y compra. ¿A quién le atribuyes esa venta? ¿Al primer toque (Google Ads que lo descubrió)? ¿Al último (directo)? ¿A todos un poco? Esa pregunta es la ATRIBUCIÓN, y es el tema de la siguiente lección. Los UTM son los datos de entrada; la atribución es la lógica que decide quién se lleva el mérito.
### Resumen
- Un canal de adquisición es el camino por el que un usuario llega a tu web. Se divide en orgánicos (SEO, directo, referral) y de pago (SEM, social ads, display).
- Una campaña de marketing se estructura en cuatro niveles: canal > campaña > grupo de anuncios > creatividad.
- Los parámetros UTM (source, medium, campaign, content, term) se añaden a la URL para etiquetar de dónde viene cada clic. Tu sistema de analítica los lee y los guarda como columnas.
- En la práctica, los UTM son un caos de nomenclatura porque los pone gente diferente sin reglas comunes. El trabajo del analista es normalizar ese caos con LOWER + TRIM + CASE WHEN.
- El canal agrupado es una columna derivada que tú construyes: 6-8 categorías limpias que resumen 40+ variantes sucias.
- El informe de rendimiento por canal cruza sesiones (con UTM) con conversiones (con el resultado) vía session_id.
- El tráfico "directo" es un cajón de sastre que incluye tráfico oscuro (WhatsApp, apps). Nunca lo interpretes como "la gente viene sola".
Regístrate para guardar tu progreso.
## comentarios
Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.
Inicia sesión para comentar y responder.
cargando comentarios...