Tráfico orgánico por país y ciudad

Desglosa el tráfico orgánico por ubicación geográfica. Permite identificar mercados principales y oportunidades de contenido localizado.

trafico-organico-geografia.sql
-- Tráfico orgánico desglosado por país y ciudad
SELECT
  geo.country AS pais,
  geo.city AS ciudad,
  COUNT(
    DISTINCT CONCAT(
      user_pseudo_id, '.',
      CAST(
        (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id')
      AS STRING)
    )
  ) AS sesiones,
  COUNT(DISTINCT user_pseudo_id) AS usuarios
FROM
  `your-project.analytics_XXXXXXXXX.events_*`
WHERE
  _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY))
    AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
  AND traffic_source.medium = 'organic'
  AND event_name = 'session_start'
GROUP BY
  pais, ciudad
ORDER BY
  sesiones DESC
LIMIT 50

Explicación paso a paso

  • 3 geo.country y geo.city son campos del registro geo que GA4 exporta automáticamente.
  • 5 Cuenta sesiones únicas por combinación de país y ciudad.
  • 13 También cuenta usuarios únicos para entender el alcance real en cada ubicación.
  • 20 Filtra por session_start para contar una vez por sesión, no por cada evento.
  • 24 Ordena por sesiones para identificar las ubicaciones de mayor volumen.

Ejemplo de resultado esperado

paisciudadsesionesusuarios
SpainMadrid23411876
MexicoMexico City18931654
ArgentinaBuenos Aires12451098
ColombiaBogota876743

Variaciones y adaptaciones

Para ver solo el desglose por país (sin ciudad), eliminar geo.city del SELECT y GROUP BY. Para filtrar un país específico, añadir AND geo.country = 'Spain'. Para añadir el continente, incluir geo.continent en el SELECT y GROUP BY.