Guide27 October 2026

Your Tag Manager Can Change Your Live Site Without a Deploy. Here's What Decloak Checks Inside It

Your Tag Manager Can Change Your Live Site Without a Deploy. Here's What Decloak Checks Inside It

Your Tag Manager Can Change Your Live Site Without a Deploy. Here's What Decloak Checks Inside It

Most sites put real effort into controlling what reaches production. Code goes through pull requests, reviews, tests and a deploy pipeline. Then a marketing tool sits on every page that can bypass all of it.

Google Tag Manager (GTM) lets non-developers add analytics, ad pixels and other scripts to a site from a web dashboard. That is the point of it. It also means anyone who can publish a GTM container can put any JavaScript they like on your live site, including on the checkout page, and it never appears in your repository.

This guide covers why that matters, what Decloak checks inside your tag manager, and what a scan from the outside can't see.

How a tag manager works, briefly

You add one GTM snippet to your site once. After that, the snippet loads a container from Google's servers on every page view. The container holds:

Why attackers like it

From an attacker's point of view, a tag manager has three useful properties:

  1. It's trusted. The script loads from a Google domain, so security tools that allow-list well-known domains skip it, and so do people reading the page source.
  2. It's remote. The malicious code lives in the container, not on your server. The attacker can change it, or swap where stolen data goes, without touching your infrastructure.
  3. It reaches the payment page. A tag set to fire on the checkout URL can read what shoppers type into the card form. This isn't theoretical. Recorded Future found 569 e-commerce domains infected with skimmers in one study, of which 314 were confirmed to be delivered through GTM. Infections that were cleaned up had lasted 3.5 months on average, and over 165,000 card records linked to GTM-based attacks turned up on carding sites. In some variants the skimmer was placed in a Custom HTML tag, and the legitimate GTM loader injected it into the page.

In 2025, Sucuri investigated a Magento store where a skimmer was disguised as a standard GTM and Google Analytics snippet. It came to light when a customer reported stolen card details.

This style of attack, a malicious script stealing card data from a payment page, is usually called Magecart or e-skimming. It is the reason PCI DSS v4.0 added requirements 6.4.3 and 11.6.1, which we cover below.

What Decloak checks

CheckWhat it showsPlan
Tag manager intelligenceEvery GTM container on the page, its active tags and their firing triggers. Tags sending data to unrecognised or newly registered domains are flagged.Free
GTM container deep-diveThe full parsed configuration: nested tags, the contents of Custom HTML tags, and variable definitionsStarter
Domain threat intelligenceThird-party domains checked against malware and phishing data, plus suspicious registration patternsStarter

Alongside these, the scan tracks scripts injected into the page at runtime against a list of trusted injectors, and checks whether cross-origin scripts use Subresource Integrity (a hash that stops a changed file from running).

Containers you didn't know about

The first useful result is often just the list of containers. It's common to find a second GTM container left behind by a previous agency, or one added by a plugin. Each one is another set of people who can publish to your site. If a container ID on your site isn't one you recognise, find out who owns it.

Custom HTML tags, read in full

Template tags for well-known tools are fairly predictable. Custom HTML tags are where anything goes. The deep-dive parses the container and shows you what each Custom HTML tag contains, so you can read the code your tag manager is actually serving rather than what someone says it does.

Where the data goes

The check that catches most real problems is where tags send data. A tag sending data to a domain we don't recognise, or one registered recently, is flagged. Skimmers need somewhere to send stolen card numbers, and attackers often register lookalike domains shortly before a campaign. A domain that is three weeks old and receiving form data from your checkout deserves a very close look.

These findings also feed the third-party domain report, so you can see every domain your pages talk to, by category, in one place.

How this maps to PCI DSS v4.0

Two PCI DSS v4.0 requirements are aimed squarely at this problem:

Five things to do this week

  1. List your containers. Run a scan and check every container ID against the ones you know.
  2. Review who can publish. In GTM's user management, remove people who have left, and limit Publish permission to the few who need it.
  3. Turn on extra protection for publishing. GTM offers settings such as requiring two-step verification for sensitive actions. Use them.
  4. Read every Custom HTML tag. If nobody can explain what one does, pause it.
  5. Keep tags off the payment page. Most marketing tags don't need to fire on checkout. Use triggers to exclude it, which shrinks what 6.4.3 asks you to justify.

The honest limits


Find out what your tag manager is really publishing. Run a free scan →