Skip to content

How to Track QR Code Scans with QRLynx and GA4

Ahmad Tayyem, founder of QRLynx.
Founder
· Updated October 16, 2026 · 11 min read · Reviewed by QRLynx product team
A QR code scan connected to location, device, and analytics data.

Key Takeaway

Track QR scans in QRLynx, add UTM tags, verify your campaign in GA4, and separate redirects, website visits, registrations and payments.

QRLynx tracks a QR scan when a registered user saves a supported QR as dynamic and turns on Track Scans. The Free plan includes 3 active dynamic QR codes, unlimited scans, scan totals, a daily unique-scan estimate, activity over time, and top-performing codes. Country detail starts on Pro. City, device, browser, operating-system detail, and CSV export start on Business.

The scan and the website visit answer different questions. QRLynx measures the request to the dynamic QR route. A destination analytics tool such as Google Analytics 4 measures what happens after the browser reaches your website. To track QR traffic in Google Analytics 4, add UTM parameters to the destination website URL, confirm its GA4 tag can run with the visitor's consent settings, and check campaign reports after arrival. QRLynx scan analytics and GA4 website measurement are separate reports.

What QRLynx QR analytics can show

QRLynx reports scan activity, not the identity of the person holding the phone.

What QRLynx QR analytics can show. QRLynx reports scan activity, not the identity of the person holding the phone.
MetricAvailabilityHow to interpret it
Total scans and activity over time
All registered plans, including Free
Requests received by the tracked dynamic QR during the selected period
Daily unique-scan estimate
All registered plans, including Free
The first scan for one QR from one IP address during a day, not a known person
Top QR codes
All registered plans, including Free
Which saved codes receive the most scan requests
Country
Pro and higher
Approximate network-derived country, useful for broad regional patterns
City, device, browser, and operating system
Business and Enterprise
Approximate technical and location categories for testing and campaign analysis
CSV export
Business and Enterprise
Recent event-group rows or aggregate summaries for an eligible selected period

How scan tracking works in QRLynx

A static URL QR stores the final destination directly in its pattern. The phone can open that destination without contacting QRLynx, so QRLynx has no scan request to count. A tracked dynamic QR stores a QRLynx-managed short route. When the route is requested, QRLynx records the eligible scan event and then sends the browser to the saved destination.

Dynamic mode and tracking are related but separate settings. In the generator, turning on Track Scans automatically turns on Dynamic URL. Turning dynamic mode off also turns tracking off. This keeps the saved QR behavior consistent: tracking requires the managed redirect, while a dynamic QR can remain editable without recording scan analytics if tracking is disabled.

How to create and measure a QR campaign in QRLynx

Build one identifiable placement, test the full route, then compare scan and website results.

1

Define one destination and campaign goal

Choose the final website, form, menu, PDF, app page, or other supported destination. Decide what success means after the scan, such as a completed form, product view, registration, or download.

2

Build a tagged destination when website attribution matters

Use the free QRLynx UTM Builder for a website you control or can measure. Add consistent utm_source, utm_medium, and utm_campaign values, then use utm_content to distinguish the specific poster, store, table or package. Do not put names, emails or other personal details in these parameters.

3

Choose the exact QRLynx QR type

Open the QRLynx generator and choose Website / Link for a web destination, or the dedicated supported type for the content you are sharing. Paste or enter the final tested destination or payload.

4

Turn on Track Scans

Sign in and enable Track Scans in the generator settings. QRLynx automatically enables Dynamic URL because the managed redirect is required for analytics. Confirm both settings before saving.

5

Name the code for the physical placement

Use a name that remains clear in reports, such as Spring sale, downtown store, entrance poster. Create a different tracked QR for each placement you need to compare instead of printing one indistinguishable code everywhere.

6

Design and label the action

Use strong contrast, preserve the quiet zone, and add a short nearby label that describes the result, such as View the menu or Register here. Avoid language that promises an action the destination does not provide.

7

Test the final print and analytics route

Scan the exported image and a physical proof with representative phones. Complete the real destination action, then confirm that the scan appears in QRLynx. For a tagged website, also verify the campaign values in your website analytics setup.

8

Review scan and destination results separately

Use QRLynx to compare scan volume, timing, codes, and the breakdowns available to your plan. Use GA4 or the destination system to evaluate sessions, engagement, submissions, purchases, or other outcomes after arrival.

Campaign destination ready

Create a trackable QR in QRLynx

Connect one tested destination to a named dynamic QR, measure its scans, and keep the destination editable after printing.

Create a dynamic QR The Free plan includes 3 active dynamic QR codes and unlimited scans.

QRLynx analytics and GA4 measure different stages

