Back to Blog

use cases

QR Codes for Agencies: Managing Client Campaigns

Zahar11 min read
Isometric agency workspace showing three separate client campaigns, placement materials, scan analytics, and an ownership key

For agencies, the hard part of QR codes is not generating them — it is ownership and attribution. Use dynamic codes so destinations stay editable, create a separate code for every placement so you can prove what worked, and agree in writing who owns the codes when the engagement ends. That last one is where agencies get hurt.

At a glance

  • Create the account under the client's own email on day one. PixlQR currently has no team seats, collaborator invites, or code-transfer function, so ownership is decided at signup whether you think about it or not.
  • Use dynamic codes for any client work that needs tracking or an editable destination. You will need to fix a typo or swap a destination. You always do.
  • One code per placement, not one per campaign. Otherwise you can report a total and nothing else.
  • Report comparisons, not absolutes. Scan numbers are estimates. "The window poster beat the table tent four to one" is defensible; "1,204 people scanned it" is not.
  • Put the offboarding terms in the contract while everyone is still happy.

The ownership question nobody asks early enough

A client prints 20,000 flyers with a QR code you generated. Two years later they move to another agency.

Those flyers point at a short link. That short link resolves through an account. If the account is yours, the client's printed material now depends on a relationship that has ended — and on you continuing to pay for a subscription for a client you no longer have.

This goes wrong in both directions:

  • Agency-owned: the client is dependent on you after the engagement ends. Some agencies treat this as leverage. It is short-term leverage and long-term reputational damage, and it will eventually produce an angry client whose codes went dark.
  • Client-owned: cleaner ethically, but you need account access to do the work, and you will be locked out the moment credentials change — often mid-campaign, with no warning.

The principle: the account should belong to the client, not to you. Their printed material is their asset, and it should not depend on your subscription or your goodwill.

Two paths compared: an account in the agency name leaves the client dependent on that subscription after the engagement ends, while an account in the client name makes offboarding a simple credential handover

Being straight about where PixlQR stands today: there are no team seats, no collaborator invites, and no function to transfer codes between accounts. Codes belong to the account that created them. We would rather you read that here than discover it at offboarding.

That has a consequence worth planning around. Operating a client's account currently means the client granting you access to their login — which is a real limitation, not a security best practice, and we are not going to dress it up as one. Shared credentials weaken accountability: you cannot tell who made a change, and revoking one person's access means changing it for everyone.

One specific trap: any sign-up method other than email-and-password has no password to share at all. That covers Google, Microsoft and email one-time codes — those accounts can only be opened by whoever controls that inbox or social login. If you know an agency will operate the account day to day, create it with email and password from the start. Switching afterwards is not always possible.

So, in practice:

  1. Create the account under the client's own email address on day one — their domain, not a shared agency inbox and not someone's personal address.
  2. Use email-and-password sign-in if your team needs operational access.
  3. Agree the access arrangement in writing, including who holds the credentials and when they change.
  4. Hand over at offboarding. Because the account was always in the client's name, this is a credential handover rather than a migration.

Deciding ownership at setup costs one minute. Deciding it at offboarding, when the codes are already on 20,000 flyers, is a negotiation.

Before committing a client's print run to any platform, ask two questions: can this account be transferred or shared, and what happens to live codes if the subscription lapses? Where the answer is that codes cannot be transferred, set the account up in the client's name from the very first code.

How to structure codes across clients

Keep client work separated at the highest level your tool allows, and be boringly consistent with names.

A naming convention that survives contact with reality:

client-campaign-placement-variant

acme-spring24-window-a
acme-spring24-tabletent
acme-spring24-flyer-station-a

Why this matters: in eighteen months, someone who was not you will look at a list of two hundred codes and need to work out which one is on the poster in a shop window in Leeds. A naming convention costs nothing now and is unrecoverable later.

Use folders or campaigns to group by client. Confirm before onboarding a new client that your organisation scheme scales — some tools become unusable past a few dozen codes.

One code per placement

The single highest-leverage decision in agency QR work.

If you print one code across a client's window poster, table tents, flyers and packaging, you learn one number: total scans. You cannot answer the only question the client will actually ask, which is "which of these should we do more of?"

With one code per placement, you can say:

The window poster produced 4× the scans of the table tents. The flyers at Station A outperformed Station B by 3:1, which matches footfall. Recommend reallocating the flyer budget to Station A and dropping table tents.

That is the difference between a report and a recommendation — and recommendations are what clients renew for.

Pair each code with UTM parameters on the destination so the same distinction carries through into the client's web analytics:

yourclient.com/offer?utm_source=qr&utm_medium=print&utm_campaign=spring24&utm_content=window-a

