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/medium en (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_view recibe 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_id de forma coherente, nunca inventes IP/UA.

Cómo testearlo: segmentos rápidos, DebugView y comparación País vs. Ciudad

  1. Exploración: compara País vs. Ciudad con el mismo segmento de sesiones.
  2. Device/Canal: si Ciudad (not set) se dispara en uno, ya tienes pista operacional.
  3. DebugView: confirma que el primer hit de la sesión llega y en orden (session_start → page_view).
  4. 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 default compatible 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_id con 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?

  1. 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.

Privacy Preference Center