Spec — UTM Capture / Source Attribution for 52aiskills (for Arden)
Date: 2026-06-08 From: Cade (Media Buyer) — owns the requirement + the UTM scheme To: Arden (Builder) — owns the implementation + verification Decides: Arden chooses the capture method (incl. whether any third-party tool is warranted). Kathryn's lean: no paid tool if a free method works.
The goal (the "why")
Revenue reaches the same 52aiskills.com → ThriveCart checkout from three sources — paid ads, organic posts, email. Today we can't reliably tell which sale came from which source (Meta's pixel over/under-claims; organic + email sales are invisible to it). We want every sale traceable to its source so MER can be broken down by channel and we can decide where to put effort.
This is the capture half of attribution. The creation half (building UTM-tagged links) is already handled — see the scheme below; tagged URLs can be built in a Google Sheet, no tool needed.
The scheme (already set — don't redesign, just capture these)
Every outbound link to the checkout carries:
| Param | Meaning | Values |
|---|---|---|
utm_source | platform | facebook, instagram, linkedin, email |
utm_medium | type | paid, organic, email |
utm_campaign | which effort | slo-launch, slo-batch003, organic-repurpose, cib-tripwire, nurture-c |
utm_content | which ad/variant | before-after-a, deliverable-hero-2a, pattern-callout, … |
Example: https://52aiskills.com/?utmsource=facebook&utmmedium=paid&utmcampaign=slo-batch003&utmcontent=deliverable-hero-2a
The job (the "what" — Arden picks the how)
ThriveCart does not auto-capture UTMs that land on the sales page. Pick the lightest reliable path to get them onto the order record:
- Passthrough JS (likely lightest, free): script on
52aiskills.comreads the URL's UTMs and appends them to the ThriveCart checkout link as?passthrough[utmsource]=…&passthrough[utmmedium]=…etc. ThriveCart then stores them on the order (visible per-transaction + can pass to MailerLite). - GA4 via Google Tag Manager: ThriveCart's recommended route for deeper/scalable reporting. Heavier setup.
- Third-party tool (UTMSimple / HandL / AnyTrack): only if 1 and 2 don't cover it. Default assumption: not needed.
Research already done (Cade): see Sources in the 6/8 conversation / STATUS Tracking section. ThriveCart docs confirm the passthrough[...] format and that native UTM reporting caps at top-5 values per key.
Acceptance test (how we know it works)
- Make a test purchase through a tagged link (e.g. the
utmsource=facebook&utmmedium=organic&utm_campaign=organic-repurposeorganic link). - Confirm the order record (ThriveCart, and/or GA4 if that route) shows the correct
utm_source / medium / campaign / content. - Confirm an organic and an email tagged link each attribute correctly — not just paid.
Constraints
- Don't reset the Meta pixel learning or touch the live pixel/combined-event setup (the 5/29 fix).
- Free method preferred. Flag cost before adopting any paid tool.
- Report back the chosen method + the test result so Cade can start reading channel-level MER.