
Context: The B2B SaaS Team Whose 'Conversions' Were Mostly Form Starts (Hypothetical Scenario)
A subscription SaaS company runs Google Search campaigns for demo requests. Google Ads reports 180 conversions last month, GA4 shows 140 key events, and the CRM logged 60 qualified demos. CPA looks healthy in the platform and alarming in the board deck. Nothing is 'broken'-the tag fires-but the conversion actions have drifted from what the business actually sells. This is a measurement design problem, not a tagging failure.
Why Google Ads, GA4, and Your CRM Never Match (By Default)
Each system counts a different thing, at a different moment, for a different purpose. Google Ads credits conversions to a click within its attribution model; GA4 models sessions and events; the CRM counts business outcomes. Add consent-driven signal loss, cross-device journeys and differing attribution windows, and a gap is expected. An audit's goal is not to force the numbers identical-it is to understand the gap, bound it, and confirm the platform optimises toward the outcome you care about.
Prebo Digital manages conversion tracking audits as a Google Premier Partner (2022-2026), giving direct visibility into how Google's own definitions and diagnostics behave.
The Conversion Action Inventory: Your First Audit Artefact
Before touching a setting, export every conversion action with its type, counting method, value, attribution window and filter. This table is the audit's backbone.
| Action | Source | Primary? | Count | Value |
|---|---|---|---|---|
| Demo request | GA4 import | Yes | One | Static R1,200 |
| Form start | GA4 import | Yes (flagged) | Every | None |
| Newsletter | Google tag | No | One | Static R50 |
Here 'form start' is a primary conversion counted on every interaction-so single-page scrolling generates multiple conversions per prospect. Smart Bidding, told form starts are valuable, optimises for cheap form starts rather than qualified demos.
Primary vs Secondary Settings: The Silent CPA Distorter
Only primary conversion actions feed bidding and appear in the Conversions column; secondary actions are observable but do not influence bidding. Primary should contain only actions of genuine business value-purchase, qualified lead, booked call. Micro-actions (form starts, video views, brochure downloads) belong as secondary.
Count Settings: 'One' vs 'Every' and the Value Trap
'One' counts a single conversion per click; 'Every' counts each occurrence. For leads, 'One' almost always matches economic reality. For e-commerce, 'Every' can double-count repeat submissions unless deduplicated on order ID. Pair this with value logic: dynamic order value for purchases, static or value-per-action for leads. Static values must reflect the CRM's average deal value-not an arbitrary round number.
Attribution Windows: Google Ads vs GA4 Lookback Differences
Google Ads defaults to a 30-day click window and 1-day view (display/video); GA4's reporting defaults differ and are configurable. Two systems with different windows will never reconcile to the rand. Pick windows deliberately, document them, and align them where reporting must be comparable.
Instrumenting Values Correctly: Dynamic Order Value vs Static Lead Values
For e-commerce, dynamic values from the data layer (revenue with a consistent tax definition) avoid the classic double-count where gross revenue is reported but margin funds bids. For lead businesses, use value-per-action modelling or offline imports tied to CRM stage. Precision on values turns a tROAS target into a profitability target rather than a vanity number.
Enhanced Conversions: What to Hash, What to Send, and When It Fails
Enhanced conversions recover measurement lost to browser restrictions by sending hashed first-party data-email, phone, name, address-that Google matches against its signed-in user graph. Hash client-side or only via trusted server environments, never send plaintext, and capture at the point of conversion (not from a stale cookie). It fails silently when data layer variables are missing on the thank-you page, email capture is optional, or consent blocks capture entirely. Test with Tag Assistant and diagnose match quality in the conversions diagnostics tab.
Consent Mode v2 and POPIA: What South African Advertisers Must Get Right
Under POPIA, consent must be specific and informed. Consent Mode v2 signals consent state to Google, enabling modelled conversions where consent is withheld. Your consent banner must set defaults before any tag fires:
gtag('consent', 'default', { ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied', analytics_storage: 'denied'});When the visitor accepts, fire an 'update' call. Without this, modelling cannot fill the gap-and many South African site audits we run find the banner implemented after tag load, nullifying the benefit.
Warning: consent must be set as a default before any Google tag fires. Loading tags first and 'updating' consent later silently disables the modelling benefit.
Server-Side Tracking: GTM Server Containers vs Google Tag Gateway
Both route signals through a first-party domain. A GTM server container gives control over which events fire, deduplication across platforms, and enrichment with CRM-level data-but requires hosting, maintenance and a technical owner. Google Tag Gateway is lighter, putting Google's tag serving on your domain-ideal where measurement resilience matters more than custom enrichment. Choose by team capability and whether you must reconcile multiple platforms (Meta, LinkedIn, Amazon) in one pipeline.
Offline Conversion Imports for B2B and Long Sales Cycles
For sales cycles measured in weeks, form-submit conversions are a proxy at best. Offline conversion imports feed CRM-verified outcomes back to Google Ads, tagged with GCLID or enhanced-conversion hashed identifiers. This closes the loop on what actually qualifies and lets Smart Bidding target qualified pipeline.
The Weekly Three-Number Reconciliation Ritual (With Tolerance Bands)
Pick a fixed day. Reconcile Google Ads-reported conversions, GA4 key events, and warehouse/CRM outcomes. Track variance against a tolerance band rather than expecting zero:
| Comparison | Acceptable band | Investigate if… |
|---|---|---|
| Google Ads vs GA4 | ±10-20% | Diverges >30% for 2 weeks |
| GA4 vs warehouse | ±5-15% | Gap grows week on week |
| Ads vs qualified CRM | Lead quality ratio stable | Ratio shifts without campaign change |
Tip: log the weekly numbers in a shared sheet-one row per week, one column per system. Drift is easier to spot chronologically than in isolation.
Test Before You Trust: Diagnostics Checklist
- Tag Assistant shows no duplicate tags on conversion pages.
- Enhanced conversions diagnostics show healthy match rates.
- Consent state is set before any tag fires.
- Offline imports show GCLID match rates above your threshold.
- E-commerce value definitions are consistent (tax, currency).
When to Revisit Bidding Strategy After Tracking Fixes
Do not change bidding strategy the same week you fix tracking-wait for two to three clean weeks so Smart Bidding re-learns against accurate signals. Then re-base targets: with qualified-demo imports, a tCPA set against form fills is the wrong signal and should move to the offline action. Our reporting approach includes a post-fix reconciliation period before we recommend bid changes, because premature optimisation against bad data simply scales the error.




