QR toolkit

Campaign QR code

Add campaign tags to a URL and download its QR code.

What would you like to share?QR settings

Include https:// and keep existing query parameters if the destination needs them.

Each UTM value can be up to 200 UTF-8 bytes. Keep values short and consistent.

The URL updates as you edit. Nothing is copied until you press Copy.

Appearance and error correction

Used for PNG downloads. SVG scales to any size.

Higher correction survives more damage but adds modules. Print larger when you choose Q or H.

#1d1d1f
#ffffff

Keep dark modules on a light background. The renderer rejects combinations below 4.5:1 contrast.

Preview

Updating preview…

Preparing previewChecking the details and drawing the code.

How to build the campaign URL

  1. Start with the full destination URL, including https://. Keep any query parameters the destination already needs.
  2. Add a source, medium, and campaign name. These are the three required UTM values; term and content are optional and can be left blank.
  3. Check the Final campaign URL field. Copy it if you also want the link outside the QR code.
  4. Test the preview with a phone, then download a PNG or SVG. The QR code contains the final URL, including the UTM parameters.

What the UTM values mean

  • utm_source identifies where the traffic came from, such as a newsletter or a printed sign.
  • utm_medium describes the kind of link, such as email, print, or social.
  • utm_campaign names the campaign or promotion.
  • utm_term and utm_content are optional labels for a variant, such as a placement or creative.

UTM parameters are just labels carried in the URL. They do not guarantee attribution: the destination’s analytics setup must read them, and some redirects or privacy settings can strip them. Verify the landing page and your reports before relying on a label.

Example

https://example.com/spring?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch

Limits and good practice

  • Use an absolute http:// or https:// URL. A relative path or a bare domain without a scheme is rejected.
  • Keep UTM values short, consistent, and lowercase where possible. Values are case-sensitive in many analytics tools.
  • Do not put personal data, customer identifiers, passwords, or private information in a UTM value. The final URL is visible to anyone who scans the code.
  • A long URL creates a denser code. If the result is hard to scan, shorten the destination or simplify the labels rather than shrinking the print.
  • The code is static. If you change the destination or the UTM values, make a new code; this page cannot redirect an existing one.