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.

parametros-fecha-looker.sql
-- 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

urlclics_anteriorclics_actualdiferenciavariacion_pct
https://ejemplo.com/nuevo-contenido0345345null
https://ejemplo.com/guia-seo2343127833.33
https://ejemplo.com/herramientas456423-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.