QRLynx counts the eligible request to the managed QR route. GA4 begins after the visitor reaches a tagged website and its analytics setup runs. The two totals can differ because they measure different events. A scan may stop before the landing page loads, a browser or consent setting may limit website measurement, or one person may scan more than once before producing one website session.

For a website campaign, add campaign parameters to the final destination before saving the QR. Google recommends consistent utm_source, utm_medium and utm_campaign values. Use utm_content to distinguish the placement:

https://example.com/offer?utm_source=qr_code&utm_medium=print&utm_campaign=spring_sale&utm_content=store_entrance

Use the free QRLynx UTM Builder to assemble the URL. Keep values lowercase and stable, and use a separately named QRLynx QR for each placement you need to compare. These labels describe the campaign; they do not identify the person scanning. See Google's campaign URL guidance.

A direct static QR can also send a tagged website URL to GA4. It does not provide QRLynx scan analytics or an editable printed destination. Use a dynamic QRLynx URL QR with Track Scans enabled when you need both stages.

How to verify your QRLynx campaign in GA4

Use a website with a working GA4 tag and access to the correct Analytics property. QRLynx does not install GA4 on the destination for you.

1

Open the tagged destination through your QR

Create a Website / Link QR in QRLynx with Dynamic URL and Track Scans enabled, using the tagged destination above. Download it, scan the image, and check that the final page keeps the intended UTM values. Test a physical proof before printing a batch.

2

Check the intended visitor experience

Use your own authorized test visit. Confirm that the destination loads and its GA4 tag is configured for the property you are viewing. Respect consent choices, browser restrictions and any internal-traffic exclusions. A QR scan does not grant analytics consent.

3

Confirm receipt in Realtime

In GA4, open Reports, then Realtime. Look for the expected page title and page_view event. Inspect the event parameters for the intended campaign value when available. A blank First user source card alone does not establish that collection failed.

4

Review processed campaign traffic

After processing, open Reports, Acquisition, Traffic acquisition. Choose Session source / medium or Session campaign, and find your exact values, such as qr_code / print or spring_sale. Report navigation can vary by property. Realtime verifies receipt, not finalized session attribution.

5

Compare the right outcomes

Keep QRLynx scan requests, GA4 sessions and genuine completed actions separate. Record your test campaign and exclude it from business conclusions. Review real registrations or payments only after their own event setup and source records have been verified.

What we verified in a QRLynx-to-GA4 test

On October 16, 2026, the QRLynx team created a separate QA dynamic URL QR with Track Scans enabled, downloaded its SVG and decoded the actual short-link payload. Opening that decoded link preserved utm_source=qr_code, utm_medium=print, utm_campaign=qa_content_proof_20261016 and utm_content=counter_card at the destination.

A signed-out test visit with temporary measurement consent produced one observed page_view and the exact qa_content_proof_20261016 campaign value in GA4 Realtime. Temporary consent was restored after the check. This was a controlled browser test of the downloaded QR's decoded link, not a physical camera scan. It verified redirect and event receipt, not finalized acquisition attribution, a new registration or a paid conversion.

Our signed-in staff test visit was excluded from optional website measurement. That is a condition on our site, not a universal GA4 rule. Use the normal visitor path on your own destination and document any exclusions.

If your QR campaign is missing from GA4

  • Check the final URL: a redirect or destination can remove campaign parameters. Test the exported QR, not only the address copied into the generator.
  • Check the destination and property: a tagged URL cannot install GA4. Confirm the right tag is running on the final site and that you have access to its reports.
  • Check consent and exclusions: declined measurement, blockers and internal-traffic rules can affect what you observe. Do not bypass a visitor's choice to make counts match.
  • Check report scope and processing: Realtime supports a receipt check. Use processed Session campaign or Session source / medium for campaign analysis, rather than treating an empty First user source card as failure.
  • Check the channel label: a custom medium such as print can appear under Unassigned because it does not match a default channel rule. Check source, medium and campaign before concluding the visit was lost.

Google documents Realtime's attribution limits, the Traffic acquisition report and default channel definitions.

Measure registrations and payments after arrival

A scan request or page_view does not prove that someone registered or paid. Verify a completed action in the destination system before treating it as a business outcome. Where appropriate, configure and test a corresponding GA4 event and mark the meaningful action as a key event.

Keep staff tests, duplicate actions and returning customers separate from new customer acquisition. A paid order also needs payment evidence; an opened checkout is not a payment. UTM tags label traffic but do not create these events or prove that the QR campaign caused the result.

What the unique-scan number means

QRLynx does not know whether a scanner is a specific person. For each QR code, the first scan request from an IP address during a UTC calendar day is counted as unique. A short-lived key marks that combination for 24 hours. The analytics dataset receives the resulting unique or repeat classification, along with derived device and approximate location categories. It does not expose a scanner's name or raw IP address in the dashboard.

