Skip to content

QR Codes — Methodology Handbook

How CalculatorAI's QR Code generator and QR Codes tracker work: static vs dynamic codes, scan analytics, password protection and privacy.

👉 Open the tracker: calculatorai.app/qr-codes · Create a code: QR Code generator

What a QR code actually is

A QR ("Quick Response") code is a square matrix barcode that stores a short piece of data — most often a URL. A phone camera decodes the pattern and opens whatever it encodes. The three large corner squares are finder patterns that let a scanner locate and orient the code; the smaller cells around them carry the data plus error-correction information.

Error correction means a QR code still scans when part of it is damaged, dirty, or covered — for example by a logo in the centre. Higher error-correction levels reserve more of the code for recovery data, which is why adding a logo works best at the "High" level.

Static vs dynamic codes

There are two fundamentally different kinds of QR code, and choosing the right one matters before you print anything.

Static codes

A static code encodes the final destination directly inside the pattern. Whatever you type is baked into the pixels forever.

  • Free and permanent — no account needed.
  • The destination can never be changed. If the link breaks, the printed code is dead.
  • No scan tracking is possible: the code points straight at your link, so nothing sits in between to count scans.
  • Best for: Wi-Fi credentials, a permanent homepage, plain text, a phone number.

Dynamic codes

A dynamic code encodes a short redirect link that you own. Scanning it lands on that short link, which instantly forwards to your real destination.

  • You can change the destination at any time — even after the code is printed on a thousand flyers. The pattern never changes; only where it points does.
  • Every scan passes through the redirect, so it can be counted and analysed.
  • Optional password protection can gate the destination behind a prompt.
  • Best for: marketing campaigns, packaging, business cards, menus, event signage — anywhere the target may change or you want analytics.

The rule of thumb: if it's printed and permanent, or the destination might ever change, use dynamic.

Content types

Instead of typing a raw string, pick a content type and fill in a short form — the generator assembles the correct code for you:

  • URL / Text — a web link or plain text.
  • WiFi — network name, password and security type, so a phone joins the network on scan.
  • vCard — a full contact card (name, phone, email, company, role, website) saved straight to Contacts.
  • Email / Phone / SMS / WhatsApp — start a message or call with the fields pre-filled.
  • Location — pick a point on the map (or search an address) and the code opens it in maps.
  • Event — a calendar event with title, place and dates.
  • Crypto — a wallet address (Bitcoin, Ethereum and 10 more) with an optional amount.

Customisation

Both code types support the same visual options:

  • Colours — foreground and background, including a two-colour gradient (linear or radial). Keep strong contrast between the code and its background, or scanners struggle.
  • Module shapes — many body-dot styles plus separate styles for the corner finder frames and their centre dots.
  • Logo overlay — upload your own logo or pick from a gallery of famous brand icons. Because a logo covers part of the pattern, use High error correction so the code still scans reliably; a small margin around the logo improves contrast.
  • Transparent background — export without a background so the code sits on any colour or design.
  • Export — download as PNG (high-resolution raster, good for print) or SVG (vector, scales to any size without blur).

Digital business card

A dynamic code can be a digital business card instead of a link. You fill in your details (and an optional profile or company photo) and the code opens a clean, mobile-friendly card with tap-to-call, tap-to-email and a Save to contacts button. Because it's dynamic, you can update your details anytime without reprinting, and you see how many people scanned it.

Scan analytics (dynamic codes)

Every scan of a dynamic code records a lightweight, privacy-respecting event so you can measure performance:

  • Total scans across all your codes and per individual code.
  • Location — approximate country and city, derived from the network, never a precise address.
  • Device type — mobile, tablet or desktop.
  • Browser and operating system.
  • Trend — a daily scan timeline so you can see campaign spikes.

The QR Codes tracker aggregates all of this into a dashboard: headline totals, a 30-day scan chart, and breakdowns by country, device and browser.

A note on privacy

Scan analytics are designed to be useful without being invasive. We store only coarse location (country/city level) and device class. We do not store the raw IP address of the person scanning — it is turned into an irreversible fingerprint used purely to distinguish scans, then discarded. There is no cross-site tracking and no personal profile of the scanner.

Password protection

A dynamic code can require a password before it redirects. When someone scans it they see a small unlock page; only after entering the correct password are they forwarded to the destination. This is a lightweight access gate — useful for private documents, gated content or internal links — not a substitute for real authentication on the destination itself.

Managing your codes

The QR Codes tracker is where dynamic codes live after you create them:

  • Rename a code so it's easy to find later.
  • Edit the destination of any link code in place — the printed pattern keeps working, it just points somewhere new. (A business-card code updates through its card details instead.)
  • Pause and resume a code without deleting it. A paused code stops redirecting.
  • Delete a code (it moves to a recoverable state for 30 days). From the deleted view you can restore it or delete it forever if you're sure.
  • Copy the short link to share it directly, without a printed code at all.

Folders, tags and campaign parameters (Pro)

Once you are running more than a handful of codes, finding one becomes the work. Three tools, all on the same dialog behind a code's menu:

  • Folders. One folder per code — by client, by location, by campaign. The folder rail at the top of the list filters to it in one click, and codes you have not filed stay reachable under "Unfiled". A folder is personal to your account: there are no shared workspaces, seats or roles here.
  • Tags. Several per code, for the cuts a single folder cannot express — printed, menu, spring-sale. Tags work across folders, and the tag row is built from the tags you have actually used, so there is nothing to set up.
  • Campaign parameters (UTM). utm_source, utm_medium, utm_campaign, utm_term, utm_content are attached to the destination at the moment someone scans, not baked into the printed pattern. So a scan arrives in your analytics as its own source — "qr / print / spring-menu" — instead of as direct traffic, and you can rename a campaign months after the flyer went out without reprinting anything. A parameter the destination URL already carries is never overwritten.