Cost of being wrong: one extra code costs nothing. Not knowing which placement worked costs the client's entire next budget cycle.

Five placements from one campaign compared side by side: the window poster drew nearly three times the scans of the menu insert

Three client campaigns, each with a separate QR code per placement and its own scan count

Reporting numbers you can defend

This is where agencies quietly damage their own credibility.

QR scan counts are estimates, not audited figures. Platforms filter bot traffic, deduplicate rapid repeats, and work from coarse fingerprints rather than a verified headcount. Two people on the same venue WiFi with the same phone model can be counted once. One person scanning on mobile data and again on WiFi can be counted twice.

None of that makes the data useless — it makes it comparative. So report comparatively:

Safe and useful

  • "The window poster generated four times the scans of the table tents."
  • "Scans peaked between 6 and 8 pm, consistent with dinner service."
  • "Scans grew 40% week on week after we changed the call to action."

Not defensible

  • "1,204 people scanned your poster." — you know neither the number nor that they were people.
  • "We reached 1,204 unique customers."

The second kind of claim survives right up until a client compares it against their own analytics and finds a different number. Then every other number in your report is in question.

Also report the right metric. Scans are the top of the funnel, not the outcome. A poster with 500 scans and no conversions performed worse than one with 50 scans and 10 sales. Connect the QR destination to the client's analytics and report what happened after the scan.

White-labelling and what clients actually see

Two things a client will notice:

The short domain. Every dynamic QR code resolves through some domain. Your client's customers may see it briefly during the redirect, and it will appear in the client's analytics as a referrer. Know what that domain is before you print.

Branding on the code or landing page. Free tiers often add a logo or a "powered by" footer. That is fine for internal tests and unacceptable on a client's packaging. Check what the paid tier removes before you quote.

Be straightforward with clients about which tools you use. Agencies that hide their stack tend to be the ones with something awkward in it, and clients find out eventually.

How to price it

Three models, in rough order of how well they hold up:

  1. Pass-through plus management fee. The client pays for their own account; you bill for the work. Cleanest ownership, no margin on software, no surprises.
  2. Bundled into the retainer. Simple to sell. Watch that a client with a hundred codes does not quietly consume the margin.
  3. Marked-up resale. Highest margin, most fragile. Clients discover list pricing, and it is an uncomfortable conversation when they do.

Whichever you choose, be explicit about what happens if the client stops paying. Codes on an expired plan may stop resolving — and the client's printed material stops working. Find out what your platform does in that situation and tell the client in advance.

The offboarding conversation

Have it at onboarding, when nobody is annoyed. Agree in writing:

  • Who owns the account and the codes
  • What happens at the end of the engagement — the client-owned account is handed over, kept running by you for an agreed period, or the codes are retired. Note that "moved to the client's own account" is generally not an option, since codes cannot be transferred between accounts
  • Who pays for the subscription afterwards
  • How historical scan data is handed over, and in what format
  • How long printed material is expected to stay in circulation

That last point drives everything else. A campaign flyer has a six-week life. Product packaging can be in circulation for years. The codes must outlive the engagement, and that is a commercial decision, not a technical one.

Frequently asked questions

Can I transfer QR codes to a client later? Not on PixlQR today — there is no transfer function, and codes belong to the account that created them. That is exactly why the account should be in the client's name from the first code, so handover is a credential change rather than a migration. Check the same thing for any other platform before you print.

How many codes does a typical client campaign need? One per distinct placement you want to measure separately. A single-venue restaurant might need three. A national retail rollout might need one per store.

Should each client have a separate account or a shared agency account? Separate, created under the client's own email. It is more admin, and until proper collaborator access exists it means agreeing an access arrangement with each client — but it removes almost every ownership dispute before it can happen, and it means nothing breaks when the engagement ends.

What if a client wants to keep using the codes but not pay? This is why the offboarding terms matter. Decide it in advance, in writing.

Can I show clients live scan data? Yes on most platforms, and it is worth doing — it builds trust and reduces reporting work. Just make sure they understand what the numbers are before they see them.


Try it yourself

Set up a client campaign with a code per placement and see the comparison for yourself.

Organise your first client campaign — free plan, no card required.

Use the seven-day trial to test the whole workflow — it includes folders, full analytics and no PixlQR branding. After it ends the free plan allows two dynamic codes, no folders, and leaves the branding in place. Ongoing client work generally needs a paid plan, which is the point of the pass-through model above: the client pays for their own account and you bill for the work.

agenciesqr-code-analyticsdynamic-qrmarketingclient-reporting

Try it: build a QR code here

An interactive builder loads in this space. If it stays empty, enable JavaScript to use it — or create an account and build your QR code in PixlQR.

Organise a client campaign

One code per placement, so you can prove what worked.

Get started free

No card required