Treat the number as a daily unique-scan estimate. Two people on one shared network can be grouped together. One person who changes networks can be counted again. A later scan on another day can also count as unique for that day. Use total scans and the unique estimate together, then validate important business outcomes in the destination system.

Location, device, browser, and referrer limits

Country and city are derived from the network request, not from the phone's GPS. VPNs, mobile carrier routing, relay services, and corporate networks can change the apparent location. Device, browser, and operating-system categories are derived from the request's user-agent information and can be incomplete or generalized. A referrer header may be available for some recent exported events, but camera and app handoffs often provide no useful referrer.

Use these dimensions for broad patterns and QA decisions. For example, a Business account can prioritize testing on the device and browser categories that appear most often, or compare broad city patterns across distinct placements. Do not use these fields to claim that a named person visited an exact location.

Analytics history by QRLynx plan

Available history cannot predate the campaign or retained source data. Plan access and selected range still apply.

Analytics history by QRLynx plan. Available history cannot predate the campaign or retained source data. Plan access and selected range still apply.
PlanAvailable history rangeAdditional analytics access
QRLynx Free
Up to 3 months
Totals, time trends, daily unique estimate, top QR codes, and Basic AI Insight Summaries
Starter+
Up to 1 year
Full AI Insights and one manual refresh per day
Pro
Up to 2 years
Country breakdown
Business
Up to 3 years
City, device, browser, operating system, CSV export, and team analytics
Enterprise
All available history, with no fixed plan lookback cap
Business analytics capabilities with the Enterprise plan limits

How CSV export works

CSV export is available on Business and Enterprise. For recent ranges up to 90 days, the export groups scan events that share the same second and dimensions, and includes the date, QR name and URL, country, city, device, operating system, browser, referrer, and represented scan count. It is not a list of identified people.

For eligible longer ranges, QRLynx can export aggregate history summaries with period, grain, QR, scan totals, unique estimates when available, dimension summaries, and a quality status. Choose the report that matches the decision. Use recent rows for operational review and aggregate history for long-range trends.

Build placement-level reporting that stays understandable

Create one saved QR per placement when you need a clean comparison. A single code printed on a storefront, receipt, table tent, and package can show total demand, but it cannot tell you which physical placement produced each scan. Distinct names and UTM content values create that separation.

  • Name by campaign, location, and placement: spring-sale_downtown-store_entrance.
  • Keep the same campaign vocabulary: use one spelling and capitalization across QRLynx and GA4.
  • Test the landing action: scan volume is useful, but completed registrations, purchases, form submissions, or downloads answer the business question.
  • Compare rates with context: record how many pieces were distributed or how much foot traffic a placement received before comparing performance.

For larger portfolios, folders help organize saved codes. Dynamic bulk creation begins on Pro and gives each generated code its own destination and analytics while consuming the plan's active dynamic capacity.

Privacy responsibilities

Network identifiers can be personal data under privacy law even when they are used to derive aggregate reports. QRLynx analytics does not identify scanners by name, but that does not remove the operator's responsibility to explain applicable measurement and choose an appropriate legal basis. Keep your privacy notice aligned with the data and tools used on the destination page, especially when forms, advertising pixels, or account logins are involved.

A scan alone does not provide consent to collect contact details. If the campaign needs a name, email address, or another submitted field, collect it through a clear destination form or an eligible QRLynx lead form and explain the purpose at the point of collection. Review the QRLynx privacy policy and obtain jurisdiction-specific advice when required.

QRLynx QR code tracking questions

Can QRLynx track a static QR code?

No. A static QR encodes its final data directly, so the scan does not pass through a QRLynx route. QRLynx tracking requires a saved dynamic QR with Track Scans enabled.

How do I turn on scan tracking in QRLynx?

Sign in, choose a supported QR type, enter the destination, and enable Track Scans in the generator settings. QRLynx automatically turns on Dynamic URL because the managed redirect is required for scan analytics.

What analytics are included in QRLynx's free plan?

The Free plan includes 3 active dynamic QR codes, unlimited scans, up to 3 months of analytics, total scans, a daily unique-scan estimate, activity over time, top QR codes, and Basic AI Insight Summaries.

Does QRLynx show the exact person who scanned?

No. QRLynx reports scan activity and derived categories, not a scanner's name, email address, phone number, or verified identity. Personal details require a separate, clearly explained form or account action.

What does a unique scan mean in QRLynx?

It is the first scan for one QR from one IP address during a day. It is an estimate, not a person count. Shared networks can group people together, and one person changing networks can be counted again.

Does QRLynx use GPS to locate a scan?

No. Country and city categories come from network-derived geolocation. They can be affected by VPNs, relays, mobile carriers, and corporate networks, so they should be treated as approximate.

Why can QRLynx scans and GA4 sessions differ?

