Data Layer
Google Tag Manager provides a lot of variables out of the box that can be used in triggers and also in tags themselves however sometimes you need some additional data from the application itself.
You can supply this extra data via GTM's data layer feature.
dataLayer
variable
The The dataLayer
variable is a global JavaScript variable provided on each webpage. It is an array containing a single object and is defined in the following way:
var dataLayer = [ {
property: "value",
// ... additional properties
} ];
The initial value is passed to GTM and can be accessed by creating "dataLayer variables" that are evaluated when the page loads. Additional objects can be pushed onto to the array allowing you to create dynamic triggers based on user interactions or other on page events.
You can explore the data layer by previewing your container and looking in the dataLayer
tab in the overlay that appears on the site.
dataLayer
Modifying the initial You can use the hm_gtm_data_layer
filter to modify the initial data layer value. The example below adds a custom post meta value for a custom video post type.
add_filter( 'hm_gtm_data_layer', function ( array $data ) : array {
if ( is_singular( 'custom-video-post-type' ) ) {
$data['video_id'] = get_post_meta( get_queried_object_id(), 'video_id', true );
}
return $data;
} );