Cómo hacerlo

Medir los escaneos de QR en Google Analytics 4

Actualizado el 20 de septiembre de 20267 min de lectura

GA4 no ve un cartel. Solo ve la sesión que empieza cuando un móvil abre tu página, y por defecto esa sesión parece tráfico directo sin ninguna historia detrás. Dos ajustes lo arreglan: parámetros en el enlace de destino y un evento de escaneo enviado desde nuestro servidor. Con ambos tienes el recorrido completo, de la tirada impresa a la compra.

¿Qué método necesitas?

Parámetros UTM frente al evento de escaneo desde el servidor
Parámetros UTMEvento qr_scan desde el servidor
Qué mideLa sesión posterior al escaneo: páginas, conversiones, ingresosEl escaneo en sí, aunque el visitante cierre la página al instante
Funciona conCualquier destino que controles, código estático o dinámicoSolo códigos dinámicos: el escaneo tiene que pasar por nosotros
ConfiguraciónConstruir el enlace una vez, sin acceso a GA4ID de medición más un secreto de Measurement Protocol
Dónde aparece en GA4Adquisición de tráfico, origen/medio, campañaUn evento llamado qr_scan con el nombre del código y el destino
Punto ciegoEscaneos que nunca cargan la página (mala cobertura, cierre inmediato)Nada de lo que ocurre tras la redirección

Paso 1: etiquetar el destino con parámetros UTM

Los parámetros UTM son texto añadido a la URL de destino. GA4 los lee al llegar y clasifica la sesión con el origen, el medio y la campaña que elijas.

https://ejemplo.com/carta?utm_source=qr_code&utm_medium=offline&utm_campaign=carta_otono&utm_content=mesa
  1. Abre el <a href="/tools/utm-builder">generador de UTM gratuito</a> y pega tu destino.
  2. Pon en utm_source el lugar físico donde vive el código: <code>mesa</code>, <code>escaparate</code>, <code>flyer_mayo</code>, <code>embalaje</code>.
  3. Mantén el mismo utm_medium en todos los códigos impresos — <code>offline</code> o <code>print</code> — para que GA4 los agrupe en un solo canal.
  4. Reserva utm_campaign para la iniciativa, no para el soporte: <code>carta_otono</code>, <code>lanzamiento_2026</code>.
  5. Copia el enlace etiquetado y pégalo como destino de tu código.

Con un código dinámico puedes cambiar estos parámetros después de imprimir: el código apunta a nuestro enlace corto y el destino etiquetado está detrás. Así se reutiliza el mismo cartel para una segunda campaña sin reimprimir.

Paso 2: reenviar cada escaneo a GA4 desde el servidor

Una redirección no muestra ninguna página, así que no hay navegador que ejecute la etiqueta de GA4 en el momento del escaneo. Enviamos el evento nosotros mismos mediante el Measurement Protocol de GA4, justo después de redirigir al visitante.

  1. En GA4 abre Administrar, luego Flujos de datos, y selecciona tu flujo web.
  2. Copia el ID de medición (tiene la forma <code>G-XXXXXXXXXX</code>).
  3. En la misma pantalla abre los secretos de Measurement Protocol, crea uno y copia su valor.
  4. En Qreator abre tu código dinámico, entra en Reglas y baja a la sección Google Analytics 4.
  5. Pega el ID de medición y el secreto, y guarda. Los escaneos posteriores se reenvían.
Qué llega a GA4 en cada escaneo
CampoValorPara qué sirve
Nombre del eventoqr_scanCrear una exploración de GA4 o una conversión sobre escaneos offline
qr_nameEl nombre que diste al códigoComparar ubicaciones: escaparate, flyer, mesa
short_codeEl código del enlace cortoVincular el evento con una tirada concreta
destinationLa URL a la que se envió al visitanteDetectar códigos que siguen apuntando a una página antigua

Paso 3: comprobarlo antes de imprimir

  1. Abre Tiempo real en GA4 y escanea tu propio código con el móvil.
  2. En menos de un minuto deberías ver un evento qr_scan y, si etiquetaste el destino, una sesión con origen <code>qr_code</code>.
  3. ¿No aparece el evento? Revisa el ID de medición carácter a carácter y confirma que el secreto pertenece al mismo flujo de datos.
  4. ¿Evento pero sin sesión? La página se sirvió en caché sin los UTM: vuelve a probar pegando el enlace etiquetado directamente en el navegador para aislarlo.

¿Siguen sirviendo nuestras estadísticas?

Estadísticas de escaneo de Qreator: escaneos totales, únicos, comparación de periodos y evolución en el tiempo
Nuestro panel cuenta todos los escaneos, incluso los que nunca llegan a tu web; GA4 solo empieza a contar cuando la página carga.
  • Los escaneos bloqueados por contraseña, límite de escaneos o programación caducada no llegan a tu web, así que GA4 no puede contarlos. Nosotros sí.
  • GA4 pierde la sesión si el visitante bloquea el rastreo o rechaza el consentimiento; un evento desde el servidor no se ve afectado.
  • GA4 es donde asocias los ingresos. Nuestros números dicen qué ubicación consiguió el escaneo.

Preguntas frecuentes

¿Google Analytics puede medir un QR estático?
Solo de forma indirecta. Un código estático contiene tu URL, así que GA4 ve la visita pero nada del escaneo. Añade parámetros UTM a la URL antes de imprimir y GA4 atribuirá al menos la sesión a la campaña impresa. Los escaneos que nunca cargan la página siguen siendo invisibles.
¿Por qué mis escaneos aparecen como tráfico directo en GA4?
Porque el destino no lleva parámetros UTM y la app de cámara no envía referente. Etiqueta el destino con utm_source, utm_medium y utm_campaign y las sesiones saldrán de directo hacia el canal que hayas nombrado.
¿Necesito un secreto de Measurement Protocol?
Solo para el evento qr_scan desde el servidor. Los parámetros UTM no requieren nada de GA4. El secreto se crea en GA4 en Administrar, Flujos de datos, tu flujo web, secretos de Measurement Protocol.
¿Coincidirán las cifras de GA4 y de Qreator?
No, y es lo esperado. Nosotros contamos cada escaneo que llega a la redirección; GA4 cuenta sesiones que cargaron tu página. Redes lentas, cierres inmediatos, rechazo de consentimiento y bloqueo de rastreo explican una diferencia del 10 al 30 %.
¿Reenviar escaneos a GA4 envía datos personales?
No. El evento lleva el nombre del código, el código corto y el destino, con la publicidad no personalizada activada. No se envía dirección IP, ni identificador de dispositivo, ni nada que identifique a una persona.