Executive summary
Two separate, overlapping problems — not one root cause.
What's been ruled out
Findings that looked promising but didn't hold up under closer testing.
| Hypothesis | Verdict | Why |
|---|---|---|
| San Jose GA4 session spike = real demand | Ruled out | Known artifact of Meta data-center IPs / iCloud Private Relay geolocation, not genuine users |
| Payment processing / gateway broke | Ruled out | Mixpanel Pay Attempt and CheckoutStepCompleted move in parallel with no widening ratio; GA4 transactions/purchases/revenue stay internally consistent |
| JS errors are the main driver | Ruled out | Only 51 of 904 checkout users (5.6%) hit any JS error over the full period — too low volume to explain a 20–30% funnel-wide decline |
| Safari/WebKit-specific bug is the whole story | Partially ruled out | Conversion rate fell across every browser/device combo post-Jul 1, including desktop Chrome (−40%) and Edge (−50%) — not just Safari |
| Dead clicks caused the July 1 cliff | Partially ruled out | Aggregate dead-click rate was flat/plateaued in July (75.72%→75.31%); it's a chronic issue, not a new July trigger — except "Pay Now" specifically, which did spike |
Google Ads & Meta US — CPA trend
Weekly spend, conversions and CPA. Both channels reach their highest CPA on record in the last two weeks of the window.
Google Ads US · peak weekly CPA
Meta US · peak weekly CPA
Where the spend is going (Jul 1–19)
Both platforms show the same pattern: efficient, high-intent segments are starved of spend relative to broad/prospecting segments.
Google Ads — campaign CPA (Jul 1–19)
| Campaign | Spend | Conv. | CPA |
|---|---|---|---|
| Branded | $4 | 15.1 | $0.29 |
| Non-Brand (Southern + Northern) | $1,721 | 83.6 | $20.59 |
| PMAX Southern Generic BAU | $6,809 | 33.2 | $204.79 |
| SEM Southern Generic Occasions | $6,484 | 30.3 | $213.75 |
| PMAX Northern Generic BAU | $6,462 | 42.9 | $150.53 |
| SEM Consolidated — Empire State Bldg | $857 | 1.2 | $703.35 |
Meta — campaign CPA (Jul 1–19)
| Campaign | Spend | Purch. | CPA |
|---|---|---|---|
| Southern Dynamic Remarketing | $478 | 9 | $53 |
| Northern Dynamic Remarketing | $441 | 10 | $44 |
| Southern Advantage+ | $6,425 | 31 | $207 |
| Northern Advantage+ | $3,835 | 25 | $153 |
| Southern Traffic objective | $1,049 | 1 | ~$1,049 |
| Northern Traffic objective | $253 | 0 | — |
GA4 — the July 1 conversion cliff
US purchase conversion rate (purchases ÷ sessions), daily. Transactions, purchases and revenue all move together throughout — this rules out a GA4 tracking/tagging gap. The drop reflects real completed purchases, not a measurement artifact.
Pre-Jul 1 (Jun 24–Jul 1)
Post-Jul 1 (Jul 2–19)
Browser & device breakdown — why this rules out "Safari-only"
Conversion rate by segment, 11 days pre-Jul 1 vs 18 days post. Every browser fell, including desktop Chrome and Edge — platforms unaffected by the previously-diagnosed WebKit issue.
Funnel stage erosion
Stage-to-stage conversion ratios, pre- vs post-Jul 1 (Mixpanel: AddedToCart, CheckoutStepCompleted, Pay Attempt).
| Transition | Pre-Jul 1 | Post-Jul 1 | Change |
|---|---|---|---|
| AddedToCart → CheckoutStepCompleted | 72.8% | 67.2% | −5.6 pts |
| CheckoutStepCompleted → Pay Attempt | 60.1% | 58.0% | −2.1 pts |
Clarity — checkout dead clicks, Mar–Jul
US traffic, checkout page. Dead clicks and quick-backs climb steadily through June, then plateau in July — right when the acute conversion drop hits.
| Month | Dead clicks | Quick backs | Sessions |
|---|---|---|---|
| March | 67.41% | 20.36% | 948 |
| April | 70.52% | 24.31% | 1,201 |
| May | 75.05% | 30.25% | 1,395 |
| June | 75.72% | 33.16% | 1,565 |
| July MTD | 75.31% | 30.56% | 733 |
Element-level breakdown — "Pay Now" is the standout
% of checkout sessions with a dead click on each named element, by month.
Pay Now
Redeem
CSS font-fallback artifact
Confirmed: JS errors are not the volume driver
Checkout users w/ any JS error (Jun 24–Jul 19)
Dead-click rate within JS-error sessions
hCaptcha anomaly (single live session)
UK / CA / NZ — Smart Bidding recovery post-tracking migration
Weekly Google Ads performance, pre- vs post- the Jul 2 conversion tracking migration (reverted Jul 8). As of Jul 19 — 3 days before the Jul 22 checkpoint — none show a confirmed recovery.
UK
CA
NZ
Building the case: TOFU vs. BOFU
Where the evidence currently sits, and what would close the remaining gaps.
- Sessions held steady/grew through July — this isn't a traffic-quality (TOFU) story where volume and quality shift together messily
- Conversion rate cliff hit uniformly across every browser/device — consistent with a checkout-side break, not a targeting problem
- "Pay Now" dead-click rate broke its 3-month trend exactly at the point of the cliff
- CheckoutStepCompleted → Pay Attempt ratio held steady — rules out payment gateway failure specifically, but doesn't rule out earlier BOFU friction
- No confirmed root cause for the July 1 event — "Pay Now" dead clicks are the strongest lead, not yet a proven mechanism
- June's dead-click spike (75.72%, driven by different elements) remains unexplained and undated against any known change
- No deploy/change log available — root cause needs code-level access (GTM export, view-source, or dev collaboration) that hasn't yet been obtained
- New Relic (best available error/AJAX-failure source) inaccessible — account provisioning still pending
Recommended next steps
- Watch 5–10 individual Clarity session recordings on "Pay Now" dead clicks specifically, post-Jul 1, to confirm what's actually happening on click (disabled state? overlay? silent JS no-op?)
- Request New Relic org access, or ask whoever administers it to pull checkout-page JS errors + failed AJAX/fetch calls to the payment gateway domain, June 24–Jul 19
- Ask whoever owns hCaptcha to check challenge/verify success rates around Jul 1 — the double-challenge-ID pattern seen in one live session is worth checking at volume
- Get a clean answer on what changed in June to spike non-Pay-Now/Redeem dead clicks (blank/unlabeled area, payment selector, masked fields) — this may be a second, separate incident
- Treat the chronic dead-click climb (Mar→Jun) as a standing UX fix item, separate from the July 1 investigation — both are real, but conflating them will weaken the case