GTM·Google Tag Manager·warning

Missing Data Layer Variables

Conversion tags in this container reference fields that are not exposed as GTM Data Layer Variables. Typically `ecommerce.value`, `ecommerce.currency`, or `ecommerce.transaction_id`. The tags still fire on the right trigger, but the fields they read resolve to empty, which means the conversion is reported with no value. The dashboard shows a count; the bidding signal is noise.

CL
By Christopher LandaverdeCreator of AdLint · ad-tech tracking specialistUpdated

Why It Matters

A GTM tag does not read the dataLayer directly. it reads variables that are bound to dataLayer paths through the User-Defined Variables panel. If a conversion tag references `{{DLV - ecommerce.value}}` but no such Data Layer Variable exists (or the binding is misspelled), GTM evaluates the placeholder to an empty string and ships the conversion with no value field. Google Ads counts this as a valid conversion at zero revenue. Smart Bidding then optimises against the count signal alone, treating a $1,000 order identically to a $10 order. The damage adds up because the failure is silent: nothing in the tag firing or the Preview-mode summary surfaces "this variable resolved to empty." The user finds out months later when reported ROAS diverges from the e-commerce backend by an unexplainable factor.

How To Fix It

  1. In GTM, open Workspace → Variables → User-Defined Variables.
  2. For every field used by a conversion or analytics tag. `ecommerce.value`, `ecommerce.currency`, `ecommerce.transaction_id`, and any user-data field. Create a Data Layer Variable with the matching Data Layer Variable Name (case-sensitive, dot-separated path).
  3. Set Data Layer Version to Version 2 for any nested ecommerce path.
  4. Open each conversion tag and reference the variables via `{{DLV - …}}` syntax instead of literal values.
  5. In Preview mode, complete a test conversion and inspect each variable in the Variables tab at the exact event step the tag fires on. Every variable should resolve to a non-empty value before publish.

Example

Configuration
Variable: DLV - ecommerce.value
Data Layer Variable Name: ecommerce.value
Data Layer Version: Version 2
Used by: Google Ads purchase conversion value
For Your Client Report

GTM tags in this container that reference dataLayer fields without corresponding Data Layer Variables. Google's Tag Manager Data Layer Variable documentation, tags must read dataLayer values through explicitly-configured Data Layer Variables; unresolved references evaluate to empty strings at runtime. The effect is that conversion tags fire with no value, currency, or transaction ID, breaking value-based bidding and revenue reporting. Fix: create Data Layer Variables for every dataLayer path used by conversion tags and verify resolution in GTM Preview. Source: support.google.com/tagmanager/answer/6164391.

Drop this paragraph into your client deliverable. Sources back to the canonical platform documentation linked below.

References

Audit your own files for this check

AdLint runs this check (and 177 others) against your GTM, Google Ads, Meta, TikTok, LinkedIn, Pinterest, Twitter/X, and Snapchat exports. Everything stays in your browser. No uploads, no accounts.

Run a free audit