GA4 forwarding setup
- 1
Get your Measurement ID and API secret
In Google Analytics 4: Admin → Data streams → your web stream → Measurement ID (it starts with `G-`). From the same screen, open Measurement Protocol API secrets → Create and copy the secret value. Both are needed: the Measurement Protocol authenticates on the secret, not on a browser tag, because these events are sent server-side from the redirect rather than from the visitor's device.
- 2
Connect the integration
Dashboard → Settings → Integrations → GA4. Paste the Measurement ID and the API secret and save. Credentials are encrypted with AES-256-GCM before they are stored, and the settings panel only ever renders a masked version afterwards. Use "Send test" to push a probe event and confirm the credentials work before you rely on the connection. GA4 forwarding is available from the Pro plan; the plan is re-checked at send time, so a downgraded organization stops forwarding immediately rather than leaking data from a plan it no longer has.
- 3
Know exactly which parameters are sent
A scan sends the `qr_scan` event with `qr_id`, `slug`, `device` and `country`, plus `campaign_id` and `destination` when the code belongs to a campaign or resolved to a specific URL. A conversion sends `qr_conversion` with `event_name`, `source`, and — when present — `qr_id`, `campaign_id`, `value` and `currency`. Every payload carries `non_personalized_ads: true`. The GA4 `client_id` is derived deterministically from the anonymous session hash, so repeat scans by the same visitor map to the same GA4 client without a cookie and without anything reversible to an IP address.
- 4
Verify in GA4 Realtime
Scan one of your codes with a phone, then open GA4 → Reports → Realtime within a minute or two. The `qr_scan` event should appear, and the parameter breakdown should show the `slug` of the code you scanned. If nothing arrives, the usual causes are a Measurement Protocol secret from a different data stream, or an event that was filtered as bot traffic — bot hits are recorded on the platform but are never forwarded to GA4 or to any other integration.
- 5
What forwarding cannot break
The fan-out runs fire-and-forget from the redirect: each adapter caps its own network time, never follows redirects, and logs failures instead of raising them. A GA4 outage therefore slows nothing and drops no scan on our side — the scan event is still written to the platform, and the dashboard numbers stay correct even when the forwarded copy never arrives. Treat GA4 as a second, lossy destination for the data, not as the system of record.
Frequently asked questions
What is QRCode Suite?
QRCode Suite is a standalone QR code platform: create a free account and generate branded, dynamic QR codes in the browser — no WordPress required. Connectors bring the same codes to WordPress and WooCommerce, where orders can be attributed to specific QR codes.
Does QRCode Suite work without WordPress?
Yes. QRCode Suite is a standalone SaaS — sign up, create QR codes, and track scans entirely on qrcode-suite.com. The WordPress plugin is an optional connector that brings your codes into wp-admin and adds WooCommerce order attribution.
Does QRCode Suite require a separate subscription?
The Free plan is available at no cost — no credit card required. Paid plans (Pro €9, Business €29, Agency €79 per month) unlock unlimited codes, redirect rules, and more. There is no separate per-scan fee.
What QR code types does QRCode Suite support?
QRCode Suite supports 22 QR code types: Static URL, Dynamic URL, Plain Text, Phone, Email, Location, Link Hub, SMS, WhatsApp, Wi-Fi, vCard, Social profile, PDF, File download, App download, Coupon, Calendar event, Lead capture form, Review collection, Wholesale inquiry, Loyalty reward, and Custom payload.
Can I change the destination of a QR code after printing it?
Yes. Dynamic QR codes use a short redirect URL. You can update the destination from your dashboard at any time without generating or reprinting the code.