Interactive Sample Walkthrough
acme-saas.example
BROKEN/demo
Confirmed attribution loss at Hop 1 (301 redirect stripped gclid while keeping utm_*), causing Hop 3 HubSpot hidden field input[name='gclid'] to submit empty.
Journey results
| Banner | Redirect | Consent | Form / link |
|---|---|---|---|
| No choice | Failed | Pass | N/A |
| Rejected | Failed | Pass | N/A |
| Accepted | Failed | Pass | Failed |
No choice Redirect
Checkpoint evidence
BROKENHTTP 301 redirect from /demo to /demo/ retained utm_source, utm_medium, utm_campaign but stripped gclid.
Suggested fix · Edge 301 Redirect Stripping GCLID Before Landing Page Load
Your trailing-slash redirect rule forwards whitelisted utm_* keys but strips gclid, preventing both Google Conversion Linker (_gcl_aw) and HubSpot hidden form fields from capturing paid click attribution.
- Update your Nginx / CDN trailing-slash redirect rule to preserve the entire raw query string (e.g. `return 301 https://$host$request_uri;`).
- Verify that navigating to `https://acme-saas.example/demo?gclid=test123` resolves to `/demo/?gclid=test123` without truncation.
- Re-run this audit after deploying to generate a pre-fix vs. post-fix sign-off diff.
Run details and test values
aud_demo_8f3a9e21 · contract · 2026-11-11T18:40:00.000Z
{
"gclid": "zst_test_91a4f7c2",
"utm_source": "zst_google",
"utm_medium": "zst_cpc",
"utm_campaign": "zst_q4_brand_demo"
}