The QR Attribution Playbook for Physical Campaigns
Print has a measurement problem — unless every impression carries its own tracking. Here's the stack we use at BoxShare.
1. One tracked URL per campaign
Every card design gets a unique short link (/r/<slug>). The QR encodes that URL, never the final destination — so scans are logged first, then redirected. You get a scan count, timing, and rough geography even if the customer never buys.
2. Auto-apply discount links
On Shopify, /discount/CODE?redirect=/ applies the code at checkout automatically. On WooCommerce, ?coupon_code=CODE does the same. The QR should land on these URLs — the customer never types the code, and the code does the attribution.
3. Store-native codes, not spreadsheets
BoxShare creates the discount inside the advertiser's own store via the Shopify price rules API or the WooCommerce coupons API. That means:
times_used/usage_countis queryable any time- Order webhooks carry the code, so every attributed order lands in your dashboard in near-real-time
- Codes can carry usage limits and expiry dates, so campaigns end cleanly
4. Close the loop
Scans tell you creative pull. Code usage tells you offer strength. Attributed orders tell you revenue. Put all three on one dashboard and print stops being "brand spend" and starts being performance marketing.