WhatsApp Business के लिए QR कोड: विश्लेषण और प्रदर्शन पर नज़र रखना
WhatsApp Business के लिए QR कोड की शक्ति का अनुभव करें: एनालिटिक्स पर नज़र रखें और प्रदर्शन को बेहतर बनाएँ। अपनी पहुँच बढ़ाएँ और जुड़ाव बढ़ाएँ।
अंतर्वस्तु
What a WhatsApp QR code can and cannot tell you
QR codes for WhatsApp Business are the shortest path from a printed surface to a live conversation: someone points a camera at a table tent, a delivery box or a shop window, and a chat thread with your number opens on their phone. What they are not is a measurement system. If you have read that WhatsApp reports how many times your code was scanned, or that adding UTM parameters to a wa.me link will make those scans show up in Google Analytics, both claims are false, and building a reporting process on them will produce numbers that quietly mean nothing.
Meta is unusually direct about this in its own developer documentation for WhatsApp QR codes and short links: "Analytics are not available for QR Codes and Short Links as we limit the amount of data we log to protect user privacy." There is no scan counter in the WhatsApp Business app, no scan endpoint in the Business Management API, and no scan dimension in WhatsApp Manager. The absence is deliberate, not a feature that is coming later.
That does not leave you blind. It means the measurement has to happen in layers you own — a redirect on your own domain, a distinct pre-filled message per placement, or a distinct phone number per placement — rather than inside WhatsApp. This guide separates the two categories precisely: what is genuinely measurable, how to instrument it, what each method is blind to, and how to read the resulting numbers without fooling yourself.
The two kinds of WhatsApp QR code, and why the difference matters
Before you can decide what to track, you need to know which code you are holding. They look identical and behave very differently.
The code inside the WhatsApp Business app
The free WhatsApp Business app generates one QR code and one short link for the account, reachable from the app's business tools. It opens a chat with your number, optionally with a message already typed into the composer. You can reset it, which invalidates the old one, but you cannot have several of them at once. One account, one code. That single constraint is what makes placement-level attribution impossible for small businesses that stay inside the free app — every poster, flyer and receipt points at the same undifferentiated destination.
Codes and short links on the WhatsApp Business Platform
On the Business Platform (the API tier), you create QR codes programmatically against a registered phone number, and you can create many of them. Each one carries its own pre-filled message of up to 140 characters, and each is fully editable and deletable after the fact. Meta describes the accompanying short link as one that "reduce[s] the syntax of the URL to a random code, which eliminates the need to embed messages in the URL and masks the phone number" — useful when you do not want a printed asset to expose the number itself.
Multiple codes with different pre-filled messages is the closest thing WhatsApp gives you to native segmentation. It is still not analytics: Meta creates the codes, it does not count them. What it gives you is a way to make the inbound message itself carry the identifier, which is the trick the rest of this guide is built on.
What you genuinely cannot measure
Three claims circulate constantly in QR-code marketing content. All three are wrong, and each one leads to a different kind of bad reporting.
WhatsApp does not count your scans
There is no per-scan figure anywhere in WhatsApp's own surfaces — not scan totals, not scans by day, not scans by device or city. Any dashboard showing you "WhatsApp QR scans" is either counting requests to a redirect that sits in front of WhatsApp, or it is inventing them. Ask the vendor which, and if the answer is a redirect, then what you are looking at is redirect traffic with all the caveats that implies.
UTM parameters on a wa.me link do not reach Google Analytics
This is the most damaging misconception, because the link looks like it is working. Google Analytics reads utm_source, utm_medium and utm_campaign when its measurement tag fires on a page load — which means the parameters have to arrive at a page that you have tagged. A wa.me link does not resolve to a page you control. It hands off to the WhatsApp application on the device. Your Google Analytics tag never executes, no hit is ever sent, and the campaign values you so carefully appended are simply discarded along with every other query parameter WhatsApp does not recognise.
Worse, the failure is silent. You will not see an error, a zero row or a warning. You will see nothing at all, and "nothing at all" is easy to misread as "the campaign underperformed". If you want the campaign values to be recorded, they must be attached to a URL on a domain you own, and that URL must do the redirecting. Build the parameters with a UTM builder so the naming stays consistent, then attach them to your own redirect endpoint — never to the wa.me address at the end of the chain.
There is no scan-linked view of conversation behaviour
Claims that QR codes let you measure "conversation length after a scan", "inquiry type by code" or "customer behaviour following the scan" describe a join that does not exist. WhatsApp never tells you a message arrived because of a scan, so there is no key to join a scan event to a thread. You can measure conversation behaviour — your inbox or CRM knows how long threads run and what people ask — but you can only attribute it to a placement if the message itself carries an identifier. That is a thing you build, not a thing you read.
What you actually can measure
Four layers are available, and they measure genuinely different events. Most teams need two of them, not all four.
Layer 1: a redirect you own
Instead of encoding the WhatsApp link directly, encode a URL on your own domain and have that URL log the request and then redirect to WhatsApp. This is the only layer that gives you anything resembling scan-time data: timestamp, coarse geography, user agent, and whichever campaign parameters you attached.
- Create one path per physical placement. Not one per campaign — one per placement. /go/table-tent-12, /go/window-decal, /go/invoice-insert. Placement is the unit you will actually want to compare later.
- Append your campaign parameters to that path, so the hit is classified correctly if you are also logging it in your web analytics.
- Build the destination WhatsApp link in international format with the pre-filled text you want, and URL-encode the message before it goes into the query string.
- Return a 302, not a 301. A permanent redirect gets cached by the browser and the OS, and a cached redirect never touches your server again — so repeat scans vanish from your logs and you undercount.
- Verify the chain end to end with a redirect checker before anything goes to print. Confirm you get exactly one hop, the right status code, and the correct final URL. A print run is not something you can patch.
- Generate the code from the redirect URL, then scan the printed proof with a QR code reader and read back the decoded string character by character.
The honest caveat: your redirect logs requests, not humans and not scans. Link-preview bots, security scanners and messaging-app crawlers all hit redirect URLs. Treat the raw number as an upper bound, and filter obvious non-browser user agents before you report it.
Layer 2: a unique pre-filled message per placement
This is the most reliable attribution method available, and it is the one most guides skip. WhatsApp's click-to-chat format lets you pre-load the composer with text. Put a short, human-readable reference in it — "Hi, I'd like to book a table (ref: TT12)" — and every conversation that starts from that placement arrives in your inbox already labelled.
Unlike a redirect hit, this measures something that unambiguously happened: a real person sent you a real message. It is the metric that maps to revenue. Its weakness is the mirror image of its strength — the text sits in an editable composer, so anyone can delete or rewrite it before sending. Expect systematic undercounting, keep the reference short and unthreatening so people leave it alone, and never present the codeword count as a total.
Assemble the link with a WhatsApp link generator so the number formatting and encoding are handled for you, and if you are hand-writing the message, run it through a URL encoder first — an unencoded space, ampersand or hash mark will truncate your pre-filled text at exactly the wrong place.
Layer 3: a distinct phone number per placement
The Business Platform's analytics break down by phone number. Give a high-value channel its own number and you get clean, WhatsApp-native separation of conversation volume with nothing to configure and nothing for the customer to accidentally delete. It is the sturdiest method and the most expensive one: each number needs registration, verification and staffing, and the granularity is coarse — a number per channel is realistic, a number per table tent is not.
Layer 4: the Business Platform's aggregate analytics
Once conversations exist, WhatsApp does report on them — just not by scan. The Business Platform exposes messaging analytics (message volume by phone number, product type and country code), conversation analytics (cost and conversation counts broken down by category, direction, country and phone number), pricing analytics, and template analytics covering sends, deliveries, reads and button clicks.
Two limits are worth planning around. Template analytics carry a 90-day lookback. And as of 1 December 2025, the maximum lookback for messaging, conversation and pricing analytics moved from ten years to one year — so if you need multi-year trend data, export it on a schedule rather than assuming it will still be there.
Comparing the methods
| Method | What it really counts | Where the data lives | Main blind spot |
|---|---|---|---|
| WhatsApp's own QR code / short link | Nothing — Meta logs no scan data | Nowhere | Total; there is no number to read |
| Redirect on your own domain | Requests to your endpoint | Your server logs and web analytics | Counts bots and previews; cannot see whether a message was sent |
| Third-party dynamic QR platform | Requests to the vendor's redirect | Vendor dashboard | Same as above, plus you do not own the redirect or the history |
| Unique pre-filled text per placement | Messages actually sent | Your inbox, CRM or webhook | Undercounts — users can edit or delete the text |
| Separate phone number per placement | Conversations per number | WhatsApp Manager / Platform analytics | Costly; too coarse for individual assets |
| Platform messaging & conversation analytics | Volume, category, direction, cost | WhatsApp Manager / API | Aggregate only; never attributable to a scan |
The practical combination for most businesses is layer 1 plus layer 2: your redirect gives you the top of the funnel, the codeword gives you the bottom, and the gap between them is the number that actually tells you something.
Getting the link right so it survives the handoff
Attribution fails at the encoding stage more often than at the strategy stage. The click-to-chat format takes the phone number in full international form — country code included, with no plus sign, spaces, dashes, brackets or leading zeros — and an optional pre-filled message passed as the text parameter. Every character of that message that is not URL-safe must be percent-encoded.
| Part of the chain | What goes wrong | How to check it |
|---|---|---|
| Phone number | Leading zero or a stray "+" produces a dead link | Strip to digits only, country code first |
| Pre-filled message | Unencoded spaces and ampersands truncate the text | Encode it, then decode it back and compare |
| Redirect status | A 301 gets cached and repeat scans stop being logged | Confirm a 302 in the response headers |
| Shortener in the middle | Extra hops add latency and a second point of failure | Expand the chain and count the hops |
| Printed code | Encodes a stale or wrong URL | Decode the physical proof, not the digital file |
If a code is already in the field and you are not certain what it points at, decode it and then run it through a URL decoder to read the query string, and the pre-filled message, exactly as the customer will see them. Where an agency handed you a shortened link, expand it with a URL unshortener so you know whose redirect is sitting between your poster and your inbox.
Reading the numbers without fooling yourself
Once both layers are running you will have two different numbers for the same placement, and they will not match. That gap is informative, not a bug.
Redirect hits sit above message sends, because some hits are bots, some people open WhatsApp and abandon, and some delete the pre-filled reference. Message sends sit below reality, because of that same deletion. Neither number is the truth; the ratio between them, tracked consistently over time, is what you should be watching. A placement whose ratio suddenly drops has usually developed a physical problem — a code obscured by a display, a poster moved somewhere with no signal, a reference the wording of which now looks like spam.
Set the denominator explicitly and write it down. "Conversations per thousand filtered redirect hits" is a defensible metric. "Scan-to-conversion rate" is not, unless you can say precisely which of your two numbers is the scan. Compare placements against each other rather than against an industry benchmark, because the filtering you apply is yours alone and nobody else's figure was computed the same way.
Physical decisions that change the measurable number
Everything above assumes the code scans on the first try. When it does not, you lose the customer before any layer of instrumentation has a chance to fire.
- Keep the quiet zone. The QR specification calls for a clear margin of four modules on all sides. Designers crop it constantly, and a cropped code fails on older cameras first — the exact devices your least technical customers are holding.
- Size for the reading distance. A widely used field rule of thumb is that the printed code should be roughly one-tenth of the intended scanning distance across. A window decal read from three metres needs to be far larger than a code on a business card.
- Keep contrast high and polarity conventional. Dark modules on a light background. Inverted codes, low-contrast brand palettes and codes over photographs all cost you scans.
- Cap the logo overlay. Error correction tolerates a centred logo, but every pixel of it eats into the same redundancy that compensates for glare, creasing and a shaky hand.
- Keep the encoded string short. Long pre-filled messages inflate the URL, which raises the module count and shrinks each module at a fixed print size. This is a further reason to put the message on the redirect's far side rather than in the printed code.
- Test on the oldest phone in the building, in the light the code will live in, at the distance a customer will stand.
Generate the final asset at print resolution with a QR code generator, and always scan the proof rather than trusting the preview.
Mistakes that quietly destroy attribution
- Encoding the wa.me link directly into the printed code, which removes the only layer you could have measured and makes the destination unchangeable.
- Appending UTM parameters to the WhatsApp link instead of to your redirect, producing a campaign that reports nothing at all.
- Using one code across every placement and then trying to reconstruct which one worked.
- Resetting the WhatsApp Business app code while printed material is still circulating, which kills every asset in the field at once.
- Making the pre-filled reference look like a tracking string. REF-9f2a-CAMPAIGN-Q3 gets deleted; "(ref: TT12)" usually survives.
- Reporting redirect hits to stakeholders as "customers", when the number includes every scanner and preview bot that touched the URL.
Frequently asked questions
Does WhatsApp show how many times my QR code was scanned?
No. Meta's documentation states plainly that analytics are not available for QR codes and short links, because it limits the data it logs to protect user privacy. No scan count exists in the WhatsApp Business app, in WhatsApp Manager, or in the Business Management API.
Can I use UTM parameters on a wa.me link to track it in Google Analytics?
No. Google Analytics records campaign parameters only when its tag fires on a page load, and a wa.me link opens the WhatsApp app rather than loading a page you have tagged. The parameters are discarded and no hit is sent. Attach them to a redirect URL on your own domain instead, and let that URL forward to WhatsApp.
What is the most reliable way to tell which poster a conversation came from?
A distinct pre-filled message per placement. It travels inside the message the customer sends, so it survives the app handoff that breaks every URL-based method. It undercounts, because people can edit the composer before sending, but everything it does count is a genuine inbound conversation.
Should I use a third-party dynamic QR platform instead?
A dynamic QR vendor is doing exactly what your own redirect would do, with a dashboard attached. That is a reasonable trade if you do not want to run the endpoint yourself. Be clear that you are renting the redirect: if the subscription lapses, printed codes pointing at that domain stop working, and the historical data belongs to the vendor.
Do separate phone numbers really give cleaner data?
Yes, because WhatsApp's own messaging and conversation analytics break down by phone number, so the separation is native and cannot be undone by a customer editing a message. The cost is registration, verification and staffing per number, which makes it sensible per channel and impractical per printed asset.
How far back does WhatsApp's conversation data go?
Template analytics have a 90-day lookback window. As of 1 December 2025, the maximum lookback for messaging, conversation and pricing analytics changed from ten years to one year. If you need longer history, export it on a schedule rather than relying on the platform to retain it.
Where to start
Pick your two highest-traffic physical placements. Give each one a redirect path on your own domain, point that redirect at a WhatsApp link carrying a short, natural-sounding reference, and print codes generated from the redirect URL rather than from the WhatsApp address. Scan the physical proofs before the run goes out. After four weeks you will have redirect hits and referenced conversations for both, and the comparison between them will tell you more than any scan counter would have — because it is measuring the thing you actually care about, which is people who started talking to you.
The goal is not to recover the analytics WhatsApp declines to provide. It is to stop needing them, by moving the measurement to the one part of the journey you control.
The UrwaTools Editorial Team delivers clear, practical, and trustworthy content designed to help users solve problems efficiently. Our articles focus on accurac...