Parámetros dinámicos en Looker Studio para filtrar por fecha
Demuestra el uso avanzado de parámetros de Looker Studio (@DS_START_DATE, @DS_END_DATE) para crear consultas con periodos de comparación dinámicos. Se configura como Custom Query en una fuente de datos BigQuery dentro de Looker Studio.
-- Parámetros dinámicos en Looker Studio con periodo de comparación
-- Los parámetros @DS_ se vinculan al selector de fechas del dashboard
-- El periodo de comparación se calcula automáticamente con la misma duración
WITH periodo_actual AS (
SELECT
'Actual' AS periodo,
url,
SUM(clicks) AS clics,
SUM(impressions) AS impresiones,
ROUND(SAFE_DIVIDE(SUM(clicks), SUM(impressions)) * 100, 2) AS ctr
FROM
`your-project.searchconsole.searchdata_url_impression`
WHERE
data_date BETWEEN @DS_START_DATE AND @DS_END_DATE
AND search_type = 'WEB'
GROUP BY
url
),
periodo_anterior AS (
SELECT
'Anterior' AS periodo,
url,
SUM(clicks) AS clics,
SUM(impressions) AS impresiones,
ROUND(SAFE_DIVIDE(SUM(clicks), SUM(impressions)) * 100, 2) AS ctr
FROM
`your-project.searchconsole.searchdata_url_impression`
WHERE
-- Calcula el periodo anterior con la misma duración
data_date BETWEEN
DATE_SUB(@DS_START_DATE, INTERVAL DATE_DIFF(@DS_END_DATE, @DS_START_DATE, DAY) + 1 DAY)
AND DATE_SUB(@DS_START_DATE, INTERVAL 1 DAY)
AND search_type = 'WEB'
GROUP BY
url
)
SELECT
COALESCE(a.url, p.url) AS url,
IFNULL(p.clics, 0) AS clics_anterior,
IFNULL(a.clics, 0) AS clics_actual,
IFNULL(a.clics, 0) - IFNULL(p.clics, 0) AS diferencia,
ROUND(SAFE_DIVIDE(
IFNULL(a.clics, 0) - IFNULL(p.clics, 0),
IFNULL(p.clics, 0)
) * 100, 2) AS variacion_pct
FROM
periodo_actual a
FULL OUTER JOIN periodo_anterior p ON a.url = p.url
ORDER BY
diferencia DESC
Explicación paso a paso
- 3 El periodo de comparación se calcula automáticamente con la misma duración que el periodo seleccionado.
- 14 @DS_START_DATE y @DS_END_DATE son inyectados por Looker Studio desde el selector de fechas del dashboard.
- 31 DATE_DIFF calcula los días entre inicio y fin del periodo seleccionado. Se resta esa misma cantidad para obtener el periodo anterior equivalente.
- 38 COALESCE garantiza que aparezcan URLs que solo existen en uno de los dos periodos.
- 42 SAFE_DIVIDE calcula la variación porcentual evitando división por cero.
- 48 FULL OUTER JOIN incluye URLs de ambos periodos sin perder datos.
Ejemplo de resultado esperado
| url | clics_anterior | clics_actual | diferencia | variacion_pct |
|---|---|---|---|---|
| https://ejemplo.com/nuevo-contenido | 0 | 345 | 345 | null |
| https://ejemplo.com/guia-seo | 234 | 312 | 78 | 33.33 |
| https://ejemplo.com/herramientas | 456 | 423 | -33 | -7.24 |
Variaciones y adaptaciones
Para comparar con el mismo periodo del año anterior en lugar del periodo inmediato anterior, cambiar DATE_SUB a INTERVAL 1 YEAR. Para añadir un parámetro de filtro de país personalizado, crear un parámetro en Looker Studio y referenciarlo como @pais en la query. Para incluir más métricas en la comparación, añadir impresiones y posición media con la misma lógica.
Queries relacionadas
Blended data: combinar GSC y GA4 en un solo gráfico
Looker Studio
Avanzado
Custom query en Looker Studio para dashboard SEO mensual
Looker Studio
Intermedio
Calcular variación porcentual entre dos periodos
SQL genérico
Intermedio
Comparativa orgánico vs otros canales (mes actual vs anterior)
GA4 en BigQuery
Avanzado