Google's Upgraded URLs

Google's Upgraded URLs signified a major change to the way that Destination URLs are associated with keywords and other trackable objects (creatives, sitelinksc etc.) and a new paradigm for how URLs are constructed and served with ads.

While traditional ('legacy') URLs are well-understood, they can be problematic because they're simply not scalable if you have large numbers of keywords. For example, pushing changes to millions of keyword URLs at once can take a significant amount of time. On top of that, Google Ads usually requires that a trackable (like a keyword) is re-submitted for editorial review every time a change to its URL is made.

Upgraded URLs represent a solution to these problems. 

The Basics Of Upgraded URLs 

Instead of a single Destination URL for each keyword or creative, Upgraded URLs makes it so that each URL is now created from three URL 'building blocks' that exist in various parts of your account, similar to how Product Group URLs work. These three building blocks are: 

Final URLs: A landing page / click-through URL.

Tracking Templates: A template URL for tracking solutions and extra parameters.

Custom Parameters: User-defined ValueTrack parameters.

We'll explain each of these in depth below. Upgraded URLs also introduced several new Google ValueTrack parameters.

Once set up, URLs are no longer found only at the keyword or creative level. Instead, Google Ads combines a keyword’s Final URL (think of this as a click-through URL), a separate account-level Tracking Template, and any user-defined Custom Parameters it can find. The combination of these three pieces will then generate and serve a URL that looks like URLs that we knew prior to Upgraded URLs.

In a nutshell:

One Tracking Template + Many Final URLs + Many Custom Parameters = Many Served URLs

Since the Tracking Template can live at the account level, you can manage common parameters and your redirect logic in one place. Additionally, because Tracking Templates don’t contain the Final URL, updates to the template won’t trigger editorial re-reviews.

Final URL / Landing Page 

Every trackable object (keywords, sitelinks, placements, creatives, etc.) has what Google calls a Final URL. In MarinOne, we call this the Landing Page. Google also has a Mobile Final URL for mobile devices, known as a Mobile Landing Page in MarinOne.

The Final URL/Landing Page can be thought of as the ultimate page where a user clicking on the ad in Google will arrive. This URL must be a domain that the company owns and can only contain redirects if they are within the company’s own domain (no third-party redirects are allowed).

Note: In case MarinOne detects that the end of any Landing Page URL does not already contain a ?,  a ? is appended to the end of the Landing Page URL. This is a preemptive measure to ensure that when Tracking Parameters are appended to the end of a Landing Page, the URL does not fail.

Therefore, it is advised to upload creatives in MarinOne. Uploading creatives in the publisher account can result in these syncing into MarinOne, Autocorrect appending a '?'  to the end of the Landing Page, and pushing the creatives back to the publisher account, resulting in a removal and creation of the same creative.

Tracking Template 

Tracking Template is the template that Google Ads uses to assemble the URL that will actually be served with your ads. Its primary use, as the name implies, is to support third-party tracking solutions, such as Marin Tracker, which uses URL redirects. It can also be used to add parameters in non-redirect cases for large numbers of objects.

You can add Tracking Templates to every object in your account, including: sitelinks, ads, keywords, groups, campaigns, and even the account itself. But the power of Upgraded URLs comes from having fewer higher-level templates. In fact, the ideal scenario is to have just one at the account level template.

The Tracking Template can be set at the Account Level. Simply navigate to the Admin section, select the Revenue & Tracking tab, then click on the URL Builder sub-tab. From here, use the Account tab to set up your Account Tracking Template.
You can also add a Tracking Template at various other levels, including Campaign and Group, via bulk upload. Simply use the header Tracking Template in your bulk sheet.

To learn more about MarinOne's URL Builder, check out our dedicated article.

Examples Of The Tracking Template 

  1. Non-redirect: {lpurl}&pcrid={creative}
  2. Redirect:{lpurl}

Tracking Templates need to include a reference to the Final URL/Landing Page that they are building on. For this, we use the {lpurl} ValueTrack parameter. This {lpurl} parameter will always be replaced with the Final URL/Landing Page of whichever keyword, creative, etc. is being served when the ad is shown.

