Skip to content
Browse documentation

Google Ads test failures

What each Google Ads "Test" status means for your tracking template and how to fix it.

Last updated 3 min read

On this page

Google Ads tests a tracking template by following it the way its crawler does: server-side redirects only, no JavaScript, HTTPS. Reproduce every test in the panel first — it shows the full chain and the reason:

  1. Google Ads → Tracking template: build the template; the linter flags errors before you paste it.
  2. Google Ads → Simulator: paste the template and a final URL; run parallel (Google's background call to google.com/asnc) and sequential mode. It follows at most 10 hops, 5 seconds each, HTTPS only.
  3. Google Ads → Transparency tester: checks one link against the transparency rules (single 302, Location equal to url=).

See Template linter and simulator for the tools themselves.

Status by status#

Google Test statusMost likely causeFix
Page found / Chain reaches google.com/asncWorking.—
Tracking chain terminatesTrackCrown answered 4xx instead of redirecting: the landing-page host is not allowlisted (403 not_allowed), url= is missing (400 missing_url) or malformed (403), or the link key is unknown (404).Add the host to the offer's Allowed transparent destinations or Settings → Workspace allowed destinations; rebuild the template with url={lpurl} last.
UnreachableDNS does not resolve, the certificate is missing or invalid, or the host did not answer within 5 seconds.Check the domain on Tracking domains and see Certificate and DNS problems.
Not HTTPSThe template or a hop uses http://.Use https:// on a tracking domain with a valid certificate.
Final URL mismatchThe chain ended somewhere else: a redirect on your own site (for example example.com → www.example.com, a language redirect), a fixed URL in url= instead of {lpurl}, or a nested tracker.Use the exact final URL the site serves; keep url={lpurl}; remove redirects after the tracker.
Landing page has additional parametersSomething added parameters to the final URL. With Append the click ID to transparent redirects on, TrackCrown adds only your click-ID parameter.Check nested trackers and site redirects that add parameters.
JavaScript redirect in tracking chainA page in the chain redirects with JavaScript or a meta refresh. TrackCrown itself only uses server-side 302s.Fix the landing page or the nested tracker.
Too many redirectsMore than 10 hops, or a loop.Remove redirects; never point the final URL at a tracking domain.
Page not foundThe final URL returns 4xx/5xx.Fix the landing page.
HTTP redirect in tracking chainInformational.Every tracker after ours must be certified too.

Template mistakes that cause failures#

Linter codeMistake
missing_lpurl, lpurl_not_in_url_param, static_url_paramNo url={lpurl}, or a fixed address.
lpurl_not_last, text_joined_to_lpurlurl={lpurl} must be the last parameter, alone.
unknown_tagA tag Google does not support, e.g. {gbraid} or {wbraid} — Google adds those to the final URL itself.
non_click_pathThe template points at /px, /pb, /lp, /i/ or /sdk.js instead of a click path (/c/).
unknown_host, host_not_certifiedNot one of your active tracking domains, or a domain not certified by Google.
space_or_control_char, stray_brace, length_over_2048Copy-paste damage or an overlong template.

The full list is in Error and reason codes.

The test passes, but campaigns are disapproved#

  • Destination not working for some countries or devices: TrackCrown redirects every visitor identically, but your site may not (geo blocks, bot protection, consent walls that redirect). Check with the Simulator using the final URL Google flagged.
  • Tracking domain not certified: Google allows only certified click trackers in templates for accounts created after 28 August 2023 — see Transparency and certification. Until the domain is certified, use the Final URL suffix + SDK setup, which needs no redirect.
  • Cloudflare or a WAF in front of the tracking domain can show challenges to Google's crawler. Tracking domains must be DNS only.

Clicks are recorded but conversions do not attribute#

Parallel tracking means the browser never passes through the tracker, so the landing page has gclid but not our click ID. Join by gclid: install the landing-page SDK or send gclid on the postback. See Conversions are not attributed.

Something unclear or missing in this article?Tell us