The Meta Variant 2 ads — repointed to the quiz root, CLOSED 7 Aug 2026
✅ Closed — both ads are on the quiz root, read off the Meta API
Nothing left to do on this card. On 7 Aug 2026, 19:24–19:28 UTC we pulled 200 ads from the Marketing API and resolved every destination on the active creatives. Both Variant 2 ads — 120245799998740728 and 120245799998720728 — now point at https://quiz.themovementathlete.com/, the ROOT, which is what makes them survive the next switch. No active creative references /2026-v2-2/ any more. The four ads still on /2026/ are the Control arm and are deliberate; we are recording that here so a future sweep does not re-open them as a defect.
Everything below this line is the original card, kept so the diagnosis and the reasoning stay on the record.
Recorded for everyone else
Your architecture note is now in our canonical docs, because it explains something that had confused us: Django renders the body itself (apps/mail.py → render_to_string over activation_email.txt, password_reset_email.txt, quiz_email.html, weekly_progress_mail2.html) and ships it over SMTP — SendGrid only delivers and owns none of the copy. That is why Email Activity shows sends while Dynamic/Marketing templates look empty. We will stop looking for the copy in SendGrid.
✅ 6 Aug 2026 (PM): Aga reviewed this card and SENT THE TASK TO YOU — AGA-56 (her decision-and-dispatch half) is closed, and she ruled REPOINT. 7 Aug: most of it is already done. You shipped the root repoint and moved all Google Ads onto the $97 build — both verified live. One thing is left: the Meta “Variant 2” ads. See the next card.
📝 Your documentation of the three versions — recorded here so we all read the same thing
You sent this on 7 Aug 2026. It is captured verbatim below (left) with what the wire says the same day (right), so nothing depends on memory. Everything matches except one line, flagged in red.
| What you documented | Verified live 7 Aug 2026 |
|---|---|
Root force-redirect changed — was quiz…/ → /2026-v2-2/, now quiz…/ → /2026-quiz-checkout-v1/ | ✅ curl -I: root returns 302 → /2026-quiz-checkout-v1/ |
1 · Current primary funnel. Landing /2026-quiz-checkout-v1/ · no React paywall, redirects to checkout · checkout app…/payments/quiz-checkout/ · success …/quiz-checkout/success | ✅ all three 200. Stripe confirms the rail: subscriptions carry checkout_version=quiz_checkout, quiz_variant=quiz_checkout_2026_v1, offer=quiz97 |
2 · /2026-v2-2/ — “still live (200), not redirected” · in-quiz paywall · pays via /register/monthly_2026/, /register/monthly_2026_promo/promo/, /register/quarterly_2026_promo/promo/ · success /payments/success_2026 | ✅ 200, no redirect — your status line is right. (Your covering note also said “I simply redirect /2026-v2-2/ → v1”; that one is not live, and the status line is the accurate half.) ✅ Stripe agrees on the rail: the only prices selling there are monthly3, monthly2, quarterly2 |
3 · /2026/ Control · in-quiz paywall · pays via /register/yearly_2026/ · success /payments/success_2026 · served by QLG | ADV+ OFF | MC | Control, kept for its low CPLs | ✅ 200 · Stripe agrees: the only price selling on that rail is yearly3 · ✅ campaign ACTIVE, both its ads point at /2026/. Your URL map and Stripe's price map agree independently — that is the two-source check on this whole table. |
| “All Google Ads goes here now” (to v1) | ✅ Confirmed in GA4: all four Quiz Funnel campaigns land on v1 from wk31. v2-2's Google traffic went to ~0 on 31 Jul. |
“Meta Ads QLG | ADV+ ON | US | Variant 2 goes here” (to v1) · and “due to the force redirect, Variant 2 no longer serving /2026-v2-2/” | 🔴 Not yet. Read off the live creatives via the Marketing API on 7 Aug, the campaign is ACTIVE and both of its ads still have https://quiz.themovementathlete.com/2026-v2-2/ as their destination URL (ads 120245799998740728, 120245799998720728). The root redirect cannot catch them — they land one level below the root. GA4 confirms the consequence: 7–14 Meta sessions/day on v2-2 every day since the switch, flat, no decay, and $37.43 spent 1–6 Aug against a funnel whose rail has taken $0 in August. |
So: the redirect did its job everywhere it could reach. Ad deep-links are the one place it structurally cannot — which is exactly what this card has been about since 6 Aug.
🥇 Why this outranks everything else on this page
To be precise about what IS working: the $97 page is live, the quiz ROOT is repointed to it (you shipped that), Google Ads is fully moved across, and it is SELLING — 8 paid subscriptions on the quiz-checkout rail since 31 Jul: 7 × $97.00 annual + 1 × $12.48 monthly, $691.48 gross (re-pulled 7 Aug PM; GA4 independently corroborated the first week). Everyone who arrives through the root — YouTube, PMax, direct, homepage — sees the $97 annual. The gap is only the paid deep-links: the ACTIVE Meta ads’ destination URLs (read from the ad creatives via the API, re-verified 7 Aug) are literally quiz.themovementathlete.com/2026/ and …/2026-v2-2/ — one level BELOW the root, so the root redirect never fires for them, and those paths still 200 with their own old bundles. Measured on human landings in the 7 days after the switch: 232 of 540 (43%) still reach a build with no $97 annual — 16% deliberately (the Control arm Aga is keeping) and 27% unintended (v2-2 + v2-3). The ad money sees the old offer; everyone else sees the new one.
📊 Full version-by-version analysis — traffic, sources, funnels, AOV, retention and lead quality across all three funnels, with every command to reproduce it: tma-growth-cockpit-2026.netlify.app/quiz-funnel-versions/ ↗
What each doorway is, and who feeds it — bundle identities verified live 6 Aug
| Path | What it is (from its served bundle) | Who lands there (GA4, 14d landing sessions) |
|---|---|---|
/2026/ | The ORIGINAL 2026 quiz build (bundle index-BqqEpqKj.js). Pays via 6 /register/ URLs · 0 checkouts-v3 refs · no $97 annual. | 317 — 80% from ONE ACTIVE Meta campaign: “QLG | ADV+ OFF | MC | Control” (ig 149 + fb 95 + threads 10). |
/2026-v2-2/ | The v2-2 quiz build (index-DPkL72Wi.js). Same 6 /register/ URLs · 0 v3 · no $97 annual. | 691 — direct 219 · google organic 160 · “QLG | ADV+ ON | US | Variant 2” (ACTIVE) fb 87 + ig 22 · homepage 41 · PMax 32 · BWTA 18. |
/2026-v2-3/ | The v2-3 build (index-DBgHnaAZ.js). Older /register/ set · no $97 annual. | 46 — incl. an ActiveCampaign email: 967 TMA | Welcome Sequence After LEAD MAGNET, E7 still links it (that fix is Aga-side). |
/2026-quiz-checkout-v1/ | The $97 build (index-DFwXN-qe.js) — 12-Month $97 today / $157 struck, pays via the checkouts-v3 rail. | 3,157 — YouTube organic 1,197 · PMax · Competitors Branded · homepage · the quiz root. |
The session counts above are the 6 Aug 14-day snapshot, kept for the record. The current post-switch picture is in the analysis doc linked above.
Where that leaves the old A/B: the Control arm (/2026/) stays live on purpose — Aga is keeping it, and it is the only funnel still selling the trial + 50%-off annual. The Variant 2 arm (/2026-v2-2/) is the one that is running on inertia: still taking paid traffic on the pre-$97 offer months after the test stopped being read. Repointing its two ads ends that, and leaves the page itself intact as the rollback option.
What is left — one campaign, two ads
AGA-56 is RULED and CLOSED (Aga, 6 Aug): repoint. Backport is off the table. Three of the four pieces are shipped; here is the whole board:
| Piece | Status 7 Aug | Who |
|---|---|---|
| Root force-redirect → v1 | ✅ DONE — 302 verified live | You — shipped |
| All Google Ads onto v1 | ✅ DONE — all four Quiz Funnel campaigns land on v1, GA4-verified | You — shipped |
/2026/ Control ads stay put | ✅ BY DESIGN — Aga is keeping this arm (cheap multi-country leads, and it is the only live seller of the trial+50% annual). Not a defect; leave it. | No action |
| “QLG | ADV+ ON | US | Variant 2” ad destinations | 🔴 OPEN — both ads still read /2026-v2-2/ | ~5 min. In Ads Manager set both ads’ website URL to https://quiz.themovementathlete.com/ — the ROOT, not the v1 path, so the ads follow every future switch automatically and never need touching again. Keep the existing url_tags as they are. Aga's ruling 7 Aug: this one is yours to decide and do — whether to repoint to the root, and when. |
Done when: both ads in 120245799636960728 read the root as their destination, and GA4 Meta sessions on /2026-v2-2/ fall from ~7–14/day to ~0 within 48h. Leave the /2026-v2-2/ page itself serving — Aga wants the rollback option kept open, and once the ads move, its only remaining traffic is organic/direct residue. A 301 on it is a later decision, not this task.