Smartphone scanning a QR code sticker on a shop window
The scan is not the outcome. It is the first piece of first-party data you have ever collected from a cardboard box.
Disclosure
I founded QRCodeStack, which sells the kind of dynamic QR codes this post describes. I have tried to write the version I would want to read if I were evaluating this idea from the outside — including the parts that argue against buying anything. Where a number comes from a QR vendor's own blog, I say so, because that data is self-reported and directionally useful at best.

QR code retargeting is the practice of routing a printed QR scan through a redirect and landing page you control, so that an anonymous physical touchpoint — a box, an insert, a postcard, a shelf tag — becomes a measurable event and a targetable advertising audience. It is the mechanism that gives offline marketing the feedback loop digital has always had: a scan carries a code ID you assigned to that exact printed object, an advertising pixel on the landing page can add the scanner to a custom audience, and a single question on that page captures declared intent instead of inferred intent. The code itself is a commodity. The return path behind it is not.

The Thank-You Note That Went Nowhere

I bought a set of envelopes and postcards recently. Small brand, clearly founder-run, and the packaging showed it — the box had been packed by someone who cared. Inside was a handwritten thank-you note and a little printed card with a few brand marks on it.

I was, at that exact moment, as warm toward that business as I would ever be. Product in hand, expectations met, the small hit of pleasure you get when a purchase turns out well. That is a state that costs most companies fifty dollars a head to manufacture with advertising, and this founder had produced it for the price of a card and a pen.

And then nothing happened. There was no way for me to do anything with that feeling. No way to tell them it landed. No prompt to review it. No hint that they would like to hear what I thought. I put the card in a drawer, and the warmest moment in the entire customer relationship evaporated into a cardboard recycling bin.

That is not a QR code problem. That is a design problem — the business had built a beautiful physical touchpoint with no return path. But a QR code is the cheapest return path that exists, and almost nobody uses it as one. They use it as a redirect to their homepage, which is roughly like installing a doorbell that plays your company's mission statement.

This post is about the other thing you can do with it: raise the engagement rate on physical touchpoints, capture declared customer intent at the moment of highest warmth, and turn what was previously an unmeasurable offline impression into a retargetable digital audience. That last part is the one people underestimate. It is how a cardboard box gets a lookalike audience.

Why Post-Purchase Is the Best Inventory You Own

Start with the physics of attention, because that is what makes this work.

A billboard reaches someone driving. A display ad reaches someone reading something else. An email reaches someone triaging a hundred other emails. Every one of those is an interruption competing against whatever the person actually wanted to be doing.

A package reaches someone who ordered it, is holding it, and is looking directly at it. The intent is not inferred from a cookie. It is a completed transaction. This is the only advertising surface where the audience has already paid you.

The published numbers reflect that gap, though you should read them with a healthy squint. Consumer surveys across the QR platform category in 2026 put the figure at 61% of shoppers having scanned a QR code on a product after purchase, with product packaging now the second most common QR placement among marketers, just behind email. The largest published CPG benchmark set — drawn from roughly 46.9 million scans across 28 brands — puts typical packaging scan rates in the 8–15% of units band, with connected-packaging campaigns averaging near 14%. Packaging inserts, the little card in the box, land around 5–12% when the code carries a specific offer rather than a bare "scan here."

Hold those next to a marketing email, where a click-through rate in the low single digits is a normal result and anything above 5% is a good day. The packaging insert is competing in a different weight class, and it is competing with a message the customer opted into by buying.

The scan rate is high not because QR codes are magic, but because you are asking a question of someone who already said yes. Everything in this post is downstream of that one fact.

A caveat I want to put early rather than bury: these figures come from QR platform vendors publishing their own aggregate data. That sample is biased toward brands invested enough in QR to be measuring it at all, which is exactly the population most likely to be doing it well. Use them to size an opportunity, not to build a forecast. Your own first print run is the only benchmark that will ever actually apply to you.

Part 1 — Raising the Engagement Rate

Most brands that add a QR code to packaging see a disappointing number and conclude QR codes do not work. Almost always, the code was fine and the offer was missing. Four things move engagement more than everything else combined.

1. Say what the scan gives them

The single most repeatable finding across the benchmark data is that a code labelled with its payoff beats an unlabelled code by roughly three to four times on equivalent placements. "Scan me" is a request. "Scan for the 90-second setup video" is an offer. "Scan to register your 2-year warranty" is an offer with a deadline attached.

