DEV Community

Toolkit Labs
Toolkit Labs

Posted on

UTM QR codes for print marketing — static links, no $49/month

Flyers, posters, and packaging often need a QR code that points to a tracked landing page. Hosted QR platforms charge ~$49/month to swap destinations after print — but most print campaigns already know the final URL before the ink dries.

A static QR encoding your full UTM-tagged URL is enough. Print once, scan forever, and Google Analytics (or Plausible, etc.) records the utm_source=qr traffic like any other link.

Build the URL first

Example for a summer sale poster:

https://example.com/sale?utm_source=qr&utm_medium=print&utm_campaign=summer2026
Enter fullscreen mode Exit fullscreen mode

Paste that exact string into a generator, download PNG or SVG, drop it into your design file. Done.

Try it in the browser

toolkitlabs-qr live demo — paste any URL (with or without UTM params), download PNG or SVG. Runs entirely client-side; nothing is uploaded.

Batch posters for multiple locations

Running the same creative in ten cities with different utm_content tags? One CSV row per variant:

npx toolkitlabs-qr@latest qr_batch.py campaigns.csv ./posters/
Enter fullscreen mode Exit fullscreen mode

Sample campaigns.csv:

url,filename
https://example.com/sale?utm_source=qr&utm_medium=print&utm_campaign=summer2026&utm_content=nyc,nyc-poster.png
https://example.com/sale?utm_source=qr&utm_medium=print&utm_campaign=summer2026&utm_content=la,la-poster.png
Enter fullscreen mode Exit fullscreen mode

The batch CLI pack is a one-time EUR 9 purchase (no subscription): Stripe payment link.

When dynamic QR actually helps

If you genuinely need to change the destination after printing — rotating promo URLs, A/B tests mid-campaign, or scan analytics inside the QR vendor dashboard — a hosted service earns its fee. For a fixed UTM link on a poster that ships next week, static is honest and free.

CC0 · Toolkit Labs

Top comments (0)