Google Ads Click Tracker
The AxiTrace click tracker is a transparent, server-side redirect on click.axitrace.com
that you place in the tracking template of your Google Ads account. Every paid click that passes
through it is recorded on AxiTrace servers with the real IP address of the clicking browser, its
user agent and the click identifier, and the browser is sent straight on with a single HTTP 302 to
the address in the url parameter. No cookies, no intermediate domains, nothing appended
to your landing page address.
The click tracker is part of every AxiTrace plan. Setup in the panel is enabled per account by AxiTrace: if you want to use the tracker on your Google Ads account, write to info@axitrace.com and we switch it on for your workspace. The template below already works for any workspace whose landing pages sit on a verified domain.
Why a click tracker
The AxiTrace JavaScript SDK sees a visit only once your page has loaded and the script has run. A paid click can be charged without that ever happening: the visitor closes the tab before the page loads, an ad blocker or a consent banner stops the script, or the click comes from automation that never renders a page. The click tracker records the click itself, on the server, at the moment the browser follows the ad. That record is what Fraud Detection compares with the landings it sees, and it is the strongest evidence in a refund claim.
How it works
Google Ads calls a tracking template in one of two ways:
-
Parallel tracking (the normal case). When someone clicks your ad, the browser
goes directly to your landing page. In the background, the same browser sends a beacon request to
Google's click server and then to your tracking template. In that background call Google replaces
{lpurl}with its own substitute address, so the tracker answers with a 302 to that Google address and your page is never loaded twice. The visitor never waits for the tracker. -
Sequential fallback. A browser that cannot send a background beacon follows the
chain in the foreground: Google, then
click.axitrace.com, then your landing page. The tracker answers at once with a 302 to the exact landing page address, so the extra hop costs a single short request.
In both paths the request reaches click.axitrace.com directly from the clicking browser,
which is why the tracker sees the real IP address and user agent of the click rather than an address
of Google or of a proxy.
The tracking template
Paste this template into the Tracking template field of your Google Ads account
(account level covers every campaign; a campaign, ad group or ad level template overrides it), and
replace {workspace_key} with the public key of your AxiTrace workspace, the same key
your tracking snippet uses:
https://click.axitrace.com/c/{workspace_key}?url={lpurl}&campaignid={campaignid}&adgroupid={adgroupid}&creative={creative}&keyword={keyword}&matchtype={matchtype}&network={network}&device={device}&placement={placement}&targetid={targetid}&loc_physical_ms={loc_physical_ms}
Everything in curly braces except {workspace_key} is a Google Ads ValueTrack parameter
that Google fills in at click time. Leave those exactly as they are.
Parameters
| Parameter | Filled by | Meaning |
|---|---|---|
url | Google ({lpurl}) | The transparency parameter: the address of the next hop. The tracker redirects to exactly this value. Required. |
campaignid | Google ({campaignid}) | Campaign ID. |
adgroupid | Google ({adgroupid}) | Ad group ID. |
creative | Google ({creative}) | Ad ID. |
keyword | Google ({keyword}) | The keyword that matched the search, empty on networks without keywords. |
matchtype | Google ({matchtype}) | Keyword match type: e exact, p phrase, b broad. |
network | Google ({network}) | Where the click happened: Search, Search partners, Display, YouTube and others. |
device | Google ({device}) | Device class: m mobile, t tablet, c computer. |
placement | Google ({placement}) | The site or app where the ad was shown, on placement-based networks. |
targetid | Google ({targetid}) | ID of the keyword, audience or other target that triggered the ad. |
loc_physical_ms | Google ({loc_physical_ms}) | Google's location ID for where the click physically happened. |
gclid, gbraid, wbraid | Appended by Google | The click identifier. With auto-tagging on, Google adds it to the tracking URL itself; you do not put it in the template. |
The list of accepted parameters is fixed. AxiTrace adds no parameters of its own, neither to the tracker address nor to your landing page address.
Redirect rules
The tracker always answers immediately, with one of these responses:
- 302 to exactly the
urlvalue. When the target is an HTTPS address on one of your verified domains, or Google's parallel tracking substitute address, theLocationheader is the decodedurlvalue byte for byte. Nothing is appended, removed or re-encoded. - 302 to the HTTPS version of an
httpaddress. When the target uses plainhttpon one of your verified domains, theLocationheader is the same address with onlyhttpreplaced byhttps, and the response carriesX-Click-Tracker-Reason: https-upgrade. - 403 for a target outside your verified domains. The tracker never redirects anywhere the
urlvalue does not name. A target that is not on a verified domain, or a Google address that redirects onwards, is refused with403 target not allowedand the headerX-Click-Tracker-Reason: target-not-verified(orredirector-path). The click is still recorded. - 400 for an invalid
url. A value that is not an absolutehttporhttpsaddress is refused with400 invalid url parameterandX-Click-Tracker-Reason: invalid-url. - 404 for an unknown key. A workspace key that does not exist or is not active answers
404 unknown click tracker key, whatever theurlvalue. Nothing is recorded. - 400 for a missing
url. A request without aurlvalue is rejected. - Never cookies. No response sets a cookie, and the redirect has no body to render. There are no JavaScript or meta refresh redirects and no intermediate domains.
- Nothing appended. The tracker never adds parameters to the landing page address.
- HTTPS only. The tracker serves HTTPS only, and only redirects to HTTPS targets.
- Landing page addresses with their own parameters. Inside a tracking template Google escapes
?and=in{lpurl}but leaves&as it is. The tracker reads the whole address anyway, so a final URL such ashttps://shop.com/p?a=1&b=2is redirected to exactly that address, with every parameter.
Every response carries Cache-Control: no-store and X-Robots-Tag: noindex.
HEAD requests get the same status and headers as GET; any other method gets
405.
Verified domains are the allowed targets
The allowed landing page hosts are the domains verified in your workspace, managed in the Domains
card of the workspace settings (see Domain Configuration).
A newly verified domain becomes a valid target
within about a minute; until then clicks to it are refused with 403. With parallel
tracking your visitors still reach your page, but a browser on the sequential path would see the
error, and Google may report the destination as not working. Verify every domain your ads point to
before you switch the tracking template on: the click tracker page in the panel lists the landing
page domains of your campaigns that are not verified yet.
What is recorded
For every click that reaches the tracker with a valid workspace key, AxiTrace stores one record:
- the time of the click, to the millisecond;
- the IP address of the clicking browser, and whether that address was verified as the real client address;
- the user agent, the low-entropy client hints the browser sends by default, and the accepted languages;
- the host of the referring page, never its full address;
- the click identifier (
gclid,gbraidorwbraid) and the campaign parameters listed above; - the host of the target and which redirect rule was applied.
Records are kept for 100 days and then deleted automatically. They are used for invalid-click detection in Fraud Detection and as evidence in refund claims for your own Google Ads account, and for nothing else: not for marketing, audience building or profiling.
Privacy
- No cookies are set or read, so the tracker stores nothing on the visitor's device.
- No third parties. The record stays on AxiTrace servers in your workspace. The IP address is classified against offline network databases and is not sent to any reputation service.
- Roles. As for the rest of the tracking data, you are the controller and AxiTrace processes the record on your behalf. The full description is in the privacy policy, section 3.8.
- Deletion. Deleting a workspace deletes its click records with it.
Need help?
Write to info@axitrace.com with your workspace name and the tracking template you pasted, and we will check the redirect for you.