Enhanced Conversions without the conversion linker
Send purchase, lead, and signup conversions to Google Ads server-side with SHA-256 hashed customer data, automatic gclid capture, and 400-day click attribution. No gtag.js. No conversion linker tag. No signal loss.
20-40%
More conversions
Recovered from ad blocker signal loss
400 days
Click attribution
gclid persisted in server-set first-party cookies
0 KB
Google tag JavaScript
No gtag.js, no conversion linker, no floodlight
<50ms
Delivery latency
Conversion data reaches Google in real time
Why client-side conversion tracking breaks
Google Ads relies on three things to attribute conversions correctly: a gclid click identifier, hashed customer data for Enhanced Conversions matching, and timely conversion reporting. Client-side tracking fails at all three.
Ad blockers hide your best customers
20-40% of visitors block gtag.js. These aren't random users — they're tech-savvy, high-intent buyers. Every blocked conversion is a missing signal that degrades Smart Bidding performance. Google optimises on what it can see, and it can't see your best customers.
gclid expires before customers convert
Safari caps client-set cookies at 7 days. If a customer clicks a Google ad, researches for 10 days, and then converts, the gclid is gone. The conversion can't be attributed. Your ROAS calculations are wrong and Smart Bidding learns from incomplete data.
Enhanced Conversions need clean PII
Google Ads Enhanced Conversions requires SHA-256 hashed email, phone, and address data. Client-side implementations depend on the conversion linker tag parsing form fields correctly — fragile, privacy-risky, and often misconfigured.
How Datafly Signal delivers conversions to Google Ads
Capture the gclid at click time
Datafly.js automatically extracts gclid, gbraid, and wbraid from URL parameters when users land on your site from a Google ad. The click ID is stored in a server-set first-party cookie with a 400-day expiry — fully ITP-exempt.
Collect conversion events server-side
When a purchase, lead form, or signup occurs, Datafly.js sends the event to your own subdomain. The Ingestion Gateway enriches it with the stored gclid and user identity.
Hash PII in the governance layer
The Org Data Layer automatically SHA-256 hashes email, phone, first name, last name, and address data before it reaches the delivery pipeline. No raw PII ever leaves your infrastructure.
Deliver via the Google Ads API
The Delivery Worker sends the conversion to the Google Ads Conversions Upload API with the gclid, hashed user identifiers, conversion value, and currency. Guaranteed delivery with retry.
Google matches and attributes
Google receives a complete conversion signal — click ID plus hashed PII — and matches it to the original ad click. Enhanced Conversions matching fills in gaps where the gclid alone isn't sufficient.
Pipeline configuration
Every conversion is shaped by a version-controlled pipeline config. The mapping below sends purchase events to Google Ads Enhanced Conversions with hashed customer data and click attribution.
# google-ads-enhanced-conversions.yaml
name: google_ads_purchase
integration: google-ads
trigger:
event: purchase
parameters:
customer_id: "123-456-7890"
conversion_action_id: "1234567890"
global:
gclid:
source: context.click_ids.gclid
mode: direct
gbraid:
source: context.click_ids.gbraid
mode: direct
wbraid:
source: context.click_ids.wbraid
mode: direct
events:
purchase:
destination_event: conversion
mappings:
conversion_date_time:
source: timestamp
mode: direct
conversion_value:
source: properties.value
mode: direct
currency_code:
source: properties.currency
mode: direct
user_identifiers:
hashed_email:
source: context.traits.email
mode: hash_sha256
hashed_phone_number:
source: context.traits.phone
mode: hash_sha256
address_info:
hashed_first_name:
source: context.traits.first_name
mode: hash_sha256
hashed_last_name:
source: context.traits.last_name
mode: hash_sha256Built for Google Ads performance
Every feature is designed to maximise the conversion signal Google receives.
Automatic gclid capture
gclid, gbraid, and wbraid captured from URL parameters and stored in 400-day server-set cookies. No conversion linker tag needed.
Enhanced Conversions
SHA-256 hashed email, phone, name, and address sent with every conversion. Maximises match rate without exposing raw PII.
Offline conversions
Import CRM and backend conversions with the same pipeline. Match to gclid or hashed customer data for complete measurement.
400-day attribution
Server-set cookies persist the gclid for 400 days — 57x longer than Safari's 7-day client-side limit. Full buying cycle coverage.
Zero Google JavaScript
No gtag.js, no conversion linker, no global site tag. Remove 80KB+ from every page while improving conversion signal quality.
Better Smart Bidding
More complete conversion data means better automated bidding. Google sees the full picture — not just the conversions that survive ad blockers.
Supported conversion types
Any event tracked by Datafly.js or sent via the server-side API can be mapped to a Google Ads conversion action.
| Conversion Type | Source Event | Key Signals |
|---|---|---|
| Purchase | purchase | gclid, value, currency, hashed email/phone |
| Lead | generate_lead | gclid, lead value, hashed email/phone |
| Sign up | sign_up | gclid, hashed email |
| Add to cart | add_to_cart | gclid, value, currency, items |
| Begin checkout | begin_checkout | gclid, value, currency |
| Page view | page_view | gclid, page URL, page title |
| Offline / CRM | custom | gclid or hashed email, conversion value, date |
Recover every Google Ads conversion
Request a technical walkthrough. We'll show you how much conversion signal your current setup is losing and how Datafly Signal recovers it.