The challenge
Click IDs (gclid, fbclid) get lost when customers redirect to Stripe’s hosted checkout. When they complete purchase and return to your site, you can’t connect the conversion to the original campaign. Result: Conversions show as “direct” in GA4. Marketing can’t prove ROI. Google Ads can’t optimise for users who actually subscribe.How Fidero solves this
Browser State Capture preserves click IDs before redirect. When the purchase event arrives via webhook, our server enriches it with persisted attribution automatically.Implementation
1
Install pixel on marketing site
2
Track checkout_started before redirect
3
Track subscription_started from webhook
The
userId must match the user who started checkout. This connects the server-side conversion to the browser-side session, pulling in preserved attribution.4
Verify attribution preservation
Check your dashboard. The
subscription_started event should include:- Original click IDs (gclid, fbclid)
- First touch attribution from initial ad click
- Last touch attribution from recent session
- All UTM parameters
What you’ll see
Within 24 hours: Attribution recovery starts. Conversions that previously showed as “direct” now include campaign context. Within a week: GA4↔Meta↔Google Ads show consistent conversion numbers. Marketing can prove ROI on 85%+ of conversions instead of guessing on 30%+. Typical results: 20-40% conversion recovery for B2C subscription companies. Google Ads learns which users actually subscribe (not just click). Meta’s algorithm optimises for real conversions with complete context.Why this works
Why this works
The technical flow:
- User clicks Google Ad with
gclid=abc123→ lands on your site - Pixel captures
gclid=abc123→ sends to Fidero server → persists in user profile - User starts checkout → redirects to Stripe (gclid lost in URL)
- User completes payment → Stripe webhook fires
- Your server sends conversion event with
userId→ Fidero server looks up user profile → enriches event withgclid=abc123→ sends to Google Ads
Adyen or other hosted checkout
Adyen or other hosted checkout
Same pattern works for any hosted checkout flow:Attribution context preserved regardless of which payment provider you use.