Final URL suffix + SDK
Track Google Ads and Microsoft Advertising clicks without any redirect by putting the parameters in the Final URL suffix and recording the click with the landing-page SDK.
Last updated 5 min read
On this page
In this setup there is no tracking template and no redirect. Google Ads (or Microsoft Advertising) appends your parameters to the landing page through the Final URL suffix, and the landing-page SDK records the click from the page itself. Use it when:
- your tracking domain is not certified by Google yet (the template builder defaults to this mode then);
- you do not want any third-party request in the click path.
It works with any tracking domain, certified or not.
What you give up#
Step 1 — Generate the suffix#
- Open Google Ads → Tracking template.
- Choose the platform, campaign type, tracking domain and Link key (Whole workspace, One offer or Offer + affiliate). The SDK needs an offer to record a click: with Whole workspace, pick it under Offer for the SDK (see the note below).
- Select the ValueTrack parameters.
- In the result column choose Final URL suffix + SDK.
- Copy the Final URL suffix and the Landing-page SDK · HTML snippet.
The suffix contains the same parameters as the template, without force_transparent and url=:
gclid={gclid} &campaignid={campaignid} &adgroupid={adgroupid} &creative={creative} &keyword={keyword} &matchtype={matchtype} &network={network} &device={device}For the Hotel campaign type the suffix also gets adgroupid={adgroupid}.
Step 2 — Paste the suffix#
- In Google Ads open Admin → Account settings → Tracking (or a campaign's Settings → Campaign URL options).
- Paste the suffix into Final URL suffix.
- Leave Tracking template empty.
In Microsoft Advertising use Settings → Account level options, the Final URL suffix field, and enable
auto-tagging of msclkid.
Step 3 — Install the SDK#
Add the snippet to every landing page, in the <head> or before </body>:
<script async
src="https://trackcrown.com/sdk.js"
data-offer="Kx7Lm2Q"
data-aff="Pq3Rt8z"></script>data-offer is always present; data-aff appears for Offer + affiliate keys; data-param appears when the
workspace's click ID parameter is not click_id.
If the snippet was changed by hand and the page records no click, the SDK says why on the browser console (a warning
prefixed with the SDK object name ArcTrack:, for example … answered HTTP 400 "offer required" with a hint to add data-offer), and
ArcTrack.error() returns the same text.
How the click is recorded#
When the page loads, the SDK:
- looks for a click ID in the URL (
data-param,click_id,transaction_idortid) — none in this mode; - finds
gclid(orgbraid/wbraid) and asks the tracking domain for a click recorded with it (POST /lp); - when no click exists — always the case in this mode — the tracking domain creates a direct click for
data-offer(anddata-aff: the partner must be active and, unless the offer is public, approved for it), maps the page URL's query parameters (your suffix values) onto the click exactly like a tracking link, and returns its click ID; - stores the click ID on your site for 30 days (local storage and the first-party
atk_cidcookie) and decorates links.
Conversions fired with the SDK call ArcTrack.conversion(…), a postback carrying the stored click ID, or a postback with
gclid= attribute to that click. Full behaviour: SDK reference.
Suffix rules#
The linter checks the suffix as you build it (Suffix OK. when clean):
You can lint a suffix through the API too: POST /api/v1/google-ads/lint with {"suffix": "…"}.
Final URLs with a #fragment#
Google inserts the suffix before the #fragment, so https://shop.example.com/sale#top becomes
https://shop.example.com/sale?. The SDK reads the query normally.
Switching to a tracking template later#
When the domain becomes Certified:
- Build the template on the same link key and paste it into Tracking template.
- Empty the Final URL suffix field in Google Ads.
- Keep the SDK on the landing pages — with parallel tracking it joins the background click by
gclidinstead of creating a direct click, so on-site conversions keep attributing. Use an offer key (One offer or Offer + affiliate) for the template: clicks of a Whole workspace template carry no offer, and their SDKArcTrack.conversion()calls are refused (known issue, see Landing-page SDK).
See also: Parallel tracking · Tracking template builder.