Valor por keyword combinando clics GSC y revenue GA4
Asigna un valor monetario a cada keyword cruzando los clics de GSC con el revenue registrado en GA4 para la misma URL. Permite priorizar esfuerzos SEO según el retorno económico real.
-- Valor monetario por keyword: cruce de clics GSC con revenue GA4
-- Requiere que GA4 registre event_value o un parámetro de revenue
WITH gsc_keywords AS (
SELECT
query AS keyword,
url,
SUM(clicks) AS clics_gsc,
SUM(impressions) AS impresiones
FROM
`your-project.searchconsole.searchdata_url_impression`
WHERE
data_date BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY) AND CURRENT_DATE()
AND search_type = 'WEB'
AND is_anonymized_query = FALSE
GROUP BY
keyword, url
HAVING
clics_gsc >= 5
),
ga4_revenue AS (
SELECT
REGEXP_EXTRACT(
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'),
r'(https?://[^?#]+)'
) AS url_normalizada,
COUNT(*) AS conversiones,
SUM(
IFNULL(
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = 'value'),
0
)
) AS revenue_total
FROM
`your-project.analytics_XXXXXXXXX.events_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY))
AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
AND traffic_source.medium = 'organic'
AND event_name IN ('purchase', 'in_app_purchase')
GROUP BY
url_normalizada
HAVING
revenue_total > 0
)
SELECT
g.keyword,
g.url,
g.clics_gsc,
g.impresiones,
r.conversiones,
ROUND(r.revenue_total, 2) AS revenue,
ROUND(SAFE_DIVIDE(r.revenue_total, g.clics_gsc), 2) AS valor_por_clic,
ROUND(SAFE_DIVIDE(r.revenue_total, r.conversiones), 2) AS valor_por_conversion
FROM
gsc_keywords g
INNER JOIN ga4_revenue r ON g.url = r.url_normalizada
ORDER BY
revenue DESC
LIMIT 50
Explicación paso a paso
- 3 El CTE gsc_keywords obtiene keywords con sus URLs y métricas de clics desde GSC.
- 20 El CTE ga4_revenue suma el revenue de eventos de compra en sesiones orgánicas por URL.
- 28 Extrae el valor monetario del parámetro 'value' del evento. Ajustar el nombre del parámetro según la implementación.
- 51 Calcula el valor por clic dividiendo el revenue total entre los clics de GSC.
- 52 Calcula el valor por conversión para entender el ticket medio por keyword.
- 55 INNER JOIN conecta solo URLs con datos en ambas fuentes.
Ejemplo de resultado esperado
| keyword | url | clics_gsc | impresiones | conversiones | revenue | valor_por_clic | valor_por_conversion |
|---|---|---|---|---|---|---|---|
| comprar herramienta seo | https://ejemplo.com/precios | 234 | 4567 | 23 | 2345.00 | 10.02 | 101.96 |
| plan premium analytics | https://ejemplo.com/planes | 187 | 3456 | 12 | 1456.00 | 7.79 | 121.33 |
Variaciones y adaptaciones
Si el sitio no registra revenue, reemplazar por un valor de conversión estimado y multiplicar por conversiones. Para usar ecommerce_purchase en lugar de event_value, ajustar el parámetro de revenue. Para calcular el ROI potencial de mejorar posiciones, estimar clics adicionales con CTR benchmarks.
Queries relacionadas
Top URLs por conversión cruzando GSC + GA4
Cruce GA4 + GSC
Avanzado
Keywords que generan conversiones reales en GA4
Cruce GA4 + GSC
Avanzado
URLs con buen CTR en GSC pero bajo engagement en GA4
Cruce GA4 + GSC
Avanzado
Funnel de conversión desde landing orgánica hasta evento clave
GA4 en BigQuery
Avanzado