ValueTrack parameters: the complete list with examples
Google Ads has about 60 ValueTrack parameters, from {campaignid}, {keyword} and {matchtype} to Shopping and hotel parameters. There is no {searchterm}: {keyword} returns your keyword, not the user's query.
Yehor Dementiev · Updated September 19, 2026
Google Ads has about 60 ValueTrack parameters. The ones most people need are {campaignid}, {adgroupid}, {keyword}, {matchtype}, {network}, {device} and {lpurl}. There is no {searchterm} parameter: {keyword} returns the keyword in your account that matched the search, not what the user typed.
Last verified: September 19, 2026
This page is part of the Google Ads limits reference because URL fields have limits of their own. Some of those limits Google publishes, and some it doesn't:
| Field | Limit | Notes |
|---|---|---|
| Custom parameter name | 16 characters | Alphanumeric only |
| Custom parameter value | 250 characters | The API docs say 200 bytes, so stay under 200 to be safe |
| Custom parameters per level | 8 | Not available at account level |
{store_code} value | 60 characters | Local products in Shopping |
| Tracking template | No published limit | Google gives no number |
| Final URL suffix | No published limit | The Google Ads API team says there is no published maximum, but URLs over roughly 2,000 characters can break in some browsers |
Sources: Google Ads Help — Create custom parameters, Google Ads API — Upgraded URL fields, Google Ads API forum — final URL suffix length.
All ValueTrack parameters
The tables follow Google's help page Set up tracking with ValueTrack parameters. The example values are only illustrations. Real IDs are 64-bit numbers.
Search and general (final URL, tracking template or custom parameter)
| Parameter | Returns | Example value | Where it works |
|---|---|---|---|
{campaignid} | Campaign ID | 20412345678 | All campaign types |
{adgroupid} | Ad group ID | 151234567890 | All campaign types with ad groups |
{creative} | Unique ID of the ad | 689012345678 | All campaign types with ads |
{keyword} | The keyword from your account that matched the query (Search) or the content (Display) | running%20shoes | Search, Display. Blank for AI Max, DSA and Performance Max. Not in Demand Gen |
{matchtype} | Match type of the triggering keyword | e, p, b, or a (AI Max keywordless) | Search |
{targetid} | ID of the keyword (kwd), AI Max keywordless (kwl), DSA target (dsa), remarketing list (aud), product partition (pla) or hotel group (hpi) | aud-456:kwd-123 | Wherever one of those targets triggered the ad. Excludes affinity and in-market audiences. Not in Demand Gen |
{network} | Where the click came from | g Google search, s search partners, d Display, ytv YouTube, vp video partners, gtv Google TV, x Performance Max, e App engagement | Not in Demand Gen |
{device} | Device type | m, t or c | All |
{devicemodel} | Phone or tablet model | Apple+iPhone | Display Network only |
{loc_physical_ms} | Location ID of the click | 1023191 | All |
{loc_interest_ms} | Location ID of the location of interest that triggered the ad | 1023191 | All |
{gclid} | Google click identifier | Cj0KCQ... | All (limited in Performance Max) |
{feeditemid} | ID of a feed-based (legacy) asset that was clicked | 12345 | Not for Display ads |
{extensionid} | ID of an asset-based (upgraded) asset that was clicked | 9876543210 | Not for Display ads |
{placement} | Content site where the ad was clicked, or the matching placement | example.com | Display, Video. Not in Demand Gen |
{target} | Placement category | sports | Placement-targeted campaigns only |
{ifmobile:[value]} | Your value if the click came from a mobile phone | {ifmobile:mob} gives mob | All |
{ifnotmobile:[value]} | Your value if the click came from a computer or tablet | {ifnotmobile:desk} gives desk | All |
{ifsearch:[value]} | Your value if the click came from the Search Network | {ifsearch:srch} gives srch | Not in Demand Gen |
{ifcontent:[value]} | Your value if the click came from the Display Network | {ifcontent:gdn} gives gdn | Not in Demand Gen |
{random} | Random unsigned 64-bit number, often used to force a page reload | 8423112345 | All |
{param1}, {param2} | Creative parameters set through the API's AdParamService | 19.99 | API users only |
{assetgroupid} | Asset group ID | 6512345678 | Performance Max |
Shopping
| Parameter | Returns | Example value | Where it works |
|---|---|---|---|
{adtype} | Shopping ad type | pla, pla_multichannel, pla_with_promotion, pla_with_pog | Shopping, Performance Max (Shopping ads) |
{merchant_id} | Merchant Center account that owns the clicked ad | 123456789 | Shopping, Performance Max (Shopping ads) |
{product_id} | Product ID from your Merchant Center feed | sku-4411 | Shopping, Performance Max (Shopping ads) |
{product_channel} | Shopping channel of the product | online or local | Shopping, Performance Max (Shopping ads) |
{product_country} | Country of sale | US | Shopping, Performance Max (Shopping ads) |
{product_language} | Language of your product data | en | Shopping, Performance Max (Shopping ads) |
{product_partition_id} | ID of the product group | 293946777986 | Shopping |
{store_code} | Local store ID (maximum 60 characters) | store-017 | Shopping, local products |
Display and video
Most general parameters work here too. Parameters that apply only to these formats, or that behave differently:
| Parameter | Returns | Example value | Where it works |
|---|---|---|---|
{placement} | Site or placement where the ad was clicked | youtube.com | Display, Video |
{devicemodel} | Device model | Apple+iPhone | Display only |
{network} | d, ytv, vp or gtv for these inventories | ytv | Display, Video |
{sourceid} | Google lists it for Video but doesn't describe it | — | Video |
{keyword} | Keyword that matched the content | trail%20running | Display (keyword-targeted) |
Demand Gen does not support {placement}, {target}, {keyword}, {ifsearch:[value]}, {ifcontent:[value]}, {network} or {targetid}. Hotel campaigns have their own set of about 19 parameters, such as {hotel_id} and {travel_start_day}. They are on Google's page.
Tracking and URL parameters
| Parameter | Returns | Where it works |
|---|---|---|
{lpurl} | The final URL. It is escaped unless it's at the start of the template | Tracking template only |
{lpurl+2}, {lpurl+3} | Final URL escaped twice or three times, for redirect chains | Tracking template only |
{unescapedlpurl} | Final URL, unescaped | Tracking template only |
{escapedlpurl} | Final URL with :, /, ?, = and % escaped | Tracking template only |
{escapedlpurl+2}, {escapedlpurl+3} | Escaped twice or three times | Tracking template only |
{ignore} | Marks everything after it as tracking info so Google crawls less of your site | Final URL (and final mobile URL) only |
{_yourname} | Your custom parameter value | Tracking template, final URL |
{searchterm} vs {keyword}
This is why the page gets searches for "searchterm". People want the actual query in the URL, and Google Ads doesn't offer it:
{keyword} | {searchterm} | |
|---|---|---|
| Exists in Google Ads | Yes | No, it's not on Google's list |
| Returns | The keyword in your account that matched | — |
Example: keyword running shoes, query "best running shoes for flat feet" | running%20shoes | — |
| AI Max, DSA, Performance Max | Blank | — |
The Google Ads API has an error code for tags it doesn't know, VALUE_TRACK_PARAMETER_NOT_SUPPORTED. Don't copy a {searchterm} template from a forum post into a Google account.
To see real queries, use the search terms report. Google leaves out terms that don't have enough query activity, for privacy reasons. For those, it shows only grouped subthemes or "other queries" (About the search terms report). To get closer to the query, pair {keyword} with {matchtype}. A b or a value means the query and the keyword may differ a lot.
Copy-paste tracking templates
UTM parameters for GA4, in the final URL suffix (account level). Leave out the leading ?. Google adds the separator itself, and its own example suffix is just x=y:
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={creative}&utm_term={keyword}
Keep auto-tagging on. Google says that in GA4, auto-tagging (gclid) wins over manual UTM tags because GA4 has no override option (About auto-tagging). UTMs still help in other analytics tools and CRMs.
Tracking template with {lpurl} at the start (Google's own format):
{lpurl}?matchtype={matchtype}&device={device}&network={network}&kw={keyword}
Third-party click tracker ({lpurl} not at the start, so it is escaped):
https://tracker.example.com/click?id=123&url={lpurl}
Escaping rules for anything added after the URL parameter (from Google's help page):
| Parameter | Position | Follow it with |
|---|---|---|
{lpurl} | Start of template | ? |
{lpurl} | Not at start | %3F |
{lpurl+2} | Not at start | %253F |
{lpurl+3} | Not at start | %25253F |
{unescapedlpurl} | Anywhere | ? |
{escapedlpurl} | Anywhere | %3F |
When {lpurl} is not at the start, Google escapes ?, =, ", #, tab, ' and spaces in it.
Common mistakes
- A template without
{lpurl}. Tracking templates at account, campaign or ad group level must contain{lpurl}or a variant of it, or the landing page URL breaks. Dynamic Search Ads need it at every level. - Two
?in the URL. If the final URL already has a?, Google replaces the?in your tracking template with&(or an escaped&). If you still see two, look for a query string hard-coded into the final URL, or a suffix typed with a leading?. - Wrong
{lpurl}escaping. If{lpurl}is not at the start and you follow it with a plain?, Google warns that your site or third-party system may not save the parameters correctly. Use the escaping table above. - Setting it at the wrong level. Templates from several levels are not combined. Google uses the most specific one: keyword, then ad, ad group, campaign, account. An old keyword-level template silently overrides your new account-level one. The "Tracking template source" column shows which template is used (Tracking template: definition). Custom parameters with the same name follow the same rule.
- Spaces in URLs. They break tracking. Multi-word keywords arrive as
%20. - Expecting instant changes. Google says tracking template changes take 24–48 hours to show up in serving ads.
- Static tracking URLs with AI Max. A template without
{lpurl}, or with{lpurl}placed inside a parameter value, can send users from final URL expansion to the wrong page or a 404.
Ship the same tracking to every client
Agencies usually rebuild the same URL structure for every new client, one account at a time. AdsCockpit Templates lets you build a campaign once, including its ads and sitelinks with final URLs, and launch it into every client account in your manager account. Client-specific parts, such as the domain, are variables that you fill in per client. Put the ValueTrack suffix at account level in each client account once. Every campaign you launch from a template then inherits it.
FAQ
Is there a {searchterm} ValueTrack parameter in Google Ads?
No. Google's list of ValueTrack parameters has no {searchterm} or query parameter. {keyword} returns the keyword from your account that matched the search, not the search term itself. To see actual search terms, use the search terms report.
What does {keyword} return for Performance Max or Dynamic Search Ads?
A blank value. Google says {keyword} is empty when an ad matches without keywords, which covers AI Max for Search, Dynamic Search Ads and Performance Max. {keyword} is also not supported in Demand Gen.
Should I use a tracking template or a final URL suffix for UTM parameters?
Use the final URL suffix for UTM parameters. It is appended to the landing page URL, while a tracking template is meant for click trackers and redirects. Account-level templates also need {lpurl} or your landing page breaks.
Which level wins if tracking templates are set at several levels?
The most specific one. Google's order is keyword, then ad, ad group, campaign and account. Custom parameters with the same name follow the same rule: the most specific level is used.
How long can a custom parameter be?
The name can be up to 16 alphanumeric characters and the value up to 250 characters, according to Google Ads Help. You can set up to 8 custom parameters per level, but not at account level.
Keep reading
- ArticleResponsive search ad character limitsGoogle Ads headlines are limited to 30 characters (3 to 15 per ad), descriptions to 90 characters (2 to 4 per ad), and each of the two display paths to 15 characters. Spaces and punctuation count.8 min read
- ArticleGoogle Ads account limitsA Google Ads account allows 10,000 campaigns (active and paused), 20,000 ad groups per campaign, 20,000 keywords and other targeting items per ad group, 5 million per account, and 10,000 negative keywords per campaign.8 min read
- GuideGoogle Ads limitsThe complete guide this article belongs to.
Set up, watch and report on every client from one login.
Apply for early accessLimited spots · no commitment
What happens next
Apply
Personal reply
Free 30-minute onboarding call
Questions first? Send a message