The AdWords API is no longer supported. Use the Google Ads API instead.

Click Tracking in Google Ads

Stay organized with collections Save and categorize content based on your preferences.

Google Ads provides advertisers with information like the number of times your ads have served and the number of clicks on your ads. With additional setup, Google Ads can provide conversion metrics like ad impressions or clicks. It can also provide information for third-party analytics systems through click-tracking URL parameters.

How click tracking works today

If you use Google Ads click tracking, you specify your landing page URL in the finalUrls, finalMobileUrls or finalAppUrls field, depending on the ad type and network. When a user clicks your ad, they're taken directly to the landing page URL:


If you use custom click tracking (for instance, a third-party click measurement system), then you also need the trackingUrlTemplate field to specify a tracking server URL. At serving time, Google Ads builds the landing page URL such that the click takes the user to the tracking server first, which then redirects the user to the landing page:


Parallel tracking

Parallel tracking is a new way of handling tracking requests when implementing custom click tracking. It takes advantage of the new sendBeacon browser function to perform tracking in the background and thereby accelerate the user to their final destination. This helps reduce lost visits when a user clicks on your ad but never sees your landing page because they navigate away before the redirect from your tracking URL completes.

With parallel tracking, the navigation experience is as follows:

Parallel Tracking

Technical requirements for parallel tracking

There are a few technical requirements that must be met before enabling parallel tracking. Depending on how your system is currently setup for tracking and reporting, you may be impacted by one or more of these items.


Parallel tracking only supports server-level redirects. In addition, every URL in the tracking redirect chain must support HTTPS. The tracking sequence will terminate at the previous URL when HTTP or on-page redirects like JavaScript or HTML are encountered. There will be no impact to the user experience as tracking happens in the background, but trackers that don't get called will not receive the click tracking information.

To ensure parallel tracking works correctly:

  1. Ensure that your tracking server uses the HTTPS protocol, and that any internal redirects you have set up at your end use HTTPS.
  2. Any redirect mechanism that uses an on-page method, like a JavaScript redirect, won't work. If you use any such redirection mechanisms in your tracking redirect chain, they need to be changed.

Auto HTTPs rewrite

While we don't have control over the subsequent redirects, Google Ads will always rewrite the first tracking call to HTTPS if it's not entered as such. The final URL can use either HTTP or HTTPS. However, ensure that your server is set up to handle the request if the protocol is switched to HTTPS for any of your URLs entered in Google Ads.

For example, if your tracker URL is, then it should respond to both and

Per-click IDs

Some tracking servers include a per-click ID when redirecting to the landing page so that the parameter can be read (and stored) by the website for joining various measurements. This is not possible with parallel tracking since the call to the tracking server does not forward to the website.

As a workaround, you can turn on auto-tagging in the customer account. When auto-tagging is enabled, the Google Click Identifier (GCLID) parameter will be added to the end of the landing page URL and tracking template URL during serving time. This enables both on-page tags (for example, Google Analytics) and tracking servers to process it. This parameter can be used as a common key to join traffic information.

In addition to auto-tagging, we have launched a new {gclid} ValueTrack parameter. If you currently have a parameter that you use for inserting your unique identifier, you can use {gclid} as the value instead to potentially reduce the amount of changes required to your website. For example, if the final URL or tracking template in Google Ads contains something like partner_Id=[Dynamically-generated click ID], you can now update it to partner_id={gclid}.

URL recomposition

At serving time, parameters attached to the {lpurl} ValueTrack parameter and its variants in your tracking template field will be parsed based on encoding rules and appended to the landing page call. In addition, when parallel tracking is applied, the {lpurl} parameter in the tracker call is replaced with a substitute URL, e.g., Additionally, all parameters going to the landing page will be appended to this URL.

Substituting {lpurl} with a Google substitute URL ensures that your webpage doesn't get pinged twice (once from the user click, and again from the parallel tracking redirect). The tracker should continue to redirect to this substitute URL as it would normally handle the {lpurl} ValueTrack parameter. The Google substitute URL will return an HTTP status code 204 upon redirection.

Consider the following example:

Google Ads setup
Final URL
Tracking template{lpurl}%3Flpvar%3Dabc&src=google
Calls where parallel tracking is supported
Parallel tracker call
Calls where parallel tracking is not supported
Browser call
--> Sequential hop

As shown, when parallel tracking is applied:

  1. The lpvar=abc parameter is parsed and appended to the landing page URL.
  2. The {lpurl} parameter in the tracker call is replaced with a substitute URL.
  3. The substitute URL includes all parameters sent to the landing page so that the tracking server can process it as needed.

Landing page parameters

Since we retrieve the final URL from Google Ads and load it directly in the browser in response to a user click, it is no longer possible for any click trackers to add or modify landing page URL parameters during the click time redirect. Those parameters need to be entered directly in the finalUrlSuffix field.

This parameter is supported in all entities where trackingUrlTemplate is supported. The string entered in this field will be appended to the landing page call, as well as the Google substitute URL. This will enable the tracking server to process these parameters as needed. This field will allow tracking parameters (Custom and ValueTrack) similar to the tracking URL template field.

Consider the following example:

Current Google Ads setup
Final URL
Final URL suffix  
Tracking template{lpurl}
Landing page parameter
(Added at click redirect time by the click tracker)
Changes to make for parallel tracking:
Final URL suffix pvar=xyz
Calls where parallel tracking is supported
Parallel tracker call
Calls where parallel tracking is not supported
Browser load
--> Sequential hop

With sequential tracking, browser cookies are set in the first-party context for the tracker's domain. With Beacon functionality, the cookies are written to the main browser jar in a third-party context. If your service depends on cookies being written in first-party context, make any needed changes on your end.

Enable parallel tracking for Display

You can opt in to parallel tracking for Display campaigns by setting the Customer's parallelTrackingEnabled field to true.

Troubleshooting tools

The following tools can help in troubleshooting your parallel tracking setup.

Enhanced preview ad click tool

The preview feature next to the tracking template in the Google Ads UI (Test button) has been enhanced to show the following URLs:

  • When parallel tracking is available:
    • Landing page URL that will be loaded in the browser
    • Tracking URL that will be loaded in the background
  • When parallel tracking is unavailable:
    • Tracking URL that will be loaded in the browser (sequential tracking)

You can review these URLs to verify that the parameters are transmitted to the landing page and tracker as intended. Note that the instant checks in this tool will not show you specific errors related to parallel tracking requirements (e.g., https://requirement).

Parallel tracking indicator

If the tracker URL is called using the parallel tracking option, Google Ads will append a gb=1 parameter to the URL. You can use this parameter to identify parallel tracking calls in tracking solutions.

Testing individual campaigns

You can test individual campaigns without opting in the entire account for parallel tracking. This enables you to perform end-to-end testing in a limited capacity. Follow the steps below to enable parallel tracking for specific campaigns.

  1. Go to the Settings page for the desired campaign.

  2. Under the Campaign URL options setting (you may have to expand Additional settings), create a custom parameter called {_beacon} and assign it the value true.

    You don't need to use this custom parameter in any of your URLs.

    If Google finds the presence of this parameter, all clicks under that campaign will get parallel tracking treatment.

  3. Verify parallel tracking is enabled by looking for &gb=1 in your tracking calls (this indicates a background call from the browser).

Additionally for testing, you can force parallel tracking for any browser (even ones which we've yet to announce support for) by starting the Google search using this link. This will even work for ad clicks from accounts or campaigns that haven't opted-in to parallel tracking.

Getting additional support

If you need additional support, please fill out this form.

Next steps