The short answer
Server-side tracking for Google Ads sends each conversion from your server as well as from the Google tag, with the click id and hashed email or phone. Give both copies the same transaction id so Google counts the conversion once.
Why Google Ads conversions go missing
The Google tag runs in the browser, so ad blockers, consent choices and short cookie lifetimes can stop it. When it does not fire, Google Ads never learns the click converted, and Smart Bidding has less to work with.
gclid, gbraid and wbraid
Google adds a click id to the landing page link. Which one depends on where the click came from.
- gclid: The usual click id on most clicks.
- wbraid: Used on some iOS clicks where gclid cannot be, for conversions on a website.
- gbraid: Used on some iOS clicks where gclid cannot be, for conversions in an app.
What to send from the server
Send the conversion action, the time, the click id you saved, and the visitor's email and phone, normalised and hashed with SHA-256. Use the same transaction id the Google tag used, so Google can drop the duplicate.
Set it up step by step
- 1Create a conversion action in Google Ads for each kind of conversion, such as a form submit or a booked call.
- 2Save gclid, gbraid or wbraid from the landing URL for the whole visit.
- 3Fire the Google tag on the conversion with a transaction id.
- 4From your server, send the same conversion with that transaction id, the click id and hashed contact details.
- 5Check the conversion action's diagnostics in Google Ads.
The no-code way
In Unfunnel you sign in to Google Ads once. It creates the conversion actions, adds the tag, keeps every click id on the lead and, on Launch and up, sends each conversion again from our server through Google's Data Manager API with the same transaction id.
Build it without code: tracking, ad tags and booking built in. Free to start.
Start for free