This is the cheapest change on this list and the one most often skipped, because the code arrives from the design team as a graphic element rather than as a piece of copy. It is a piece of copy. Write it like one.

2. Give before you ask

The instinct is to point the code straight at a review form, because reviews are what the business wants. That inverts the exchange. The customer has already given you money; the next thing they receive should not be another request.

The sequence that works is: deliver something useful first — setup guide, care instructions, warranty registration, recipe, a founder's note that is actually worth reading — and then ask. The ask converts better because the page has already proven it was worth opening, and because you have earned the second interaction rather than spending the first one.

3. Ask one question, and make it a router

This is the piece I think is genuinely underused, and it is the heart of the whole idea.

Do not put a survey behind the code. Put a fork behind it. Three or four buttons, one screen, no form:

Scan → "How is it going?" ┌── I love it → review page (Google / Amazon / Trustpilot) │ ├── Something's wrong → support: WhatsApp thread, prefilled with order ID │ ├── I want more → reorder page + returning-customer code │ └── I have feedback → two-field form, routed to the founder's inbox

Four consequences fall out of this, and they compound:

  • Every branch converts better than a generic landing page, because the customer selected their own destination. You are not guessing at intent; they told you.
  • Unhappy customers get intercepted before they get to a public review. Not by suppressing them — more on that below — but by giving them a faster, more satisfying route to an actual resolution than a one-star review would be.
  • The intent mix is a product metric. If the "something's wrong" branch is taking 22% of scans on SKU-1042 and 4% on everything else, you have found a manufacturing or instruction problem weeks before it shows up in returns data. That is worth more than the marketing outcome.
  • Each branch becomes a distinct audience. This is where Part 3 picks up.

One firm caveat: routing is not review gating. Sending only happy customers to a review platform while quietly diverting unhappy ones is a violation of Amazon's and Google's policies and will get your reviews wiped. The defensible version offers every customer a route to a public review — it just leads with the option that actually helps the person who is having a bad time. Design it so that a customer who picks "something's wrong" and then wants to leave a one-star review can still get there in one tap.

4. Respect the physics of the placement

Boring, mechanical, and responsible for a lot of "QR codes don't work" conclusions:

  • Size to distance. The working rule of thumb is code width ≈ scanning distance ÷ 10. A code read at arm's length can be 2–3cm; a code on a window read from the pavement cannot.
  • Keep the quiet zone. Four modules of clear margin on all sides. Designers routinely crop it to make a layout breathe, and it breaks scanning.
  • Dark on light, high contrast. Inverted codes fail on a meaningful share of camera apps. Brand colours are fine; low contrast is not.
  • Never on a fold, seam, or shrink wrap curve. Distortion is unrecoverable.
  • Land on a fast mobile page. The scan happens on a phone, sometimes on cellular, often standing up. If the destination is a slow desktop-first page with a cookie wall and a newsletter modal, you have converted a warm customer into an annoyed one.

And test the printed artefact, not the PDF. Print it, in the final size, on the final material, and scan it with a cheap Android phone in bad light. Glossy stock under a kitchen bulb defeats more codes than any design decision.

Part 2 — What a Scan Actually Gives You

Here is where expectations need calibrating, because vendors are vague about this and it matters.

A dynamic QR scan gives you: timestamp, device type, operating system, browser, and approximate city-level location from IP. That is the honest list. It does not give you a name, an email, a phone number, or an identity. Those arrive only if the customer hands them over on the landing page.

Which means the most valuable field in the whole dataset is the one you create: the code ID.

The one-code-per-thing rule

A single QR code used across every box, every insert, every store and every campaign produces one undifferentiated number. A distinct code per physical variant produces a channel report for media that has never had one.

Pick a naming convention before you print anything, because you cannot retrofit it. Mine is four dot-separated segments — channel.geo.asset.variant:

pkg.us.sku1042.insert-a ← insert design A, SKU 1042, US fulfilment pkg.us.sku1042.insert-b ← insert design B, same SKU (A/B test) box.us.sku1042.lid ← printed on the box lid itself mail.uk.q3promo.postcard ← Q3 direct mail, UK pos.in.blr-koramangala.tent ← table tent, one specific store evt.us.expo26.badge ← trade show badge

