Google Enhanced Conversions for web apps
Enhanced Conversions improves Google's match rate by sending hashed first-party data with each conversion. This guide covers what to hash, where to fire events, and how to verify payloads land.
- Google Ads
- Enhanced Conversions
- hashing
- CAPI
Problem: Google Ads reports fewer conversions than your billing system. Enhanced Conversions is enabled in the UI, but nobody on the team knows which fields to send or how to confirm they are hashed correctly.
What Enhanced Conversions actually does
Google Ads matches conversions to ad clicks using cookies, gclid, and device signals. When those break, match rates fall. Enhanced Conversions supplements the match with hashed user-provided data: email, phone, name, and address.
Google normalizes and SHA-256 hashes values server-side if you send them raw, but pre-hashed delivery is the documented approach for server-side implementations.
Minimum viable payload
For most SaaS and e-commerce apps, email alone moves the needle. Add phone and name if you collect them at checkout. Each conversion needs a conversionAction resource name, a timestamp, and ideally gclid from the landing URL.
Map TrackStack Purchase to your Google conversion action in Configure.
trackstack.capture("Purchase", {
email: "user@example.com",
phone: "+14155551234",
value: 49.0,
currency: "USD",
transactionId: "order_8821",
eventId: "evt_google_8821",
});Consent and policy constraints
Enhanced Conversions requires lawful basis to use personal data for ads measurement where applicable (GDPR, UK GDPR, US state laws). Your consent banner and privacy policy must cover sending hashed identifiers to Google.
If a user declines marketing cookies, you may still send server-side conversions with Consent Mode signals — verify current Google guidance before shipping.
Verifying delivery
Google's UI shows Enhanced Conversions coverage as a percentage of reported conversions — often lagging 24–48 hours. For same-day debugging, use conversion action diagnostics or delivery logs.
Common failures: wrong conversion action ID, missing currency on value events, duplicate order_id without dedup, and emails that fail normalization.
Pair with first-party capture
Preserve gclid on landing in a first-party cookie. Attach it to Purchase server events even when the user converts days later.
See Platforms for Google-specific credential setup.
Sources
Official documentation and references cited in this article.
More in Guides
LinkedIn and TikTok CAPI: a practical overview
Beyond Meta and Google, LinkedIn and TikTok have server-side conversion APIs with their own payload shapes and match keys. Here is what each expects and where teams get stuck.
Read postB2B vs DTC conversion tracking patterns
Pipeline SaaS and e-commerce shops share ad platforms but not conversion logic. Match keys, event timing, and what you optimize for differ — and your tracking setup should reflect that.
Read postHow to set up Meta CAPI in Next.js without GTM
Skip Google Tag Manager. Wire first-party Meta CAPI in Next.js with an SDK that handles hashing, deduplication, retries, and delivery logs from your existing app code.
Read postReady to fix your conversion pipeline?
Install the TrackStack SDK, route events to Meta and Google, and verify delivery from one dashboard.