Deprecated data layer events
Legacy events and payloads scheduled for removal, with migration guidance.
Pre-release notice: These docs reflect the schema that becomes active on 18 Mar 2026. Events marked Active are part of that upcoming schema. Events marked Deprecated are legacy payloads still emitted today and will stop after 18 Mar 2026.
Looking for current events? See Booking Experts data layer events.
Deprecated events
view_item_list
Legacy CMS view_item_list payload (pre-GA4 ecommerce structure).
Deprecated CMS payload that placed items at the top level instead of inside ecommerce.
Items carried park_id/park_name and used item_category for the accommodation segment.
Replaced by GA4 view_item_list with ecommerce.items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"view_item_list","item_list_id":"availability_search","item_list_name":"Availability search","items":[{"item_id":"1","item_name":"Category name","item_brand":"Site name","item_category":"house","park_id":1,"park_name":"Park name","price":"120.00","quantity":1,"currency":"EUR","start_date":"2026-02-20","end_date":"2026-02-22","index":1}]});view_item
Legacy CMS view_item payload (pre-GA4 ecommerce structure).
Deprecated CMS payload that placed items at the top level instead of inside ecommerce.
Items carried park_id/park_name and used item_category for the accommodation segment.
Replaced by GA4 view_item with ecommerce.items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"view_item","items":[{"item_id":"1","item_name":"Category name","item_brand":"Site name","item_category":"house","item_list_id":"availability_search","item_list_name":"Availability search","park_id":1,"park_name":"Park name","price":"120.00","quantity":1,"currency":"EUR","start_date":"2026-02-20","end_date":"2026-02-22"}]});add_to_cart
Legacy add_to_cart payload (pre-GA4 ecommerce structure).
Deprecated payload that placed currency, value, and items at the top level.
CMS sent only a single rentable type id with optional dates; PMS used prefixed item ids (A/C/P) with richer item fields.
Replaced by GA4 add_to_cart with ecommerce.items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"add_to_cart","currency":"EUR","value":350,"items":[{"item_id":"A123","item_name":"Amenity","start_date":"2026-02-20","end_date":"2026-02-22"}]});remove_from_cart
Legacy remove_from_cart payload (pre-GA4 ecommerce structure).
Deprecated payload that placed currency, value, and items at the top level.
CMS sent only a single rentable type id; PMS used prefixed item ids (A/C/P) with richer item fields.
Replaced by GA4 remove_from_cart with ecommerce.items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"remove_from_cart","currency":"EUR","value":350,"items":[{"item_id":"A123","item_name":"Amenity","start_date":"2026-02-20","end_date":"2026-02-22"}]});select_promotion
Legacy CMS select_promotion payload (items at top level).
Deprecated CMS payload that placed items at the top level instead of inside ecommerce.
Replaced by GA4 select_promotion with ecommerce.items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"select_promotion","items":[{"item_id":"discount_12","item_name":"Summer Sale"}]});search
Legacy CMS search payload (search object with result_count).
Deprecated CMS payload that nested search term and result count under search.
Replaced by GA4 search with the search_term parameter.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"search","search":{"search_term":"summer holiday","result_count":42}});productImpression
Legacy UA product impressions payload.
Deprecated UA payload for product impressions (pre-GA4).
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"productImpression","ecommerce":{"currencyCode":"EUR","impressions":[{"id":"123","name":"Category name","park_id":1,"park_name":"Park name","category":"house","price":"120.00","position":1}]}});productDetail
Legacy UA product detail payload.
Deprecated UA payload for product detail impressions (pre-GA4).
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"productDetail","ecommerce":{"detail":{"products":[{"id":"123","name":"Category name","park_id":1,"park_name":"Park name","category":"house","price":"120.00"}]}}});promotionClick
Legacy UA promotion click payload.
Deprecated UA payload for promotion clicks (pre-GA4).
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"promotionClick","ecommerce":{"promoClick":{"promotions":[{"id":"discount_12","name":"Summer Sale"}]}}});propertyDetail
Legacy CMS property detail payload.
Deprecated CMS payload for sales module property detail impressions.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"propertyDetail","ecommerce":{"detail":{"products":[{"object_id":"123","object_name":"Property name","price":"120.00","status":"available"}]}}});formSubmit
Legacy CMS formSubmit payload (form_submit object).
Deprecated CMS payload that nested form fields under form_submit.
Custom fields were emitted as input_* keys and select values could emit additional ids/names.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"formSubmit","form_submit":{"form_id":"contact-form","form_name":"Contact Form","form_response_id":"12345","input_email":"guest@example.com"}});view_price_information
Legacy CMS view_price_information payload.
Deprecated CMS payload used on reservation detail pricing screens.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"view_price_information","item":{"item_id":"123","item_name":"Accommodation","price":"120.00","currency":"EUR"}});visit_checkout_step
Legacy checkout step payload from the old checkout portal.
Deprecated PMS payload that mixed checkout metadata and customer fields inside ecommerce.
Replaced by GA4 begin_checkout, view_cart, add_shipping_info, and add_payment_info.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"visit_checkout_step","ecommerce":{"currency":"EUR","value":"350.00","customer_name":"Guest Name","checkout_step_value":1,"checkout_step_name":"Stay","items":[{"item_id":"A123","item_name":"Accommodation"}]}});select_amenity
Legacy amenity selection payload from checkout portal.
Deprecated event emitted when amenities were selected in the old checkout portal.
Replaced by GA4 add_to_cart with amenity items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"select_amenity","ecommerce":{"items":[{"item_id":"A123","item_name":"Amenity name"}]}});deselect_amenity
Legacy amenity deselection payload from checkout portal.
Deprecated event emitted when amenities were deselected in the old checkout portal.
Replaced by GA4 remove_from_cart with amenity items.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"deselect_amenity","ecommerce":{"items":[{"item_id":"A123","item_name":"Amenity name"}]}});ga4purchase
Legacy GA4 purchase payload used during migration.
Deprecated GA4 purchase payload emitted alongside the hybrid legacy purchase event.
Replaced by the standard GA4 purchase event.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"ga4purchase","ecommerce":{"currency":"EUR","value":"350.00","transaction_id":"ORDER-123","items":[{"item_id":"A123","item_name":"Accommodation"}]}});ga4option
Legacy GA4 option payload used during migration.
Deprecated GA4 option payload emitted during the checkout portal migration.
Replaced by generate_lead.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"ga4option","ecommerce":{"currency":"EUR","value":"350.00","transaction_id":"ORDER-123","items":[{"item_id":"A123","item_name":"Accommodation"}]}});ga4optionConfirm
Legacy GA4 option confirmation payload used during migration.
Deprecated GA4 option confirmation payload emitted during the checkout portal migration.
Replaced by close_convert_lead.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"ga4optionConfirm","ecommerce":{"currency":"EUR","value":"350.00","transaction_id":"ORDER-123","items":[{"item_id":"A123","item_name":"Accommodation"}]}});purchase
Legacy hybrid purchase payload (GA4 + UA fields).
Deprecated checkout portal payload that mixed GA4 ecommerce fields with legacy UA purchase data.
Included currencyCode and purchase.actionField/products alongside GA4 items.
Replaced by GA4 purchase with the standard ecommerce payload.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"purchase","ecommerce":{"currency":"EUR","value":"350.00","transaction_id":"ORDER-123","items":[{"item_id":"A123","item_name":"Accommodation"}],"currencyCode":"EUR","purchase":{"actionField":{"id":"ORDER-123","revenue":"350.00"},"products":[{"id":"123","name":"Accommodation","price":"350.00"}]}}});checkout
Legacy UA checkout step payload.
Deprecated UA checkout event emitted by the old checkout portal.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"checkout","ecommerce":{"checkout":{"actionField":{"step":1},"products":[{"id":"123","name":"Accommodation","price":"350.00"}]}}});addToCart
Legacy UA addToCart payload from old checkout portal.
Deprecated UA add-to-cart event emitted during checkout step 1.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"addToCart","ecommerce":{"currencyCode":"EUR","add":{"products":[{"id":"123","name":"Accommodation","price":"350.00"}]}}});option
Legacy UA option payload for optional bookings.
Deprecated UA option event emitted for bookings created as options.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"option","ecommerce":{"currencyCode":"EUR","option":{"actionField":{"id":"ORDER-123","revenue":"350.00"},"products":[{"id":"123","name":"Accommodation","price":"350.00"}]}}});failed_payment
Legacy failed_payment payload nested under ecommerce.
Deprecated checkout portal payload that nested failure details under ecommerce.
Replaced by failed_payment with top-level fields.
Top-level parameters
Sample data layer snippet
dataLayer.push({"event":"failed_payment","ecommerce":{"currency":"EUR","value":"350.00","transaction_id":"ORDER-123","reason_failed":"failure"}});hrental_home
Legacy remarketing object for hotel_rental home pages.
Deprecated data layer object for Google Ads hotel_rental remarketing.
Object fields
Sample data layer snippet
dataLayer.push({"hrental_pagetype":"home"});hrental_home_subsite
Legacy remarketing object for hotel_rental park home pages.
Deprecated data layer object for Google Ads hotel_rental remarketing.
Object fields
Sample data layer snippet
dataLayer.push({"hrental_pagetype":"park-home","park_name":"Park name","park_id":"123","country":"Netherlands","region":"Twente","city":"Enschede"});hrental_searchresults
Legacy remarketing object for hotel_rental search results.
Deprecated data layer object for Google Ads hotel_rental remarketing.
Object fields
Sample data layer snippet
dataLayer.push({"hrental_pagetype":"searchresults"});hrental_offerdetail
Legacy remarketing object for hotel_rental offer detail pages.
Deprecated data layer object for Google Ads hotel_rental remarketing.
This payload often included event: "gtm.load" alongside the hrental fields.
Object fields
Sample data layer snippet
dataLayer.push({"event":"gtm.load","hrental_pagetype":"offerdetail","hrental_id":"123","hrental_park_id":"456","hrental_park_name":"Park name","hrental_startdate":"2026-02-20","hrental_enddate":"2026-02-22","hrental_length_of_stay":"2","hrental_totalvalue":"120.00","hrental_city":"Enschede","hrental_region":"Twente","hrental_country":"Netherlands"});hrental_conversion
Legacy remarketing conversion object for hotel_rental.
Deprecated data layer object emitted during old checkout conversion flows.
Object fields
Sample data layer snippet
dataLayer.push({"hrental_id":"123","hrental_park_id":"456","hrental_park_name":"Park name","hrental_pagetype":"conversion","hrental_startdate":"2026-02-20","hrental_enddate":"2026-02-22","hrental_length_of_stay":"2","hrental_totalvalue":"350.00","item_country":"Netherlands","item_region":"Twente","item_city":"Enschede"});return_from_payment
Legacy payment portal return payload.
Deprecated payment portal payload emitted after returning from payment.
Object fields
Sample data layer snippet
dataLayer.push({"reservation":{"id":123,"step":"return-from-payment","amount":350.0}});