Now every scan carries the identity of the physical object it came from, and questions that were previously unanswerable become trivial:

  • Does insert design A beat design B? You just ran a real A/B test on print media.
  • Which of your 40 retail doors actually drives engagement, versus which just moves units?
  • Did the ₹4 lakh trade show produce anything measurable other than a lanyard collection?
  • Did the batch that shipped in March generate a spike in the "something's wrong" branch? That is a quality signal with a batch number attached.

Bulk generation is the enabling feature here — one code per SKU is manageable by hand, one code per store per campaign per quarter is not. Most platforms offer CSV or API bulk creation on their mid tiers; my own dynamic QR code generator, QRCodeStack, includes it from the $12/month Pro plan alongside the Meta, Google and TikTok pixels, and I compared the alternatives in The Best QR Code Generators if you want the landscape rather than my own product.

The second-most valuable field: the branch they picked

Device and city are demographics. The branch a customer selects on that router screen is declared intent, and declared intent is a strictly better signal than anything the ad platforms infer for you. Meta thinks you might be in market because of what you scrolled past. Your QR router knows, because the customer pressed a button that said so, while holding your product.

Store that branch selection against the code ID and the timestamp, and you have the spine of the whole system.

Part 3 — Retargeting Offline Marketing at Scale

Now the part that changes the economics.

Offline media has always had the same structural weakness: you cannot retarget a billboard. Someone sees your postcard, feels mildly interested, puts it down, and is gone forever. There is no pixel on cardboard.

A dynamic QR code fixes precisely that, because the scan does not go straight to the destination. It goes through a redirect you control, and lands on a page you control — and a page you control can carry a Meta pixel, a Google Ads tag via GTM, a TikTok pixel, a LinkedIn Insight Tag.

How an offline QR scan becomes a retargeting audienceA physical touchpoint carries a dynamic QR code. The scan passes through a redirect you control and lands on a page you control. From there three things happen in parallel: the scan is logged server-side with its code ID, the customer declares intent by picking a branch, and an advertising pixel fires only after consent. The server log and declared intent produce per-SKU attribution; the pixel and declared intent produce a segmented custom audience and lookalike seed.Physical touchpointbox · insert · postcard · shelf tagDynamic QR → your redirectcode ID: pkg.us.sku1042.insert-aLanding page you controlvalue first, then one questionServer-side logalways — never needs the pixelDeclared intentthe branch they pickedAd pixelonly after consentAttributionscan rate per SKU, batch, store, variantAudiencesegmented retargeting + lookalike seeddashed = only happens with consent
The return path. Everything left of the pixel keeps working when consent is declined — which is why measurement should never depend on the advertising layer.

That is the whole trick. The person who touched a physical object is now a member of a digital audience, and everything the ad platforms can do with an audience — retargeting, exclusion, lookalike expansion, conversion attribution — becomes available to media that previously could only be measured by vibes and coupon codes.

Audiences worth building

The naive version is one audience: "everyone who scanned." That already beats nothing. The version worth building segments by the branch:

Branch the customer picked What it means Ad-platform action
"I love it" Verified satisfied buyer Seed a lookalike audience. Suppress from acquisition ads — they already bought. Target with cross-sell and referral.
"Something's wrong" At-risk customer, live issue Suppress from all paid media until resolved. Nothing burns goodwill faster than a discount ad for the product currently failing in their kitchen.
"I want more" Repeat-purchase intent, stated Highest-value retargeting segment you will ever build. Reorder creative, timed to the consumption cycle of the SKU.
"I have feedback" Engaged, invested customer Community, beta list, referral programme. Rarely a paid-media target at all.
Scanned, no branch Curious, low commitment Standard retargeting pool. Weakest signal in the set, still better than a cold audience.

Note how much of that column is suppression. Most people hear "retargeting" and think about who to chase. Half the value here is knowing who to leave alone — and offline media has never before been able to tell you that. If you have ever watched a customer complain publicly that they are being served ads for a product that just broke on them, this is the fix.

The lookalike arbitrage

The under-appreciated move: your "I love it" segment is a list of people who bought and confirmed satisfaction. That is a far cleaner lookalike seed than "everyone who hit the purchase pixel," which includes everyone who later returned the item, charged it back, or regretted it.

