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.
-- 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
| pais | ciudad | sesiones | usuarios |
|---|---|---|---|
| Spain | Madrid | 2341 | 1876 |
| Mexico | Mexico City | 1893 | 1654 |
| Argentina | Buenos Aires | 1245 | 1098 |
| Colombia | Bogota | 876 | 743 |
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.
Queries relacionadas
Window functions para ranking de URLs por categoría
SQL genérico
Avanzado
Engagement rate por landing page orgánica
GA4 en BigQuery
Intermedio
Eventos personalizados disparados en sesiones orgánicas
GA4 en BigQuery
Intermedio
Atribución multicanal con orgánico como primer touch
GA4 en BigQuery
Avanzado