When {lpurl} is at the beginning of the Tracking Template (as in example 1 above), the Final URL/Landing Page will be copied as-is into the combined URL at serving time. If {lpurl} is found anywhere else in the Tracking Template, then the Final URL/Landing Page will be encoded first and then copied into the served URL.

If Tracking Templates exist on more than one level (e.g. account and campaign), Google Ads will use the lowest-level template when possible; in the case above, this is the the campaign-level template.

Custom Parameters 

Additionally, Google uses Custom Parameters in order to make it easy to pass parameters and other information to the URL at serving time without hard-coding them in the Final URL/Landing Page or in the Tracking Template.

Custom parameters live at all levels except for the account level (i.e. keywords, creatives, ad groups, campaigns, etc.) You can refer to them in both the Tracking Template or the Final URLs/Landing Pages.

Up to three custom parameters can be defined per object, and they have both a custom name and custom value. The value of a custom parameter can contain any of the characters found in a normal URL, and even Google-defined ValueTrack parameters (such as {creative}) -- but cannot reference other custom parameters. Custom parameter values have a maximum length of 200 characters.

Examples of Custom Parameters

  1. Keyword level: {_marinkwparam1} = “abc123” 
  2. Campaign level: {_campaignparams} = “Brand_Shoes” 

In the first example, either the Tracking Template or the keyword’s Final URL/Landing Page needs to contain ?mkwid={_marinkwparam1} so that when served, it is substituted with ?mkwid=abc123

In the second example, {_marincampparam1} contains a fully formed query string, so in theory, you could add it directly after the Tracking Template without any special characters. In this case{_marincampparam1} would be served as{creative}

Putting It All Together 

Let’s look at some examples and see what they might look like when set up using Upgraded URLs. We’ll start with a non-redirect case.

Non-Redirect Case: 

  1. Account Level Tracking Template{lpurl}&pcrid={creative}&{_mkwid}
  2. Keyword Final URL/Landing Page
  3. Keyword Custom Parameter{_mkwid}=”mkwid=abc123”


If we set up the Upgraded URL attributes as above, using an account-level template, it becomes clear how Google Ads uses them to construct the URL at serving time by replacing {lpurl} with and by replacing {_mkwid} with mkwid=abc123

Redirect Case: 

  1. Account Level Tracking Template{_mkwid}&pcrid={creative}&lp={lpurl}
  2. Keyword Final URL/Landing Page
  3. Keyword Custom Parameter{_mkwid}=”mkwid=abc123”

When combined, the above attributes will become the following URL at serving:{creative}&

In this redirect case, only the Tracking Template is different than in the non-redirect case covered earlier. Here, Google Ads will again replace {_mkwid} with the keyword-level tracking ID. Additionally, Google Ads will recognize that {lpurl} is in the query string, so it will be automatically escaped.

It is worth noting that Google Ads also permits you to put Custom Parameters directly into the Final URL/Landing Page. This is especially useful in the case of redirects, because any Custom Parameters that are found in the Final URL/Landing Page will be automatically encoded when the URL itself is encoded and placed in the Tracking Template.

If, for example, we had placed our Custom Parameter {_mkwid} into the keyword Final URL/Landing Page like this:{_mkwid} and not in the Tracking Template, the combined URL would have looked like this:{creative}&

Notice how the custom parameter has been encoded along with the Final URL/Landing Page.

URL ValueTrack Parameters 

Google allows the use of several different ValueTrack parameters which can be used within URLs to refer to the landing page. Following is a complete list of these parameters as well as an explanation of what they do:

{lpurl}: returns the Final URL/Landing Page, which will be automatically escaped if {lpurl} appears anywhere in the tracking template, except in the beginning.

{lpurl+2}, {lpurl+3} returns the Final URL/Landing Page, escaped twice or three times, respectively. May be needed if there is a chain of redirects in the tracking template.