Seed quality is the highest-leverage variable in lookalike performance and the one most teams never touch. Feeding Meta a smaller, verified-happy seed instead of a large, noisy purchase list is one of the few remaining ways to get genuinely better prospecting audiences out of a platform that has otherwise closed most of its levers. If you have not thought hard about who your best customers actually are, that exercise is worth doing first — I wrote up how in Getting Your Ideal Customer Profile Right.

Scaling it without it becoming a full-time job

Three mechanics make this operate at volume rather than as a one-off campaign:

  • Bulk generation. Codes per SKU × per market × per insert variant multiplies fast. Generate from a CSV or an API, not a web form.
  • Editable destinations. This is the real reason dynamic codes matter, and it is a risk argument before it is a marketing one. You printed 50,000 inserts pointing at a Q3 promo. Q4 arrives. With a static code you have 50,000 pieces of landfill; with a dynamic code you repoint the destination and the same paper keeps working. The same property saves you when a landing page 404s at 11pm.
  • Device and geo routing. One printed code, different destinations: iOS to the App Store, Android to Play, an Indian scan to the ₹ storefront, a US scan to the $ one. You cannot reprint a box per market. You can route per scan.

The Measurement Model

If you take one structural idea from this post, take this funnel. It is the thing that lets you argue for print budget the way a performance marketer argues for ad budget.

Units shipped / assets placed ← your real denominator, and you own it ▼ scan rate Scans (total) ▼ unique-scan ratio Unique scanners ▼ engaged-session rate Engaged sessions (>10s, or any interaction) ▼ branch-selection rate Declared intent ▼ action rate Reviews / support tickets / reorders / signups ▼ consent rate Retargetable audience members ▼ attributed revenue ₹ / $ per unit shipped

Six metrics are worth putting on a dashboard, and one of them is unusual enough to be worth stating plainly:

  • Scan rate = unique scans ÷ units shipped. Physical media finally has a real denominator, because you know exactly how many boxes went out. Print advertising has never had this.
  • Unique-to-total ratio. Well above 1.0 means people are coming back to the page — usually a sign the content is genuinely useful, occasionally a sign your form is broken.
  • Branch-selection rate. What share of scanners answered the question at all. Below ~40% and your router screen is too heavy or too slow.
  • Intent mix. The distribution across branches, tracked per SKU and per batch. This is your early-warning system, and it is the metric your operations team will care about more than your marketing team does.
  • Retargetable rate. Consented scans ÷ total scans. Expect this to be materially lower in the EU and UK than in the US or India.
  • Cost per retargetable customer = print cost ÷ retargetable scans. This is the number that reframes the whole conversation, because it is directly comparable to a CPM.

A worked example

Round numbers, deliberately conservative, for a small DTC brand:

  • 10,000 orders shipped in a quarter, each with a printed insert.
  • Insert cost: ₹3 each → ₹30,000 total (roughly $350).
  • Scan rate 9% → 900 scans.
  • Branch selection 55% → 495 declared intents. Say 300 "love it", 95 "something's wrong", 70 "want more", 30 feedback.
  • Consent rate 70% → 630 retargetable people.

Cost per retargetable customer: ₹30,000 ÷ 630 ≈ ₹48 (about $0.56). And these are not impressions — they are identified, warm, post-purchase customers, 300 of whom have explicitly confirmed they are happy. Price that against what you currently pay to reach a cold prospect once.

Then look at the other outputs the same ₹30,000 bought: 300 review prompts sent to verified-happy customers, 95 support issues intercepted before they became public reviews, 70 stated reorder intents, and a per-batch quality signal you did not have last quarter. The insert was already in the box. The only thing that changed is that it now has a return path.

One methodological warning, because I have watched people get this wrong: do not declare victory off a single quarter's movement. Scan rates are seasonal, insert designs get swapped without anyone telling marketing, and a 9%-to-11% jump on 900 scans is well inside noise. If you are going to A/B test insert variants — and you should, it is the cheapest creative test available to you — read Bayesian and Sequential A/B Testing first, because you will be peeking at the results weekly and that changes the maths.

What Breaks It

The honest failure modes, in rough order of how often I see them.

Consent is a hard ceiling, not a formality

