Not set es el valor comodín que Google analytics usa cuando no puede determinar un dato para una dimensión concreta (ciudad, página de destino, fuente/medio, etc.). No siempre es un error; a veces es un subproducto esperado de cómo se recopilan y procesan eventos:
- Eventos que llegan incompletos (sin page_view, sin session_start, sin UTM…).
- Limitaciones de privacidad o señal (Consent Mode, IP anonimizada, VPN/proxy).
- Ventanas de procesamiento: algunas atribuciones y datos demográficos tardan en materializarse.
- Umbrales: con baja cardinalidad/privacidad, GA4 puede ocultar parte del detalle.
Idea clave: el objetivo no es “eliminar” (not set), sino reducirlo hasta niveles sanos y, sobre todo, entender dónde y por qué aparece.
Si estás montando GA4 o revisando una implementación, aquí tienes la guía de Google Analytics (instalación, eventos y validación) para dejar la base bien.
Ventanas de procesamiento y por qué los arreglos no son retroactivos
- Procesamiento: ciertos datos (p. ej., demografía/anuncios) no están instantáneamente; cambios hoy no corrigen ayer.
- No retroactividad: si faltó session_start en diciembre, activar el trigger correcto en enero no rellenará el histórico.
- Métrica de control: traza (not set) en series temporales y evalúa la tendencia post-fix, no el valor puntual.
Por qué not set aparece en unos informes y en otros no
“(not set)” no surge por igual en todas las vistas porque cada dimensión se construye con señales y tiempos distintos. Algunas requieren el primer hit de la sesión (session_start/page_view) y otras se rellenan más tarde; las demográficas aplican umbrales de privacidad y son más sensibles a IP anon/VPN; en Exploraciones puede haber thresholding a nivel fino; y hay mismatches de scope (evento vs. sesión vs. usuario) que dejan huecos en ciertos informes y no en otros. Resultado: una misma visita puede resolver País pero dejar Ciudad en (not set), o tener Fuente/Medio completo y Landing en (not set) si el primer page_view llegó tarde.
Checklist rápido por tipo de informe/dimensión
Página de destino (landing page): timeouts, page_view y orden de tags
Síntomas
- Landing con (not set) o volumen anómalo en páginas de entrada.
Causas típicas
- page_view disparado tarde o nunca.
- Orden de ejecución: CMP/Consent → Analytics demasiado tarde.
- Session timeout prematuro; sesiones partidas.
Cómo arreglarlo
- Dispara session_start y page_view en Initialization (GTM) o lo más pronto posible.
- Verifica que no se bloquea el primer hit por Consent Mode (usa un estado default razonable y update inmediato al consentimiento).
- Revisa timeouts de sesión y duplicidades de contenedor.
Caso observado
En proyectos donde “Ciudad” muestra picos de (not set), también se detecta landing (not set) por secuencias de carga lentas o interrumpidas.
Fuente/Medio y Campaña: session_start, auto-tagging y UTM
Síntomas
- Session source
/mediumen (not set) o mezcla excesiva de (direct).
Causas
- Falta de session_start al inicio de la visita.
- Desajustes de UTM (faltantes/incorrectas).
- Falta de auto-tagging o vinculación con Google Ads.
Cómo arreglarlo
- Asegurar session_start temprano.
- Estandarizar nomenclatura UTM (plantilla + validador).
- Activar auto-tagging y vincular cuentas Ads↔GA4.
Caso observado
Cuando “Ciudad” lidera con (not set) en Exploraciones, suele coexistir una tasa alta de sesiones (not set) en fuente/medio por ausencia/latencia del session_start.
Google Ads: vinculación, GCLID y etiquetado automático
Checklist
- Vinculación activa y verificable.
- Auto-tagging ON y GCLID sin romper.
- Redirecciones que conserven parámetros.
- Filtros/UTM manuales sin colisiones.
Caso observado
Un % de “Ciudad (not set)” se correlaciona con clics Ads sin GCLID válido (saltos por redirecciones, bloqueadores, landing AMP mal instrumentada).
Agrupaciones de contenido: combinaciones inválidas y valores vacíos
- Si usas content groups, evita reglas que colapsen valores o que dependan de variables no resueltas en la primera vista.
- Valida el mapeo en DebugView y confirma que cada
page_viewrecibe su grupo.
E-commerce (item-scope): repetición de parámetros en todos los eventos
- Asegura que todos los eventos item-scope (view_item, add_to_cart, purchase) envían los mismos atributos clave (id, name, category).
- La inconsistencia por evento dispara vacíos y (not set) en informes de producto.
¿por qué “Ciudad” sale como (not set) en Exploraciones?
Consent Mode y pérdida de señales
- Con Consent Mode estricto o mal encadenado, GA4 pierde señales al inicio de la sesión.
- Resultado: geolocalización débil ⇒ más (not set) en ciudad (granularidad fina) frente a país/región.
Acción
- Inicializa Analytics con un default que permita pings esenciales y aplica update instantáneo tras el consentimiento.
- Test A/B en entornos de pre-producción para medir la variación de (not set) en ciudad.
IP anonimizada, VPN/proxy y límites de geolocalización
- El anonimizado de IP es norma; con VPN/proxy crece la indeterminación de ciudad.
- Tráfico corporativo, apps de seguridad o países con alta adopción de VPN elevan el (not set) en “Ciudad”.
Acción
- Segmenta por Device category y Default channel group; busca patrones (p. ej., mayor (not set) en Desktop/Referral corporativo).
Measurement Protocol y datos sin navegador/IP
- Eventos enviados server-to-server sin suficientes señales de red impiden resolver la geolocalización fina.
Acción
- Evita iniciar sesiones con MP. Usa MP para server events (p. ej., purchase) vinculados a sesiones reales del cliente.
- Envía
user_id/session_idde forma coherente, nunca inventes IP/UA.
Cómo testearlo: segmentos rápidos, DebugView y comparación País vs. Ciudad
- Exploración: compara País vs. Ciudad con el mismo segmento de sesiones.
- Device/Canal: si Ciudad (not set) se dispara en uno, ya tienes pista operacional.
- DebugView: confirma que el primer hit de la sesión llega y en orden (session_start →
page_view). - Consent Debugging: inspecciona el timeline de estados default y
update.
Caso observado
“En Exploraciones, ‘Ciudad’ aparece primero como (not set)”: patrón compatible con Consent Mode tardío + mezcla de VPN y MP mal acotado.
Soluciones priorizadas (sin romper la atribución)
Configurar session_start (Initialization) y validar page_view
- Trigger Initialization para Analytics y consentimiento.
- page_view inmediato en la primera carga útil (evita retrasos por SPA mal gestionadas).
- Revisión en Network/Realtime/DebugView.
Revisar auto-tagging y vinculación con Google Ads
- Verifica GCLID en la URL de destino.
- Evita redirecciones que “pelan” parámetros.
- Jobs de QA regulares con enlaces de prueba.
Ajustar Consent Mode (uso correcto de update)
- Define
defaultcompatible con medición de arranque. - Lanza update tan pronto el usuario decide; documenta latencias del CMP.
- Monitorea % de (not set) en Ciudad como KPI de privacidad operativa.
Buenas prácticas con Measurement Protocol (evitar iniciar sesiones)
- MP no debe suplantar el cliente.
- Alinea
user_pseudo_id/session_idcon la sesión real. - Restringe MP a eventos server que complementan (no sustituyen) la navegación.
Qué puedes y no puedes eliminar definitivamente
- Eliminar al 100% (not set) no es realista.
- La meta es minimizarlo y entenderlo: si sube, que sea explicable (campaña nueva, cambio de CMP, nuevo país, etc.).
Métricas de control post-fix y cómo interpretar “(not set)” en el tiempo
- Serie temporal por dimensión crítica (Ciudad, Landing, Source/Medium).
- Ratio (not set)/total y desviación por canal/país.
- Alertas cuando supere umbrales acordados (p. ej., +30% WoW en Ciudad).
- Cuaderno de cambios: cualquier alteración en tagging, CMP, redirecciones o Ads debe anotarse y fecharse.
Preguntas
¿(not set siempre indica un error?
No. A veces es un efecto esperado (privacidad, latencias). Se vuelve problema si crece sin causa o impacta decisiones.
¿Por qué “Ciudad” aparece más como not set que “País”?
Porque la resolución a nivel ciudad requiere señales más finas; con IP anon + VPN + Consent Mode restrictivo, se pierde granularidad.
¿Los arreglos son retroactivos?
No. Solo mejoran el dato futuro.
¿Cómo priorizar arreglos?
- session_start/page_view temprano. 2) Consent Mode bien orquestado. 3) Ads/GCLID. 4) MP en su sitio. 5) Reglas de content grouping/e-commerce consistentes.
Conclusión
“(not set)” no es un enemigo, es un termómetro. Cuando “Ciudad” lidera en Exploraciones con (not set), el mensaje es claro: faltan señales a inicio de sesión, hay fricción de consentimiento, o el dato llega sin contexto (MP/VPN). La disciplina operativa —orden de tags, Consent Mode, Ads y MP— reduce el ruido y devuelve claridad analítica.
