QR Code A/B Testing: How to Find Out Which Version Actually Works
A team prints two versions of a flyer with different calls to action, distributes both, and a month later can't tell which one won because the scans are tangled together. Here's how to run a clean QR code A/B test with two dynamic codes, no Google Analytics required.
Sarah Johnson
Content Strategist
A marketing team designs two versions of a flyer. One says "Scan for 20% off." The other says "Scan to see what's new." Same product, same layout, different call to action. They print both, distribute them, and a month later they have a stack of scan numbers and an argument, because nobody set it up so the two versions could actually be compared. The data exists, but it's tangled together, and no clear winner comes out of it.
QR code A/B testing fixes this, and it's simpler than most guides make it sound. You don't need statistical software or a Google Analytics pipeline. You need two dynamic codes, one changed variable, and a way to compare scans cleanly.
Why Most QR Campaigns Are Launched on a Guess
Most QR code campaigns get launched on instinct. Someone picks a design, writes a call to action, chooses a landing page, prints the run, and hopes it lands. If it does well, nobody knows why. If it does badly, nobody knows what to fix. The next campaign starts from the same blank slate.
A/B testing replaces that guesswork with evidence. You run two versions that are identical except for one thing, and you measure which one performs better. The point isn't a single winning flyer. It's that every test teaches you something about your audience that makes the next campaign stronger. That knowledge compounds. After a few cycles, you're not guessing at all, you're working from your own data about what your specific audience responds to.
The One Rule That Makes a Test Valid: Change Only One Thing
This is where most informal testing falls apart. A team changes the headline, the image, and the offer all at once, sees one version win, and has no idea which change drove the result.
A valid test isolates a single variable. Keep everything else identical, the layout, the audience, the distribution window, the destination, and change one thing. Then you know with certainty that the difference in performance came from that one change.
The variables worth testing, one at a time:
The call to action. "Scan for 20% off" against "Scan to see the collection." Wording often has the biggest single impact, because people scan when the CTA promises a clear, specific outcome, not a vague one.
The code's placement on the material. The same code at eye level versus at the bottom of the flyer. Placement changes scan rates more than most people expect.
The design around the code. A code with a framed "Scan here" prompt versus a bare code. A branded code versus plain black and white.
The offer itself. 20% off versus free shipping. This tests the incentive rather than the wording.
Pick one. Test it. Then move to the next.
How to Run the Test With Two Dynamic Codes
Here's the practical method, the one a marketing team can actually run without special software.
Create two separate dynamic QR codes, one for each version. Both can point to the same destination if you're testing the CTA or design, or to different destinations if you're testing the offer. Because each version has its own code, the scans stay cleanly separated from the first day. Version A's scans never get mixed up with version B's.
Dynamic codes are essential here, not optional. A static code generates no data at all, so there's nothing to compare. Only dynamic codes record the scans that make a test possible. As the static vs dynamic QR code guide explains, this tracking is the entire reason dynamic codes exist, and without it A/B testing simply can't happen.
In QrBreeze, you group both codes into one campaign and tag each by its version. The dashboard then shows each code's scans side by side, so the comparison is just there when the test ends. No UTM strings to build, no GA4 to configure. The two numbers sit next to each other and tell you which version won.
Run Both at the Same Time, Not One After the Other
Timing quietly ruins more tests than bad design does. If you run version A in the first two weeks of the month and version B in the second two weeks, any difference might come from the timing, not the creative. A payday week, a holiday, a local event, or just weather can make one period busier than another.
Run both versions simultaneously across similar audiences. That way the only meaningful difference between them is the variable you're testing, and the result actually means what you think it means.
Don't Call a Winner Too Early
The most common mistake after launching is checking results on day three, seeing one version ahead, and declaring it the winner. Small samples swing wildly. A version that's ahead early often isn't ahead by the end.
A practical rule: let the test run at least two weeks, and aim for a meaningful number of scans on each version before drawing conclusions, ideally a couple hundred per version, before you trust the result. And look for a real gap. If one version beats the other by 2%, that's noise. If it beats it by 15% or more, that's a signal worth acting on.
Once you have a clear winner, it becomes your new baseline. The next test challenges that baseline with one new change. That's the loop that drives real improvement over time.
Scan Rate Beats Scan Count When Versions Had Different Reach
If both versions were distributed in equal numbers, comparing raw scans is fine. But if version A went on 1,000 flyers and version B went on 500, raw counts mislead.
This is where logging your print runs matters. QrBreeze's print run analytics lets you record how many copies of each version went out and calculates the scan rate for each, scans divided by copies distributed. That puts both versions on equal footing. A version that earned 80 scans from 500 copies (16%) beat a version that earned 100 scans from 1,000 copies (10%), even though its raw count was lower. Scan rate is the honest comparison.
How Marketing Teams Use This
Retail and ecommerce teams test two offers on the same in-store signage, free shipping against a percentage discount, to learn which incentive their customers actually move on.
Event marketers test two CTAs on booth signage at a trade show, running both at the same booth to see which wording pulls more scans from passing attendees.
Product teams test code placement on packaging, one version with the code on the back panel, one on the side, to learn where customers actually look.
Agencies run the same test structure across clients, building a library of what works, which CTAs, which offers, which placements, and bringing proven patterns to every new campaign instead of starting from scratch.
Frequently Asked Questions
What is QR code A/B testing?
It's running two versions of a QR code campaign that differ by exactly one variable, the call to action, design, placement, or offer, and comparing which version gets more scans or conversions. It replaces guesswork with evidence about what your audience actually responds to.
Do I need Google Analytics to A/B test QR codes?
No. You can run a clean test using two separate dynamic codes and comparing their scan performance directly. A platform like QrBreeze shows each code's scans side by side, so you don't need UTM parameters or a GA4 setup to see which version won.
How many scans do I need before trusting the result?
Aim for at least a couple hundred scans per version and run the test for a minimum of two weeks. Small samples produce unreliable winners. Also look for a meaningful gap, a difference of 15% or more is a signal, while a few percent is usually just noise.
Can I test more than one thing at once?
You can, but you shouldn't. If you change the headline, image, and offer together and one version wins, you won't know which change caused it. Change one variable per test so the result is interpretable, then test the next thing.
Why do I need dynamic codes for A/B testing?
Static codes record no scan data, so there's nothing to compare. Dynamic codes track every scan, which is what makes measuring a test possible. They also let you update destinations later without reprinting, so a winning version can be rolled out everywhere instantly.
Enjoyed this article?
Share it with your network
Was this article helpful?
Let us know if this article was useful to you
Written by
Sarah Johnson
Content Strategist
Sarah is a content strategist with 8+ years of experience in digital marketing. She specializes in helping businesses leverage technology to improve customer experiences.