In the EU and UK, an advertising pixel that writes to the device or feeds behavioural retargeting requires valid, freely given, unbundled consent under GDPR and ePrivacy rules. Pre-ticked boxes are not consent. The pixel must load after the opt-in, not before — and "we'll set it and add a banner later" is how companies acquire regulatory problems. Under CPRA-style US state laws the obligation is generally a working opt-out and a Do Not Sell or Share mechanism rather than prior consent, which is a lower bar but still a real one.

The engineering consequence is the useful part: never let your measurement depend on the ad pixel. Log the scan server-side at your own redirect, where you are counting your own traffic on your own infrastructure. Use the pixel only for the advertising layer, only for consented users. Then a low consent rate costs you audience size but never costs you your numbers. Verify it properly, too — load the page with consent denied and watch the network tab. A surprising number of consent banners are decorative.

Your audience is smaller than your scan count

Between consent declines, iOS App Tracking Transparency, browser tracking prevention, and in-app browsers that break third-party storage, the audience that lands in Meta will be meaningfully smaller than the number of scans you recorded. That is not a bug in your setup; it is 2026. Plan around it, and lean on the parts that do not degrade — server-side scan logs, declared intent, and any first-party contact detail the customer chose to give you.

Static codes are a trap

A static code encodes the destination in the pattern itself. No analytics, no editing, ever. It is fine for the WiFi password taped to a wall and disqualifying for anything printed at volume — because the day that URL changes, every unit already in the field becomes a dead end. Roughly two thirds of QR codes created today are dynamic, and this is why. Everything in this post — the code taxonomy, the router, the pixel, the per-scan routing — assumes a dynamic QR code generator sitting behind the print run, because none of it is possible with a code whose destination is frozen in ink. If you are printing 50,000 of something, the $5–12/month is not the decision.

The gate before the value

The fastest way to destroy a good scan rate is to put an email capture form in front of the thing you promised. The customer scanned for the setup video. Show them the setup video. Ask for the email underneath it, after you have delivered. Reciprocity is not a growth hack, it is just how the exchange works when you go second.

Nobody owns it after launch

This is the quiet one. QR programmes decay: destinations go stale, the promo behind the code expires, the person who set up the pixel leaves, and eighteen months later there are 50,000 boxes in the world pointing at a 404. Dynamic codes make this recoverable, which is the point — but only if someone is actually looking. Put a quarterly review of live codes and their destinations on someone's calendar, or accept that you are building a slow-motion broken-link machine.

Where I Think This Actually Goes

The QR industry has spent a decade selling the wrong product. The pitch has been "generate a code," which is a commodity — a QR code is a documented public standard and any competent developer can produce one in an afternoon. Free generators exist precisely because the code itself is worth nothing.

What is not a commodity is everything on the other side of the scan: the routing logic, the declared-intent capture, the code taxonomy, the pixel plumbing, the audience segmentation, the suppression rules, the measurement model. That is a customer engagement layer that happens to be triggered by a square. Priced as a code generator, it is a $5/month utility. Priced as the thing that gives physical marketing a feedback loop, it is a line item in a marketing budget.

I am obviously not neutral about this — I run a company in the category. But the argument holds independently of who you buy from, and it holds even if you build it yourself with a short-link service and a landing page: the value is not the code, it is the return path. Nearly every business with a physical touchpoint is throwing away its warmest customer moment because nobody built one.

That founder who sent me the thank-you note did the hard part. They made a product I liked, packed it with care, and wrote to me by hand. Everything after that was one square of ink away.

A 30-Day Version

If you want to test this without a project plan:

  • Days 1–3. Pick your single highest-volume SKU. Decide the offer — the useful thing the scan delivers before you ask for anything.
  • Days 4–7. Build one mobile page: the value, then the four-button router. No login, no form above the fold. Fast.
  • Day 8. Create two dynamic codes in a dynamic QR code generator with a naming convention you can live with — pkg.xx.sku.insert-a and insert-b. Two insert designs, same offer, different copy.
  • Days 9–10. Add a consent banner that actually gates the pixel. Verify with the network tab that nothing fires on decline.
  • Day 11. Print both, in final size on final stock, and scan them with the worst phone in the office under a bad light.
  • Days 12–40. Ship them alternately. Do not touch anything.
  • Day 41. Read four numbers: scan rate per variant, branch-selection rate, intent mix, retargetable rate. Only then decide whether this is worth building properly.

