TL;DR
If CTR is healthy but conversions are missing, you likely have a measurement gap, not a performance problem. Fix the thank-you/event trigger, import conversions once, enable Enhanced Conversions, set windows correctly, capture gclid/wbraid, and import offline conversions from your CRM.
The Symptoms (from Jan 1–10 example)
- Spend: ~€3.5k
- CTR: 3–22% (strong)
- Google Ads: near-zero conversions
- Reality: 18–20 inbound leads
Why Attribution Breaks
- Thank-you URL/event not unique or not firing
- GA4 imported + Ads tag = duplicates/omissions
- Third-party tools (Calendly/HubSpot/Typeform) causing session breaks
- Missing Enhanced Conversions (web/leads)
- gclid/wbraid not stored → no offline match
- Consent Mode v2 not respected, or duplicate tags/self-referrals
The 9-Point Checklist (Do These in Order)
- Map your real funnel (ad → LP → browse → demo → thank-you). Identify the single conversion event.
- Tag validation
- Use Tag Assistant / GTM Preview to confirm the conversion triggers only once.
- Pick ONE source of truth
- Import from GA4 or use a Google Ads conversion action (not both).
- Enable Enhanced Conversions
- Web purchase/lead & Enhanced Conversions for Leads with hashed email/phone.
- Set conversion settings
- Count: One (for leads)
- Click-through window: 90 days
- View-through window: 1–30 days (choose based on channel)
- Include in “Conversions”: Yes for primary KPIs
- Capture gclid/wbraid
- Add hidden fields to forms; store IDs in CRM.
- Offline Conversion Import (OCI)
- Upload qualified stages (SQL, Opp, Won) to close the loop and train bidding.
- Cross-domain & consent
- Ensure GA4 cross-domain for booking tools; implement Consent Mode; remove duplicate tags.
- Click-fraud hygiene
- Monitor spikes, exclude abusive IPs/placements, and consider a trusted tool.
GTM Trigger for Thank-You URL
- Trigger type: Page View – Window Loaded
- Condition:
Page URL contains /thank-you(adjust to your path)
C. GA4 → Google Ads: Import Conversions (Recommended)
- GA4 Admin → Product Links → Google Ads
- Import only the primary event (e.g.,
generate_lead). - In Google Ads, mark that event as Primary; avoid duplicating with an Ads tag.
D. Enhanced Conversions (Leads) – Basic Fields
- Email (hashed), Phone (hashed), First/Last name, Country, ZIP
- Implement via GTM or Google Ads tag; ensure consent signals are respected.
Troubleshooting Flow (Use This When Stuck)
- Does the conversion event fire? (Tag Assistant)
- Is it imported once into Ads? (No duplicates)
- Is Enhanced Conversions active & verified?
- Are windows/“Include in Conversions” set correctly?
- Do cross-domain sessions persist?
- Are gclid/wbraid captured and stored?
- Can you match CRM leads back with OCI?
- Any consent/duplicate/self-referral issues in GA4 DebugView?
- Any invalid-click patterns? (IP/placement exclusions)
Calendly / HubSpot / Typeform Notes
- Prefer redirect to a thank-you URL after submit and fire conversion there.
- If staying on the same URL, fire a custom event (e.g.,
lead_submit) on successful callback and import that as the conversion. - For HubSpot, use Ads Optimization Events or pass
gclidinto contact properties for OCI.
FAQ
Q: GA4 shows conversions but Google Ads doesn’t—why?
A: You might be looking at GA4 goals, not imported Ads conversions. Import the exact event and mark it Primary.
Q: My leads close days later. Will Ads see it?
A: Yes—use Enhanced Conversions and Offline Conversion Import to credit Ads even when the final action happens later.
Q: Should I use “Every” or “One” for leads?
A: One (to avoid overstating lead volume if a user submits multiple times).
Need Expert Help?
We audit and fix tracking weekly. Get a same-day plan and hands-on implementation: Aarswebs.com