How to Track Marketing Campaigns With UTM and QR Analytics
Most marketing campaigns run blind. You spend on flyers, social ads, email, and QR codes — and at the end you have a revenue number but no idea which channel drove it.
UTM parameters + QR codes + GA4 change this. Here is how to set up end-to-end campaign tracking.
The Tracking Stack
You need three things:
- Google Analytics 4 installed on your website (free)
- UTM-tagged URLs for every link in every campaign channel
- QR codes generated from those UTM-tagged URLs (for offline/print channels)
That is it. No paid tools required.
Step 1: Define Your Campaign Structure
Before creating a single UTM, decide:
Campaign name: One consistent name across all channels for this campaign. Example: spring-sale-2026
Channels you are using:
- Email newsletter
- Instagram feed posts
- Instagram Stories
- Facebook ads
- Print flyers (QR code)
- In-store QR code display
- SMS
Conversion goal: What counts as success? Purchase, form submission, phone call, sign-up?
Step 2: Create UTM-Tagged URLs for Each Channel
For the spring-sale-2026 campaign:
Email:
https://yoursite.com/sale?utm_source=email&utm_medium=email&utm_campaign=spring-sale-2026
Instagram feed:
https://yoursite.com/sale?utm_source=instagram&utm_medium=social&utm_campaign=spring-sale-2026&utm_content=feed-post
Instagram Story:
https://yoursite.com/sale?utm_source=instagram&utm_medium=social&utm_campaign=spring-sale-2026&utm_content=story
Print flyer QR:
https://yoursite.com/sale?utm_source=flyer&utm_medium=print&utm_campaign=spring-sale-2026&utm_content=a4-flyer
In-store display QR:
https://yoursite.com/sale?utm_source=in-store-qr&utm_medium=print&utm_campaign=spring-sale-2026&utm_content=counter-display
Use QRCrack's UTM builder to build these URLs without manual editing.
Step 3: Generate QR Codes for Offline Channels
For each offline channel (flyers, in-store displays, event materials):
- Take the UTM-tagged URL for that channel
- Generate a QR code from that URL using QRCrack
- Download as SVG for print quality
- Include in your print design
Now each QR code is a unique tracking unit. You can distinguish between the flyer QR and the in-store QR in GA4.
Step 4: Set Up GA4 Conversions
Before the campaign launches:
- In GA4, go to Configure → Events
- Mark the purchase or lead event as a conversion
- If you do not have e-commerce tracking: create a custom event that fires when users reach your thank-you page
Without a conversion event, you can only see traffic — not results.
Step 5: Monitor During the Campaign
GA4 path to campaign data: Reports → Acquisition → Traffic Acquisition → Add secondary dimension: "Session campaign"
Filter for campaign = spring-sale-2026 to see:
- Sessions from each channel
- Bounce rate per channel
- Conversions per channel
- Revenue per channel (if e-commerce tracking is active)
Real-time check: GA4 Real-time report shows current users by source/medium. Useful on launch day to confirm tracking is firing.
Step 6: Analyze and Optimize
After 1–2 weeks, compare channels:
| Channel | Sessions | Conversion Rate | Revenue |
| 1,200 | 4.2% | ₹24,000 | |
| Instagram feed | 340 | 1.8% | ₹3,060 |
| In-store QR | 89 | 8.1% | ₹3,600 |
| Print flyer QR | 43 | 6.0% | ₹1,290 |
In this example, the in-store QR has the highest conversion rate. On the next campaign, you might double the number of in-store QR placements and reduce spend on Instagram feed posts.
This is data-driven marketing. Without UTM tracking, you would only see the total 1,672 sessions and ₹31,950 revenue — no channel attribution.
Advanced: Multi-Touch Attribution
GA4's default attribution model is last-click (the last channel before conversion gets credit). For campaigns with multiple touchpoints (someone sees your Instagram, then scans your in-store QR, then buys), you can explore multi-touch attribution in GA4 Explore:
- Go to Explore → Funnel Exploration
- Add steps: First touch source → Last touch source → Conversion
- See how many users passed through multiple channels before converting
Campaign Tracking Checklist
- [ ] GA4 installed and verified on website
- [ ] Conversion event created in GA4
- [ ] UTM naming convention decided and documented
- [ ] Tagged URLs created for each channel
- [ ] QR codes generated from tagged URLs for offline channels
- [ ] UTM spreadsheet updated with all URLs and placements
- [ ] Test: visit site via each tagged URL, confirm GA4 Real-time shows correct source
- [ ] Review at 1 week and at campaign end