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.