All three can also be set while you create the code — the generator's "Folder, tags & campaign" panel writes the same fields — so a code can arrive already filed instead of needing a second pass.

Deleting a folder never deletes the codes in it: they simply become unfiled. And if Pro lapses, everything you have already filed stays visible — only creating new folders and editing the campaign parameters stops.

Every dynamic code redirects through a hostname. On the free setup that hostname is ours — calculatorai.app/qr/AbC123. Pro can point a domain you own at it instead, so the printed code reads qr.yourcompany.com/AbC123.

  • You add a subdomain (qr.yourcompany.com works better than the bare domain, and leaves your main site untouched), create one DNS record we show you, and the connection goes live once DNS propagates — usually minutes, sometimes hours.
  • New codes are created on your domain automatically. Codes printed before that keep their original hostname: what is on paper cannot be changed, so we never quietly move an existing code.
  • Your domain serves your short links and nothing else. Anyone opening it without a code lands on CalculatorAI.
  • Removing a domain stops every code printed with it. The number of affected codes is shown before you confirm.

Why this matters more than it looks. A printed dynamic code belongs to whoever hosts the redirect — including us. That is a real dependency and we say so on our comparison pages. Pointing codes at a domain you own is how you take it back: if you ever leave, you re-point your own DNS instead of reprinting everything you have already put in the world.

Free vs Pro

The generator is free for everyone: unlimited static codes, full customisation, PNG and SVG export — no account required. Dynamic codes need a free account. The free plan includes one active dynamic code so you can try the full flow (editable destination + scan analytics); Pro removes the limit for unlimited dynamic codes, and adds the layer above: folders, tags, campaign parameters and your own short-link domain.

Putting the generator on your own website

The generator can run inside your site as a free widget — one line of HTML, no account, no API key, no approval, no cap on how many pages you put it on. Build the snippet at /embed; the tool's slug is qr-code-generator.

Your visitors get the whole static generator: every content type, colours and gradients, corner and body shapes, error-correction level, a centre logo, adjustable quiet zone, and both PNG (1200×1200) and vector SVG download — with no watermark on anything they produce.

Dynamic codes are the one thing a widget cannot do, and the reason is worth knowing rather than guessing at: a dynamic code needs a short link hosted on our domain and an account to own it, and browsers isolate storage inside a third-party frame, so nobody can be signed in there. The Dynamic tab in the widget therefore opens the full tool instead of pretending to work.

Two settings to know: the widget speaks any of the 10 site languages via ?lang=, and its layout caps at 1152px and stacks into one column in a narrow post, so its default container width is 1200px rather than the 1600px the calculators use. There is no height to set — the widget measures itself and tells your page how tall it needs to be.

The only condition is that the CalculatorAI credit stays visible, inside the widget and in the caption beneath it.

Comparisons and alternatives

If you are weighing this against a paid QR platform, these pages lay out the trade-off honestly, including the places where paying is the right call:

One thing worth knowing before you commit to any provider, this one included: a dynamic code is editable only because somebody hosts the redirect in the middle, so the printed code stops working if that redirect ever does. Pointing dynamic codes at a URL on a domain you own — and doing the final redirect there — turns a change of provider into a config change instead of a reprint. If the destination will never change, a static code sidesteps the question entirely.

Good practice checklist

  • Test-scan the final exported image with more than one phone before printing.
  • Keep high contrast between foreground and background.
  • Use dynamic codes for anything printed or campaign-related.
  • Use High error correction whenever you overlay a logo.
  • Give the code quiet space (a margin) around it on the final artwork.
  • Print at a size appropriate to scanning distance — bigger for posters, smaller for business cards.

Ready to create and measure your codes? Open the QR Codes tracker → or start with the generator →.

Comparison

How we stack up

Honest comparison of CalculatorAI QR Codes vs Bitly, QR Tiger, Uniqode (Beaconstac) and Scanova. Wins and gaps both visible.

Pricing

CalculatorAI

Free with limits + Pro $14.99/mo

Full Pro free for 30 days

Bitly

$8 – $29 / month

Dynamic QR is a paid add-on

Free dynamic QR + analytics

CalculatorAI

Yes, free

Editable + tracked on the free tier

Bitly

Paid feature

Edit destination after printing

CalculatorAI

Anytime

No reprint needed

Bitly

Paid plans

Scan analytics depth

CalculatorAI

Total + unique · country · device · browser

Custom date ranges, top codes

Bitly

Scans · location · device

Password-protect a code

CalculatorAI

Yes

Bitly

Higher tiers

AI that knows your scans

CalculatorAI

Ask “how are my codes doing?”

Reads your scan analytics

Bitly

No

One subscription = whole platform

CalculatorAI

QR + journal + portfolio + calculators + docs

One Pro unlocks everything

Bitly

QR / links only

Design + languages

CalculatorAI

24 types · logo · gradient · SVG

10-language UI, responsive web

Bitly

Styling + logo

Share this comparison

Publish it on your site

For the exact CalculatorAI design, use the live widget. Every option keeps a visible source link.

Full comparison vs Bitly, QR Tiger & UniqodeBest free QR code generator — how we compare

Guides

How-to guides that use this tool

All 2 guides

We use cookies to keep you signed in. Cookie policy