# QR code generator with UTM tags

Type a link or any text, add UTM tags if you want to see the scans in Google Analytics, pick colours and error correction, then download the code as SVG for print or PNG for screens.

## Track the scans, not just the clicks

A QR code on a flyer, a poster or a product box sends people to your site without a referrer, so most analytics tools count those visits as direct traffic. Add UTM tags before you make the code and every scan arrives with a source, a medium and a campaign. A simple pattern for print is `utm_source=flyer` (or poster, menu, packaging), `utm_medium=print` and a campaign name per run. Use one code per placement when you want to compare them.

## Make a code that scans

- **Dark on light.** Keep the code darker than its background. Brand colours are fine as long as the contrast stays high.
- **Leave the margin.** The white border around the code is part of it. The downloads include it; do not crop it off in your design.
- **Shorter is easier.** A short link needs fewer modules, so each one prints bigger. Long UTM values make the code denser.
- **Test at the real size.** Scan a printed proof from the distance people will stand at, before you print a thousand.

## Share the link in your posts too

The tagged link that the code opens works in social posts as well. In PostBoost you can give each network its own version of a post, so paste a link tagged for that network (for example `utm_source=linkedin&utm_medium=social`) into each version and compare print and social side by side in your reports.

## How to use

1. Paste the link (or type the text) you want the code to open.
2. Open Add UTM tags and fill source, medium and campaign, for example flyer, print and spring-launch.
3. Pick an error correction level and the colours; fix any contrast warning.
4. Scan the preview with your phone camera to check it opens the right page.
5. Choose the download size and save the code as SVG or PNG.

## FAQ

### Do these QR codes expire?

No. The link or text is stored in the code itself, so it works for as long as the page it points to exists. There is no redirect service in between and nothing is stored on our side, which also means you cannot change the target after printing.

### How do I track scans of a QR code?

Add UTM tags. The code then opens a link such as https://example.com?utm_source=flyer&utm_medium=print&utm_campaign=spring-launch, and Google Analytics reports those visits under that source, medium and campaign. The tags are added exactly as our UTM builder adds them.

### Which error correction level should I use?

M (15%) is the default and fits most uses. Pick Q or H (25% or 30%) for codes that may get scratched, folded or partly covered, and L (7%) when the text is long and you want the smallest number of modules.

### SVG or PNG?

SVG is a vector file: it stays sharp at any size, so use it for print and design tools. PNG is a picture at the size you choose (128 to 2,048 px), which suits websites, slides and social posts.

### Why do I see a contrast warning?

Scanners look for dark modules on a light background. The generator warns when the two colours are below a 4.5:1 contrast ratio, or when the code is light on dark, because some scanner apps cannot read inverted codes.

### Is my text sent to PostBoost?

No. The code is drawn in your browser while you type. The same generator is available on the PostBoost Free Tools API and MCP server, which returns the code as SVG.

## Related

- [UTM builder for social media links](https://postboost.co/tools/utm-builder): Build UTM-tagged links for social posts in your browser: network presets, live preview, naming warnings and saved presets. Free, no signup.
- [Social media image sizes, with a free resizer](https://postboost.co/tools/social-media-image-sizes): Image sizes for Instagram, Facebook, LinkedIn, X, TikTok, YouTube, Pinterest and more, each with its source. Crop and resize your image in the browser.
- [Engagement rate calculator for Instagram, TikTok and LinkedIn](https://postboost.co/tools/engagement-rate-calculator): Calculate engagement rate by followers, reach or impressions, for one post or several. See the formula with your own numbers. Free, in your browser.
- [UTM Parameters for Social Media: A Naming Convention That Lasts](https://postboost.co/learn/utm-parameters-for-social-media): How to use UTM parameters on social media links: which tags to set, a lowercase naming convention, one link per network, and how GA4 sorts the visits.
- [Post editor](https://postboost.co/features/editor): Write once, adjust per account, preview it the way each network shows it and pick the format: Reel, Story, thread, offer, board or privacy.

Last verified: 2026-10-16

## Sources

- [DENSO WAVE (QR code inventor): error correction levels](https://www.qrcode.com/en/about/error_correction.html)
- [Google Analytics: collect campaign data with custom URLs](https://support.google.com/analytics/answer/10917952)

Canonical: https://postboost.co/tools/qr-code-generator
