Analytics and Tracking

Built-in Variable

Also called GTM built-in variables

A value Tag Manager can collect with no setup, such as the page path, referrer or the text of a clicked element.

Quick facts: Built-in Variable

Category
Analytics and Tracking
Also called
GTM built-in variables
Level
Beginner
Affects
Trigger accuracy, reporting detail, privacy exposure
Where to see it
Google Tag Manager (Variables, Configure), preview mode
In this article4
  1. How built-in variables work
  2. Why built-in variables matter
  3. Where built-in variables go wrong
  4. How to act on it

How built-in variables work

Built-in variables are values Tag Manager already knows how to gather. You do not build them; you tick them on in the Variables screen and they become available to every tag and trigger in the container. A small default set is switched on when a container is created — page URL, page path, hostname, referrer and a few utilities — and the rest sit unticked in groups describing clicks, forms, scrolling, video, history changes and JavaScript errors.

Those groups matter more than they look. Click and form variables are populated only while Tag Manager’s click or form listener is running, which happens when a trigger of that kind exists in the container. So a Click Text that shows nothing during a page view is not broken — at that instant there is simply no click to describe.

Why built-in variables matter

They cover a surprising share of everyday tracking without asking a developer for anything. Which button was pressed, which outbound link was followed, which file was downloaded, how far down the page someone read: all of it is available from values the container can already see. For a small business site with no data layer, that is often the difference between some measurement and none at all.

They also make triggers precise. Rather than firing on any click anywhere, a trigger can require that the clicked element carries a particular class, or that the destination link points off site, so the tag fires when it should and stays quiet otherwise.

Where built-in variables go wrong

Fragility is the first problem. A trigger built on click text depends on the words on a button, so a copywriter changing “Send enquiry” to “Get in touch” silently stops the conversion recording. Classes are a little sturdier, but a redesign still breaks them, and nothing warns you.

Privacy is the second, and it is the one people miss. Page URL includes the query string, which on real sites contains search terms, discount codes, appointment references and, when a form has been built badly, email addresses. Once that URL is sent to analytics or an ad platform, personal data has left the building.

The third is clutter. Enabling every built-in variable makes the preview screen hard to read and keeps listeners running for events nobody measures. It is untidy rather than dangerous, but untidy containers are the ones that quietly rot.

How to act on it

Enable the group you actually need and leave the rest alone. Use Page Path for reporting so parameters never end up in your reports, and reach for Page URL only when a parameter is genuinely part of the question you are answering.

For anything the business depends on — revenue, lead type, whether an enquiry was for training or a project — do not rely on what the container can observe. Ask for the value to be pushed on purpose, and read it with a user-defined variable instead. Built-in values are excellent for behaviour and unreliable for facts.

Whenever you build a click trigger, open preview, click the real element and read the variables list at that moment. Guessing at what a page exposes wastes far more time than checking it once.

Do and do not

Do

  • Enable only the groups your tracking actually uses
  • Report on Page Path rather than full page URL
  • Read the variables list during the real event

Do not

  • Build conversion triggers on button wording
  • Send full URLs that may contain personal details
  • Use observed values for revenue or lead type

Questions people ask about this

Why is Click Text empty when I test it?

Because the click listener only runs when the container has a click trigger enabled, and the variable only holds a value during the click event itself. Add a click trigger, open preview, then click the element and read the variables on that event rather than on the page view that came before it.

Should I just enable every built-in variable?

It is tempting and rarely wise. Extra listeners run for events you are not measuring, and a crowded variables list makes debugging slower for whoever inherits the container. Enable the group you need for the tracking you are building, and add more later when a specific requirement appears rather than in advance.

Should I use Page URL or Page Path in reports?

Page Path in almost every case. It gives you the part of the address that identifies the page, without the query string that carries search terms, tracking parameters and occasionally personal details. Keep Page URL for the rare moments when a parameter is part of what you are actually measuring.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.