Browse documentation
UTM & Pixels: QR Code Tracking in Google Analytics, Meta, and Your Ad Tools
Updated
QRelix analytics show who scanned, where, and when. UTM & Pixels carries that into Google Analytics and your ad platforms, so you can see what scanners do after they land, which posters drive sales, and retarget people who scanned your print.
- UTM tags are included on every plan, including Free.
- Pixels and server-side conversion events are included with QRelix Pro and Team.
UTM tags
UTM tags are the utm_source, utm_medium, and utm_campaign parameters Google Analytics uses to label where a visit came from. QRelix adds them to your destination the moment someone scans, so your saved links stay clean and one template works for all your codes.
Create a template
- Open UTM & Pixels in the dashboard and choose Create your first template. We fill in the values most teams use.
- Adjust the values. Click a placeholder chip to insert it where your cursor is:
| Placeholder | Becomes | Example |
|---|---|---|
{code_name} |
The QR code's name | spring-menu |
{code_id} |
The QR code's ID | cm2x7k1 |
{category} |
Its category | restaurant |
{domain} |
The scan link domain | go.yourbrand.com |
{route_rule} |
The Smart Routing rule that matched | iphone |
{variant} |
The A/B variant that was picked | version-a |
{device} |
iOS, Android, desktop, or other | ios |
{country} |
The scanner's country | us |
{date} |
The scan date | 2026-10-16 |
- Turn on Default template, and Turn on for new QR codes if you want every new link code tagged automatically.
Values are lower-cased and made link-safe, so "Spring Menu (Patio)" becomes spring-menu-patio in your reports.
Tag a QR code
On any link QR code's Configure page, open UTM & Pixels, switch on Add UTM tags, and pick a template. Override any value for just that code, and check the example link before you save. You can also set a template with the API (utmTemplateId) or a utm template column in a bulk CSV import.
If a destination already has a utm_ tag, QRelix keeps yours and only adds the missing ones. Anchors like #menu stay at the end of the link.
Smart Routing and A/B tests
With {route_rule} and {variant} in a template, every visit in Google Analytics says which rule or A/B version sent it. Compare conversions by utm_content to pick a winner, with no extra setup.
Pixels and conversion events
Connect your ad and analytics tools under UTM & Pixels, Pixels. Every scan of every QR code is sent to them; turn any connection off for a single code on its Configure page.
Server-side (recommended)
Google Analytics 4 (Measurement Protocol), Meta (Conversions API), and TikTok (Events API) can receive scans straight from QRelix's servers, right after the scan is recorded:
- No delay for scanners. The event is sent after the redirect, so scans are just as fast.
- Not blocked by ad blockers or browser privacy settings.
- No cookies or scripts on your scan pages, so it works worldwide, including the EU.
- Private by design. We send the QR code, device type, and country. Never IP addresses, fingerprints, or contact details.
You will need one of these, and QRelix stores the secret part encrypted:
| Tool | ID | Secret |
|---|---|---|
| Google Analytics 4 | Measurement ID | Measurement Protocol API secret |
| Meta | Pixel ID | Conversions API access token |
| TikTok | Pixel ID | Events API access token (TikTok Events Manager, your pixel, Settings, Events API) |
Use Test to send a test event. GA4 tests are validated without landing in your reports. For Meta and TikTok, paste the test event code from Events Manager to watch the event arrive under Test events.
Using the TikTok pixel in the browser too? Each server event carries the scan ID as its event ID, the same ID the browser pixel sends, so TikTok counts the scan once.
Browser pixels
LinkedIn Insight Tag, Google Ads conversions, and browser versions of GA4, Meta, and TikTok load on the scan page just before the redirect, for at most about a second. They are skipped for scanners in the EU, the UK, and Switzerland, where a scan page cannot collect cookie consent. When you use the server-side and browser versions of the same tool, events share an ID so they are counted once.
LinkedIn conversions
The LinkedIn Insight Tag builds retargeting audiences from scans. To also count each scan as a LinkedIn conversion, add its Conversion ID when you connect LinkedIn:
- In Campaign Manager, open Analyze, Conversion tracking, and create or open a conversion that uses the Insight Tag (event-specific).
- Copy the number from the conversion's URL.
- In QRelix, edit your LinkedIn connection and paste it into Conversion ID.
Each scan then fires that conversion right after the Insight Tag loads. Leave the field empty to use the Insight Tag alone.
Activity
The Activity tab lists the last 50 server-side events with their status. A send that fails retries for up to 10 hours, and the error from the provider (for example an expired access token) is shown in plain words.
Who can manage UTM & Pixels
In a Team workspace, owners, admins, and editors can create templates and connect tools. Viewers can see them. Connections and removals show up in the workspace's activity feed.