{unescapedlpurl} always returns the Final URL/Landing Page, unescaped.

{escapedlpurl} always returns the Final URL/Landing Page, escaped. Available only for DSA and PLA campaigns.

{lpurlpath} always returns the part of the Final URL/Landing Page that follows the domain. Available only for DSA and PLA campaigns. 

Allowed in: Tracking Template

MarinOne Upgraded URL Support 

Syncing And Pushing 

MarinOne syncs and pushes upgraded URL fields with its bidirectional sync.

MarinOne Bulk Support 

Bulk functionality for upgraded URLs is key to maintaining a simple and efficient workflow. MarinOne has several columns to support Upgraded URLs:


Description or Format

Supported Objects

[Landing Page]

This is equivalent to the Google Ads Final URL

Keyword, Creative, Placement, Remarketing List, Sitelink

[Mobile Landing Page]

Equivalent to the Mobile Final URL in Google Ads. Requires [Landing Page]

Keyword, Creative, Placement, Remarketing List, Sitelink

[Tracking Template]

Tracking template

Keyword, Creative, Placement, Remarketing List, Sitelink, Product Group, Dynamic Search Target, AdGroup, Campaign

Please note that tracking templates for publisher accounts can be edited using multi-edit functionality in the Publishers tab.

[Custom Parameters]

{_name1}=value1; {_name2}=value2; {_name3}=value3

Custom parameters must be in the same cell and separated by a semicolon and a space. {, }, and _ can be optionally omitted but are shown in report downloads.

Keyword, Creative, Placement, Remarketing List, Sitelink, Product Group, Dynamic Search Target, AdGroup, Campaign

'Preview URLs' For Google Objects 

Based on the same logic that Google uses to combine Upgraded URL components into a fully formed URL on the results pages, MarinOne uses the Landing page URL, available custom parameters, and the relevant tracking template to build a Preview URL for the following Google objects:

  • Keywords
  • Creatives
  • Placements
  • Product groups
  • Sitelinks

With a Preview URL that looks similar to your legacy Destination URLs, we hope that the transition to upgraded URLs will be a little less impactful to your daily workflow. Not only can you quickly see and troubleshoot how your landing page URLs, custom parameters, and a tracking template will join together, but you can view your Google Upgraded URLs alongside all of your destination URLs from other publishers in the same MarinOne grid column.

Preview URLs are rebuilt whenever a change is made to its URL components or its parents’ URL components. For example when MarinOne detects a change to a keyword’s Landing Page, it will rebuild the keyword’s Preview URL. Likewise, if the account-level tracking template is edited, MarinOne will rebuild Preview URLs for every keyword, creative, placement etc. in the account.


  • If Upgraded URL fields in MarinOne are out-of-sync with Google Ads, the Preview URL may not show the same URL that will be shown by Google.
  • Since Google makes real-time decisions about which ads are shown with which keywords, placements, etc. The preview URL for a keyword won’t resolve ad-level tracking templates and custom parameters. Likewise the ad-level preview URL won’t resolve custom parameters from a keyword. Sitelinks can be attached to any number of campaigns and groups so the sitelink-level preview URL will only ever resolve sitelink-level or account-level tracking templates.
  • Destination URLs are no longer editable fields. Attempting to make changes to legacy Destination URL fields for Google objects will have no effect. 
  • In Google Ads, custom parameters that are not able to be matched will not be resolved. For example if a tracking template looks like this: {lpurl}&mkwid={_mkwid} and no custom parameter named {_mkwid} can be found in the currently served keyword or ad, their parent AdGroup, or its parent campaign, then Google Ads will simply replace {_mkwid} with a blank space when serving a URL. For a Marin preview URL, however, the custom parameter will not be substituted. Instead it will be left as-is to indicate that no match could be found.

Table Of Upgraded URL Attributes By Account Object Type 

Google Ads Object

Custom Parameters

Final URL

Tracking Template







Product Group







Other Trackables


Written by Marketing @ Marin Software

Last published at: June 27th, 2023