End-to-end guide on data layer in Google Tag Manager

Written by

Uliana Lesiv

Updated Oct 2, 2026 comments

Collecting the right data is only half the job

What is the data layer in Tag Manager?

Data layer's use cases

How does the data layer work?

How data layer works

Data layer syntax and examples

dataLayer = [{}];
dataLayer = [{'event' : 'register' }];
dataLayer = [{'country' : 'united states' }];

Initialize the dataLayer

Method 1: Data layer declaration

dataLayer = [{ 'variable_name': 'variable_value'  }]; ...

Method 2: dataLayer.push

window.datalayer = window.dataLayer || []; window.dataLayer.push({  'variable_name' : 'variable_value' });

Example and documentation on eCommerce data layer

Key eСommerce data layer components for analytics and tracking

How to create a data layer in Tag Manager?

Use case 1: Data layer variables as data points

Code example

window.dataLayer = window.dataLayer || []; window.dataLayer.push({ ‘product_name’ : ‘orange t-shirt’, 'purchase_value' : '5', ‘purchase_currency’ : ‘EUR’ });

GTM setup

  1. 1.
Create a new variable in GTM
Data Layer Variable
Data Layer Variable name

Use case 2: Data layer to trigger events

Code example

window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event' : 'register' });

GTM setup

Create new trigger
Custom Event trigger
Event name in trigger

Use case 3: Data layer variable as variables and event triggers

Code example

dataLayer = [{ 'event': 'purchase', 'purchase_info': { 'purchase_amount': 5, 'purchase_curency': 'EUR' } }];

GTM setup

How to send data layer's parameters from client- to server-side GTM?

Using Google Analytics 4

GA4 Event configuration in web GTM
GA4 setup to send data from the web to the server GTM

Using Data Tag/Data Client

Data Tag template in web GTM
Configure Data Tag in web GTM

Push data layer variable to Google Analytics 4

Configure Google Tag in GTM

Google Tag in web GTM
Google Tag configuration
Trigger configuration for Google Tag

Create custom dimension in GA4

GA4 admin section
New custom dimension in GA4

Test data layer setup

GTM Debug Mode

Preview and Submit in GTM
Variables section in GTM Debug view

Google Analytics 4

DebugView in GA4

Troubleshooting data layer

Problem 1: Data layer push doesn’t work

Solution: proper casing for object names and quotes

dataLayer.push({'variable_name': 'variable_value'});
datalayer.push({'variable_name': 'variable_value'});
dataLayer.push({'variable_name': 'variable_value'});
dataLayer.push({variable_name': 'variable_value'});

Problem 2: Tags don’t fire

Solution: consistent variable names

// Homepage: dataLayer.push({'variable_name': 'variable_value'}); // Product page: dataLayer.push({'variable_name': 'variable_value'});
// Homepage: dataLayer.push({'variable_name': 'variable_value'}); // Product page: dataLayer.push({'variable Name': 'variable_value'});

Recap

Want to start on the server side?

Try for free

Written by

Uliana Lesiv

Content writer

Uliana is a Content Manager at Stape, specializing in analytics and integration setups. She breaks down complex tracking concepts into clear insights, helping businesses optimize data collection.

Was this article helpful?

Comments

Recommended for you

Turn better tracking into better marketing performance

Try for free