Skip to main content

Send Scribeless QR scan events to Google Analytics 4

Connect Scribeless Smart QR scans to GA4 using a webhook receiver and Measurement Protocol.

Use the Google Analytics 4 integration to send Scribeless Smart QR scan events into your GA4 property. When a recipient scans a Smart QR code, Scribeless can send a webhook to a secure receiver, and that receiver forwards a server-side GA4 event named scribeless_qr_scan.

This is useful when you want direct mail engagement to appear alongside your website analytics. For the best attribution, use UTM parameters on the QR destination URL as well as the server-side scan event.

Before you start

You need:

  • A Scribeless campaign or template that uses a Smart QR code.

  • A GA4 property with access to the relevant web stream.

  • A GA4 Measurement ID and Measurement Protocol API secret.

  • A webhook receiver URL configured by your team or by Scribeless.

Do not send names, email addresses, postal addresses, or other personally identifiable information into Google Analytics.

Add a Smart QR code to your mailer

Add a QR code block to your Scribeless design and set the destination URL. Add UTM parameters to the destination URL so normal GA tagging can attribute the landing page session, for example utm_source=scribeless, utm_medium=direct_mail, and a campaign-specific utm_campaign.

Each generated Smart QR code can be tracked back to the relevant scan event and campaign context.

Scribeless Smart QR code preview

Create a GA4 Measurement Protocol API secret

  1. Open Google Analytics and select the GA4 property you want to receive QR scan events.

  2. Go to Admin > Data streams.

  3. Open the relevant web stream.

  4. Copy the Measurement ID.

  5. Open Measurement Protocol API secrets and create a new secret for Scribeless QR scan events.

Keep the API secret server-side. Never add it to a webpage, public repository, or client-side script.

Google Analytics web stream settings showing the Measurement ID and Measurement Protocol API secrets option

Connect the webhook receiver

The receiver is the secure endpoint that accepts Scribeless qr_code.scanned webhooks and forwards them to GA4. It verifies the Scribeless webhook signature, deduplicates scan events, and sends a Measurement Protocol event to GA4.

The event sent to GA4 is named scribeless_qr_scan. Common event parameters include:

  • campaign_id

  • recipient_id

  • qr_code_id

  • qr_block_id

  • destination_host

  • scan_medium

If Scribeless is enabling this for you, share the GA4 Measurement ID and API secret through a secure channel. Scribeless will provide the webhook receiver URL and confirm when it is active.

Verify events in GA4

  1. Send or preview a mailer with a Smart QR code.

  2. Scan the QR code or open the Smart QR short URL.

  3. In GA4, open Reports > Realtime overview.

  4. Scroll to Event count by Event name.

  5. Confirm that scribeless_qr_scan appears.

Google Analytics Realtime overview showing a scribeless_qr_scan event

Make the event parameters reportable

GA4 may receive event parameters before they are available in standard reports. To report on parameters such as campaign_id, qr_block_id, destination_host, or scan_medium, create matching custom dimensions in GA4.

After custom dimensions are registered, GA4 can use the parameters in explorations and reports going forward.

Attribution notes

The webhook event is server-side. It records that a Scribeless QR scan happened, even if the landing page does not fully load. However, by default it may not join to the same browser session as the landing page view.

For most teams, the recommended setup is:

  • Use UTM parameters on the QR destination URL for website session attribution.

  • Use the scribeless_qr_scan server-side event for scan volume, campaign context, and operational follow-up.

If you need scan-to-session attribution, speak with Scribeless about passing a stable token or GA client/session identifier through your landing page flow.

Troubleshooting

If no event appears in GA4 Realtime, check that the QR code was generated as a Smart QR code and that the webhook receiver is active.

If the receiver is active but GA4 does not show the event, confirm the Measurement ID, API secret, and GA4 property are correct.

If the event appears but parameters are missing from reports, register the parameters as custom dimensions in GA4 and wait for new events to arrive.

If website sessions are attributed incorrectly, confirm the QR destination URL includes UTM parameters and that your landing page has GA installed correctly.

Did this answer your question?