What This Tutorial Covers
By the end, every Google Ads click that turns into a sale will be reported back to Google with its original click identifier and hashed first-party data, so Google can attribute the conversion and train on it, even though the sale happened on a page you do not control.
You will need:
- A Google Ads account with conversion tracking access
- A tracker or redirect layer that can capture URL parameters at click time
- Access to your conversion data (the sale, plus whatever customer identity the merchant or network passes back to you)
- A way to upload conversions to Google: the Google Ads UI, a Google Ads API connection, or a tracker that does the upload for you
The Affiliate Problem in One Diagram
The reason normal Google tracking fails for affiliates is structural. The click lands on your page, but the conversion fires on someone else's. Nothing bridges the two unless you build the bridge.
The Google tag expects to fire on the conversion page; affiliates never control that page, so the click identifier captured on your own page becomes the only bridge back to Google.
Step 1: Capture the Click Identifier at Click Time
When someone clicks your Google ad, Google appends a click identifier to the landing URL. For most clicks that is the gclid. On iOS and in privacy-restricted contexts it may instead be gbraid or wbraid, so capture all three. Your tracker or redirect layer has to read these parameters off the incoming URL and store them against that visitor's session before the visitor moves on.
Set your final URL or tracking template so the identifiers are present, then store them. If you use a redirect-based tracker, this happens automatically as the click passes through. If you run your own landing page, read gclid, gbraid, and wbraid from the query string on page load and persist them (first-party cookie plus your server-side session).
Failure point one: capturing only
gclid. A meaningful share of Google Ads clicks now arrive withgbraidorwbraidinstead. If you only look forgclid, those conversions can never be uploaded, and they are disproportionately your iOS traffic. Capture all three.
Step 2: Carry the Identifier Through the Funnel to the Sale
The click identifier is worthless if it does not survive to the moment of conversion. As the visitor moves from your landing page to the offer, pass the identifier along, in the sub-ID or tracking parameter the network supports, so it is attached to the click the merchant reports back to you. ClickBank, most CPA networks, and direct merchants all give you a pass-through field (often called a tracking ID, sub1, or affiliate parameter). Put your click identifier there.
When the sale fires, the network's postback or IPN returns that same value to your tracker. Now you have a row that ties one specific gclid to one specific sale amount and, ideally, whatever customer identity the network passes back.
Failure point two: letting the identifier get truncated or dropped in the pass-through. Some networks cap the length of the sub-ID field or strip characters. Test one real click end to end and confirm the exact identifier you captured is the exact value that comes back on the postback. If it is mangled, shorten what else you pack into that field so the click identifier survives intact.
Step 3: Choose Your Upload Path
You now have conversions with their click identifiers sitting in your tracker. Google needs them. There are three ways to get them there, in rising order of signal quality:
- Offline conversion import (click-identifier based). Upload a file or feed of
gclid/gbraid/wbraidplus conversion time, name, and value. Google matches each row to the original click. This is the baseline and it works without any customer identity. - Enhanced Conversions for Leads. In addition to the click identifier, you send hashed first-party data (email, phone, name, address). Google uses it to match conversions it could not match on the identifier alone, which recovers conversions and improves attribution accuracy.
- The Google Ads API with a maintained connection. Instead of manual file uploads, your tracker or a script pushes conversions to Google automatically as they happen, carrying both the click identifier and the hashed identity.
For a serious affiliate, aim for option two or three. The click identifier alone gets the conversion counted. The hashed identity is what lifts match rates and gives Google's model a richer signal to train on.
Step 4: Hash the First-Party Data Correctly
Enhanced Conversions requires that any personal data you send is hashed with SHA-256 before it leaves your system, and normalized first. Google is strict about the normalization, and getting it wrong silently drops the match.
Normalize before hashing:
- Email: trim whitespace, lowercase everything. For gmail.com addresses, remove dots from the local part. Then SHA-256.
- Phone: strip spaces, dashes, and parentheses, and format in E.164 (a leading
+and country code, for example+14155551234). Then SHA-256. - Name and address fields: lowercase, remove leading and trailing whitespace, drop punctuation. Then SHA-256 each field.
Send the resulting hex-encoded hashes, never the raw values. If you upload through the Google Ads UI's Enhanced Conversions option, Google can hash on submission, but if you send through the API you hash first.
Step 5: Upload, Then Verify (Do Not Skip This)
Push the conversions through your chosen path. Then confirm they actually landed and matched, because a silent partial failure here looks identical to success.
In Google Ads, open your conversion action and check the diagnostics. You are looking for two things: that recent conversions are being recorded, and that the Enhanced Conversions status reports data is being received and matched. If you uploaded by click identifier, check the offline conversion diagnostics for the match rate. A match rate far below what you uploaded means identifiers are being dropped upstream, which sends you back to Step 2 to find where.
Verify with one real conversion first. Run a single click through your own ad, complete a test purchase if you can, and trace that exact row from capture to upload to the Google diagnostics screen. One clean end-to-end trace tells you more than a hundred rows you never checked.
What Good Looks Like
A working affiliate setup on Google Ads has four properties: every click captures gclid, gbraid, and wbraid; the identifier survives the pass-through to the network unmangled; each sale is uploaded to Google with both its click identifier and hashed first-party data; and the Google Ads diagnostics confirm conversions are recorded and matched. When all four hold, Google can attribute your affiliate sales to the exact clicks that produced them and train on real conversions, even though the sale itself happened on a page you will never control.
The piece most affiliates never close is the last mile of that signal, the hashed identity and the conversions that arrive after the click. A redirect layer that captures the identifiers and a system that uploads them with full identity is the difference between Google guessing and Google knowing. That is the same job a purpose-built tracker automates end to end: ClickerVolt captures the click identifiers, holds them through the funnel, and uploads conversions to Google with the identity fields already attached, so the chain in this guide runs without you assembling it by hand.
Whatever you use, do the Step 5 verification before you trust a single Google Ads conversion number. The setup that looks finished and the setup that is actually matching conversions are not the same setup, and only the diagnostics screen can tell them apart.
See how ClickerVolt handles Google Ads conversion tracking
FAQ
Can I track Google Ads conversions without a tag on the sale page?
Yes. As an affiliate you rarely control the conversion page, so instead of firing a tag there, you capture Google's click identifier (gclid, gbraid, or wbraid) on your own page, carry it through to the sale, and upload the conversion back to Google afterward through offline conversion import or Enhanced Conversions.
What is the difference between GCLID, GBRAID, and WBRAID?
All three are Google Ads click identifiers. gclid is the long-standing one. gbraid and wbraid were introduced for iOS and privacy-restricted app-to-web and web journeys where gclid cannot be set. Capture all three, because clicks arrive with different ones and the missing ones are usually your iOS traffic.
Do I need Enhanced Conversions, or is offline import enough?
Offline conversion import by click identifier gets the conversion counted. Enhanced Conversions adds hashed first-party data on top, which raises the match rate and gives Google a richer signal. If you can pass any customer identity from the network, use Enhanced Conversions; it recovers conversions the identifier alone would miss.
Is it safe to send customer data to Google?
Enhanced Conversions requires that personal data is normalized and hashed with SHA-256 before it leaves your system, so Google receives one-way hashes, not raw emails or phone numbers. Follow Google's normalization rules exactly, and never upload unhashed personal data through the API.