Total cost: an insert you were probably already printing, and about a week of one person's attention.

FAQ

What is a good QR code scan rate?

It depends entirely on the surface, and the honest answer needs a real denominator. Vendor-published 2026 benchmarks put product packaging at roughly 8–15% of units, packaging inserts at 5–12% when the code carries a specific value offer, and connected-packaging campaigns near 14%. High-intent placements — a code on a product the customer already owns and is holding — can reach 15–35%. Print ads, billboards and cold direct mail sit far lower, usually well under 2%. Treat all of these as directional: they are self-reported by QR platforms and sampled from brands already invested enough to measure.

How do you increase QR code engagement rate?

Change the offer, not the code. Four things move it more than anything else: label the code with what the scan delivers (labelled codes beat generic "scan me" by roughly 3–4× on equivalent placements); give value before asking for anything; place the code where the customer's hands and attention already are, sized correctly for the scanning distance; and land on a fast mobile page with no login wall and no form in front of the value. The code is a doorway — engagement is a function of what is behind it.

Can you retarget people who scan a QR code?

Yes. A dynamic QR code redirects through a page you control, and any advertising pixel on that page — Meta, Google Ads via GTM, TikTok, LinkedIn — can add the scanner to a custom audience. That is the mechanism that makes offline retargeting possible: someone who scanned a code on a box, a postcard or a shelf tag becomes a targetable digital audience and a lookalike seed. Consent rules apply, so the pixel must fire only after valid consent where that is required, and your retargetable audience will always be smaller than your scan count.

What data does a QR code scan actually capture?

Timestamp, device type, operating system, browser, and approximate city-level location from IP. Not a name, email or phone number — those arrive only if the customer gives them on the landing page. The most valuable field is the one you create yourself: the code ID. Print a distinct code per SKU, batch, store, insert variant or print run, and every scan is stamped with the physical object it came from, which is what turns scan volume into channel-level attribution.

Do you need consent to retarget people who scan a QR code?

In the EU and UK, yes — advertising pixels that write to the device or feed behavioural retargeting require valid, freely given, unbundled consent under GDPR and ePrivacy rules, and pre-ticked boxes do not count. In US states with CPRA-style laws the requirement is generally a working opt-out and a Do Not Sell or Share mechanism rather than prior consent. Practically: log the scan server-side on your own redirect so counting never depends on the pixel, and reserve pixel firing for consented traffic.

Should you use a static or dynamic QR code for marketing?

Dynamic, without exception, for anything printed at volume. A static code encodes the destination directly in the pattern, so it cannot be measured or changed once printed — a dead link kills the entire print run permanently. A dynamic code points at a redirect you control, giving you scan analytics, editable destinations, and per-scan routing. Any dynamic QR code generator will give you those three properties; the ones worth paying for add pixel retargeting, bulk generation and device routing on top. Static codes remain fine for a WiFi password taped to a wall.

How much does this cost to run?

The codes themselves are the cheapest part. Dynamic QR platforms sit roughly between $5 and $30 per month depending on how many codes you need — QRCodeStack starts at $5/month, with pixel retargeting and bulk generation on the $12/month tier; the alternatives I compared in The Best QR Code Generators mostly land in the same band or well above it. The real costs are the landing page, the consent setup, and someone owning it afterwards.

Sources and Further Reading

A note on where the numbers come from. The scan-rate and engagement benchmarks above are drawn from aggregate data that QR platforms publish about their own customer base — 2026 CPG benchmark sets and category usage surveys. That is the best public data that exists here, and it is also self-selected and self-reported: the sample is brands already invested enough in QR to be measuring it. I have described the methodology inline rather than sending you to vendor marketing pages, because those figures deserve a squint and not a citation-by-authority. Size an opportunity with them; do not build a forecast on them. Your own first print run is the only benchmark that will ever actually apply to you.

These, on the other hand, are the primary references worth reading in full — the standard, the mechanics, and the law. They are the parts of this post where getting it wrong costs you something real:

And from this blog, the adjacent pieces: The Best QR Code Generators for choosing a platform, Getting Your Ideal Customer Profile Right for deciding whose behaviour you should be modelling in the first place, Bayesian and Sequential A/B Testing for deciding whether an insert variant actually won, and I Lost $12,000 Dropshipping in India for what happens to a business whose only customer relationship runs through paid ads.