They measure different events. QRLynx measures the tracked QR route request. GA4 measures the website visit after arrival and subject to the site's analytics, consent, and browser behavior.

How should I add UTM parameters to a QR destination?

Use consistent utm_source, utm_medium, and utm_campaign values. Add utm_content to identify a placement or creative. The free QRLynx UTM Builder can assemble the destination before you create the QR.

Can I add tracking after a static QR has been printed?

No. The printed static pattern keeps its original directly encoded value. Create and print a new dynamic QRLynx QR with Track Scans enabled for future measurement.

Does changing a dynamic QR destination remove its analytics?

Changing the destination does not replace the saved QR identity. Existing scan history remains associated with that QR, while future scans open the new destination. Record the change date so reports remain interpretable.

Which plans include country, city, and device analytics?

Country detail starts on Pro. City, device, browser, and operating-system detail start on Business. The dashboard enforces these plan gates on the server.

Which QRLynx plans include CSV export?

Business and Enterprise include CSV export. Recent eligible periods provide grouped event rows, while eligible longer periods provide aggregate history summaries.

Can GA4 measure visits from a static QR code?

Yes, when the static QR contains a tagged website URL and the destination has a working GA4 setup. QRLynx does not receive the direct static scan, so it cannot provide its own scan analytics for that printed code. A dynamic QRLynx QR with Track Scans enabled supports the separate scan-side report.

Can I track a QR destination website that I do not control?

QRLynx can report eligible requests to your tracked dynamic QR. You can see destination GA4 reports only if the destination has the required setup and you have reporting access. Adding UTM tags to a third-party URL does not give you its analytics or prove an action happened there.

Enjoyed this article? Share it!

Ahmad Tayyem, founder of QRLynx.

About the author

Founder of QRLynx, built through Jorbox LLC

Ahmad builds and runs QRLynx end to end: product, engineering, and the original QR research behind these guides. For how we research, test and review these guides, see our testing methodology and editorial policy.

Ready to Create Your Own QR Codes?

Start for free and upgrade as you grow. All plans include dynamic QR codes, analytics, and custom branding.

QRLynx pricing plans

Free plan details selected

Free

$0 /month
Free forever
  • 3 Dynamic QR Codes
  • 1 Folder
  • 5 MB per PDF upload
  • AI Insight Summaries
  • 3 Months Analytics
Most Popular

Pro

Best value for campaigns
$14 /month
Billed monthly
  • 300 Dynamic QR Codes
  • 25 Folders
  • 15 MB per PDF upload
  • 2 Years Analytics
  • Country Analytics
  • Password Protection
  • Smart Redirect Rules
  • Access Consent Screens
  • Expiry Rules
  • QR Scheduling
  • Bulk Dynamic QR: 100/batch
  • Instant QR Redirects
  • Full AI Insights
  • SVG / PDF Downloads

Business

For teams and agencies
$29 /month
Billed monthly
  • 1,000 Dynamic QR Codes
  • 100 Folders
  • 25 MB per PDF upload
  • 3 Years Analytics
  • City, Device & Browser Analytics
  • CSV Analytics Export
  • Bulk Dynamic QR: 250/batch
  • Team Management (10 Members)
  • Lead Capture Forms
  • Email Reports
  • Public API Access
  • Instant QR Redirects
  • Full AI Insights
  • Country Analytics
  • Password Protection
  • Smart Redirect Rules
  • Access Consent Screens
  • Expiry Rules
  • QR Scheduling
  • SVG / PDF Downloads

Enterprise

For branded QR links
$99 /month
Billed monthly
  • 5,000 Dynamic QR Codes
  • 500 Folders
  • 50 MB per PDF upload
  • Unlimited Analytics
  • Bulk Dynamic QR: 1,000/batch
  • Team Management (100 Members)
  • White Label Domains
  • Retargeting Pixels
  • Instant QR Redirects
  • Full AI Insights
  • Country Analytics
  • City, Device & Browser Analytics
  • CSV Analytics Export
  • Password Protection
  • Smart Redirect Rules
  • Access Consent Screens
  • Expiry Rules
  • QR Scheduling
  • Lead Capture Forms
  • Email Reports
  • Public API Access
  • SVG / PDF Downloads

Core features included in every plan

(free and paid, no exceptions)
  • Unlimited Static QR Codes
  • QR Pause & Activate
  • Unlimited Scans
  • Dynamic Projects Are Preserved
  • 61 QR Code Types
  • Apple & Google Wallet Passes
  • Custom Logo Upload
  • QR Code Frames
  • No Watermark
  • No Scan Ads
  • JPG, PNG, WEBP & HD Downloads
  • Bulk Static QR (up to 100/batch)

50% off Business and Enterprise plans for verified nonprofits, schools and open-source projects. Contact us to apply.