QR TRACKING

    QR Code Tracking for Campaigns, Posters & Packaging

    Track performance across placements using dynamic QR codes — and compare scan activity to see what's actually working.

    • Track scans across campaigns
    • Use a separate QR per placement
    • Compare performance side by side
    qrflows.app · campaign “Spring 25”
    Total scans · 4 placements
    5,050
    Comparable
    P-NYC-01Poster · NYC subway
    1,24025%
    P-LAX-02Poster · LA airport
    86017%
    S-CHI-03Store · Chicago flagship
    2,41048%
    S-MIA-04Store · Miami pop-up
    54011%
    Per-placement QR · same campaign→ compare
    THE OFFLINE BLIND SPOT

    Without tracking, offline marketing is a black box.

    Posters, packaging, business cards and in-store signage all generate real attention — but if every QR code points to the same untagged URL, you have no idea what worked. Per-placement QR codes turn each physical surface into a measurable channel.

    Without tracking
    • • One QR everywhere → no comparison
    • • No idea which city, store, or print run worked
    • • Budget allocated by gut feel
    • • Cannot prove ROI of physical channels
    With QR tracking
    • • One QR per placement → ranked results
    • • Clear comparison across cities and stores
    • • Editable destinations without reprinting
    • • Real numbers feeding next campaign
    WHAT IT REALLY IS

    QR tracking is mostly about structure.

    Tracking is not magic. It's a discipline: you generate different QR codes for things you want to compare, route them through QRflows, and read the analytics per code. Then you compare what worked. Three steps — that's it.

    Different QR codes
    One per placement, channel, version, or store.
    Analytics per code
    Each redirect logs scan counts inside QRflows.
    Compare side by side
    Read the dashboard, kill what's flat, scale what works.
    METHODS

    Six ways to track QR scans

    Combine these methods depending on the campaign. Most teams start with per-placement QR + UTMs and add the rest as they scale.

    METHOD 1
    Per-placement QR

    One QR = one placement. Print a different code on each poster, store, or city so you know exactly where every scan came from.

    PostersStore windowsCities & regionsSpecific events
    METHOD 2
    UTM parameters

    Add your own UTM tags to the destination URL. Your web analytics (GA4, Plausible, etc.) will then see scans as a tracked source.

    QRflows does not generate UTMs automatically — you add them to your destination links.
    METHOD 3
    Editable destination

    Change the link a printed QR points to without reprinting. Run different campaigns on the same physical asset over time.

    METHOD 4
    Bulk QR
    Growth+

    Generate batches of unique dynamic QR codes from a CSV. Ideal for retail rollouts, multi-store campaigns, or per-unit tracking.

    METHOD 5
    A/B testing
    Pro

    Split scans between two destinations and compare performance per QR code. Per-QR view only — not aggregated in the global dashboard.

    A/B stats are available per QR code, not in the global dashboard.
    METHOD 6
    Smart Rules
    Pro

    Route the same QR to different destinations by device, time of day, language, or country. Powerful for routing — not for analytics attribution.

    Smart Rules control routing, not analytics attribution.
    BEST PRACTICES

    How to set up tracking that actually pays off

    One QR per placement
    Resist the urge to reuse a single QR for everything. The whole point of tracking is being able to compare.
    Naming structure
    Use a consistent pattern like campaign → channel → placement → variant. Makes filtering scans painless.
    Group by campaign
    Cluster related QR codes under a campaign label so you can compare the whole group at a glance.
    Compare time windows
    A placement is only good or bad relative to others. Always compare ranges, not raw numbers.
    Naming pattern example
    spring25posternyc-subway-l-trainv1
    Campaign · channel · placement · variant. One QR per leaf, easy to filter and compare.
    USE CASES

    Where QR tracking pulls its weight

    Posters & outdoor
    Different QR per poster, per city, per district — see where physical reach actually converts to scans.
    Retail & in-store
    Per-shelf, per-store, or per-region QR codes. Compare placements to find the strongest spots.
    Packaging
    Per-batch or per-SKU codes give you sell-through signal without depending on retailer reports.
    Menus & hospitality
    Track which table or location actually scans the QR menu — and update content without reprinting.
    HONEST LIMITS

    What QR tracking can't do

    QRflows tracks scan events — not people, not purchases. Setting expectations early saves debugging time later.

    Cannot identify users
    Scans are anonymous events, not authenticated visits.
    No automatic conversion tracking
    QRflows counts scans, not purchases. Use your site analytics for the funnel below the click.
    No guaranteed location data
    Country signals can be missing or coarse — never rely on a precise pin.
    No full attribution
    QRflows is not a multi-touch attribution platform. It tracks scan events, not the customer journey.
    BEYOND THE SCAN

    How to track conversions, not just scans

    QRflows tells you how many people scanned. To know how many bought, signed up, or opened your app, pair tracking with your existing web analytics.

    1
    Add UTM tags to your destination URLs
    https://shop.example.com/?utm_source=qr&utm_medium=poster&utm_campaign=spring25
    2
    Read scans in QRflows + conversions in GA4

    QRflows shows scan volume per QR. Your web analytics shows what those visitors did next. The UTMs glue the two views together.

    PLANS

    Tracking grows with your campaigns

    Starter
    • Basic tracking
    • Per-QR scan counts
    • Edit destinations after print
    Growth
    • Scale: more QR codes & scans
    • Bulk QR creation
    • Hosted landing pages
    PRO
    Pro
    • A/B testing per QR
    • Smart Rules routing
    • Product QR + API access
    FAQ

    QR tracking — frequent questions

    Yes — if you want to compare performance. The whole idea of QR tracking is using one QR per placement so the dashboard can tell you which poster, store, or city actually drives scans. Reusing one QR everywhere makes results impossible to attribute.

    Yes. Add UTM tags directly to your destination URL when you create or edit the dynamic QR code. QRflows does not generate UTMs automatically — you build them yourself so they match your existing analytics setup (GA4, Plausible, etc.).

    Yes. Dynamic QR codes in QRflows go through a redirect we control, so you can change the destination at any time. The printed code stays the same — perfect for refreshing campaigns or fixing broken links.

    That's exactly what it's built for. QRflows turns physical surfaces — packaging, posters, business cards, in-store signage, menus — into measurable channels by giving each placement its own dynamic QR with scan counts.

    No. QRflows does not provide guaranteed or precise location data. Country signals can be missing or coarse and should never be treated as a reliable pin. For geographic insight, use one QR per region or city instead of relying on auto-detection.

    Pair QR tracking with your own web analytics. Add UTM tags to the destination URL so tools like GA4 can attribute purchases or signups back to the QR campaign. QRflows tells you how many scanned; your site analytics tells you what they did next.

    A/B testing (Pro) splits scans between two destinations to compare which performs better — stats are shown per QR code, not in the global dashboard. Smart Rules (Pro) routes scans by device, country, time or language — it controls routing, not analytics attribution.

    Bulk QR creation is available from the Growth plan and up. It lets you generate batches of unique dynamic codes from a CSV — ideal for retail rollouts, multi-store campaigns, or per-unit packaging tracking.

    Stop guessing what works offline.

    Set up trackable QR codes for every poster, store, and SKU — and let the dashboard tell you the truth.