Deprecated data layer events

Legacy events and payloads being phased out, with migration guidance.

Status notice: This article lists legacy compatibility payloads and events that are still documented for migration. Deprecated events, fields, and payload variants will be removed incrementally. There is no single announced removal date unless stated for a specific item. Removed events are not deprecated compatibility payloads and are not included as payload references.

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).

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy availability listings
Replacement guidanceUse view_item_list with ecommerce.items[].

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

ParameterSamplePresenceTypeDescription
item_list_idavailability_searchif availablega4Legacy list id. Source: CMS availability search list id.
item_list_nameAvailability searchif availablega4Legacy list name. Source: CMS availability search list name.
items[...]if availablecustomLegacy items array (top-level). Includes park_id/park_name and per-item currency.

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).

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy availability detail
Replacement guidanceUse view_item with ecommerce.items[].

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

ParameterSamplePresenceTypeDescription
items[...]if availablecustomLegacy items array (top-level). Includes park_id/park_name and per-item currency.

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).

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy booking cart (add)
Replacement guidanceUse add_to_cart with ecommerce.items[].

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

ParameterSamplePresenceTypeStatusDescription
currencyEURif availablega4DeprecatedLegacy top-level currency.
value350if availablega4DeprecatedLegacy top-level value.
items[...]if availablecustomDeprecatedLegacy items array (top-level). CMS only sent item_id for rentable types; PMS used A/C/P prefixes.

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).

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy booking cart (remove)
Replacement guidanceUse remove_from_cart with ecommerce.items[].

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

ParameterSamplePresenceTypeDescription
currencyEURif availablega4Legacy top-level currency.
value350if availablega4Legacy top-level value.
items[...]if availablecustomLegacy items array (top-level). CMS only sent item_id for rentable types; PMS used A/C/P prefixes.

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).

StatusDeprecated
TypeEvent
Available onSales site, Booking site
FlowLegacy promotion click
Replacement guidanceUse select_promotion.

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

ParameterSamplePresenceTypeDescription
items[...]if availablecustomLegacy items array for the selected promotion.

Sample data layer snippet

dataLayer.push({"event":"select_promotion","items":[{"item_id":"discount_12","item_name":"Summer Sale"}]});

Legacy CMS search payload (search object with result_count).

StatusDeprecated
TypeEvent
Available onSales site, Booking site
FlowLegacy site search
Replacement guidanceUse search with top-level search_term.

Deprecated CMS payload that nested search term and result count under search.

Replaced by GA4 search with the search_term parameter.

Top-level parameters

ParameterSamplePresenceTypeDescription
search{...}if availablecustomLegacy search object with query and result_count.

Sample data layer snippet

dataLayer.push({"event":"search","search":{"search_term":"summer holiday","result_count":42}});

productImpression

Legacy UA product impressions payload.

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy rentable impressions
Replacement guidanceUse view_item_list with ecommerce.items[].

Deprecated UA payload for product impressions (pre-GA4).

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce.impressions payload.

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.

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy rentable detail
Replacement guidanceUse view_item with ecommerce.items[].

Deprecated UA payload for product detail impressions (pre-GA4).

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce.detail.products payload.

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.

StatusDeprecated
TypeEvent
Available onSales site, Booking site
FlowLegacy promotion click
Replacement guidanceUse select_promotion.

Deprecated UA payload for promotion clicks (pre-GA4).

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce.promoClick payload.

Sample data layer snippet

dataLayer.push({"event":"promotionClick","ecommerce":{"promoClick":{"promotions":[{"id":"discount_12","name":"Summer Sale"}]}}});

propertyDetail

Legacy CMS property detail payload.

StatusDeprecated
TypeEvent
Available onSales site
FlowLegacy sales property detail
Replacement guidanceUse view_item if the page represents a property/rentable detail; otherwise there is no direct ecommerce replacement.

Deprecated CMS payload for sales module property detail impressions.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce.detail.products payload for property details.

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).

StatusDeprecated
TypeEvent
Available onSales site
FlowLegacy sales form submit
Replacement guidanceUse form_submit.

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

ParameterSamplePresenceTypeDescription
form_submit{...}if availablecustomLegacy form_submit object with dynamic fields.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy checkout price information
Replacement guidanceNo direct replacement. Use view_item when the page represents a rentable detail.

Deprecated CMS payload used on reservation detail pricing screens.

Top-level parameters

ParameterSamplePresenceTypeDescription
item{...}if availablecustomLegacy item object for price information.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy checkout portal step
Replacement guidanceUse step-specific checkout events such as begin_checkout, add_payment_info, and/or checkout_progress.

Deprecated PMS payload that mixed checkout metadata and customer fields inside ecommerce.

Replaced by checkout-step events such as begin_checkout, add_payment_info, and checkout_progress.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce payload with step metadata and customer fields.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy amenity add
Replacement guidanceUse add_to_cart with ecommerce.items[].

Deprecated event emitted when amenities were selected in the old checkout portal.

Replaced by GA4 add_to_cart with amenity items.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce.items payload for selected amenities.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy amenity remove
Replacement guidanceUse remove_from_cart with ecommerce.items[].

Deprecated event emitted when amenities were deselected in the old checkout portal.

Replaced by GA4 remove_from_cart with amenity items.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy ecommerce.items payload for deselected amenities.

Sample data layer snippet

dataLayer.push({"event":"deselect_amenity","ecommerce":{"items":[{"item_id":"A123","item_name":"Amenity name"}]}});

ga4option

Legacy GA4 option payload used during migration.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy checkout option
Replacement guidanceNo supported replacement event is documented for option booking creation.

Deprecated GA4 option payload emitted during the checkout portal migration.

No supported replacement event is documented while option lead events are not part of the supported schema.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy GA4 ecommerce payload with prefixed item ids.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy checkout option confirmation
Replacement guidanceNo supported replacement event is documented for option booking conversion.

Deprecated GA4 option confirmation payload emitted during the checkout portal migration.

No supported replacement event is documented while option conversion events are not part of the supported schema.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy GA4 ecommerce payload with prefixed item ids.

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).

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy checkout purchase
Replacement guidanceUse purchase with the standard ecommerce purchase payload.

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

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy hybrid ecommerce payload.

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"}});

checkout

Legacy UA checkout step payload.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy checkout step
Replacement guidanceUse step-specific checkout events such as begin_checkout, add_payment_info, and/or checkout_progress.

Deprecated UA checkout event emitted by the old checkout portal.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy UA checkout action payload.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy checkout add-to-cart
Replacement guidanceUse add_to_cart with ecommerce.items[].

Deprecated UA add-to-cart event emitted during checkout step 1.

Top-level parameters

ParameterSamplePresenceTypeStatusDescription
ecommerce{...}if availablecustomDeprecatedLegacy UA add-to-cart payload.

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.

StatusDeprecated
TypeEvent
Available onBooking site
PortalsCheckout portal
FlowLegacy option booking
Replacement guidanceNo supported replacement event is documented for option booking creation or conversion.

Deprecated UA option event emitted for bookings created as options.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy UA option payload.

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.

StatusDeprecated
TypeEvent
Available onBooking site
FlowLegacy payment failure
Replacement guidanceNo supported replacement event is documented for failed payments.

Deprecated checkout portal payload that nested failure details under ecommerce.

No supported replacement event is documented for failed payments.

Top-level parameters

ParameterSamplePresenceTypeDescription
ecommerce{...}if availablecustomLegacy failed payment ecommerce payload.

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.

StatusDeprecated
TypeData layer object
Available onBooking site
FlowLegacy hotel_rental home remarketing
Replacement guidanceUse Google Ads dynamic remarketing parameters from ecommerce.items[]; there is no same-name replacement.

Deprecated data layer object for Google Ads hotel_rental remarketing.

Object fields

ParameterSamplePresenceTypeDescription
hrental_pagetypehomeif availablecustomPage type for remarketing.

Sample data layer snippet

dataLayer.push({"hrental_pagetype":"home"});

hrental_home_subsite

Legacy remarketing object for hotel_rental park home pages.

StatusDeprecated
TypeData layer object
Available onBooking site
FlowLegacy hotel_rental park home remarketing
Replacement guidanceUse Google Ads dynamic remarketing parameters from ecommerce.items[]; there is no same-name replacement.

Deprecated data layer object for Google Ads hotel_rental remarketing.

Object fields

ParameterSamplePresenceTypeDescription
hrental_pagetypepark-homeif availablecustomPage type for remarketing.
park_namePark nameif availablecustomPark name for remarketing.
park_id123if availablecustomPark id for remarketing.
countryNetherlandsif availablecustomPark country.
regionTwenteif availablecustomPark region.
cityEnschedeif availablecustomPark city.

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.

StatusDeprecated
TypeData layer object
Available onBooking site
FlowLegacy hotel_rental search results remarketing
Replacement guidanceUse Google Ads dynamic remarketing parameters from ecommerce.items[]; there is no same-name replacement.

Deprecated data layer object for Google Ads hotel_rental remarketing.

Object fields

ParameterSamplePresenceTypeDescription
hrental_pagetypesearchresultsif availablecustomPage type for remarketing.

Sample data layer snippet

dataLayer.push({"hrental_pagetype":"searchresults"});

hrental_offerdetail

Legacy remarketing object for hotel_rental offer detail pages.

StatusDeprecated
TypeData layer object
Available onBooking site
FlowLegacy hotel_rental offer detail remarketing
Replacement guidanceUse Google Ads dynamic remarketing parameters from ecommerce.items[]; there is no same-name replacement.

Deprecated data layer object for Google Ads hotel_rental remarketing.

This payload often included event: "gtm.load" alongside the hrental fields.

Object fields

ParameterSamplePresenceTypeDescription
eventgtm.loadif availablecustomLegacy event key emitted alongside hrental fields.
hrental_pagetypeofferdetailif availablecustomPage type for remarketing.
hrental_id123if availablecustomRentable type id.
hrental_park_id456if availablecustomPark id.
hrental_park_namePark nameif availablecustomPark name.
hrental_startdate2026-02-20if availablecustomStart date.
hrental_enddate2026-02-22if availablecustomEnd date.
hrental_length_of_stay2if availablecustomLength of stay in nights.
hrental_totalvalue120.00if availablecustomTotal value for the stay.
hrental_cityEnschedeif availablecustomCity.
hrental_regionTwenteif availablecustomRegion.
hrental_countryNetherlandsif availablecustomCountry.

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.

StatusDeprecated
TypeData layer object
Available onBooking site
FlowLegacy hotel_rental conversion
Replacement guidanceUse Google Ads dynamic remarketing parameters from ecommerce.items[]; there is no same-name replacement.

Deprecated data layer object emitted during old checkout conversion flows.

Object fields

ParameterSamplePresenceTypeDescription
hrental_id123if availablecustomRentable type id.
hrental_park_id456if availablecustomPark id.
hrental_park_namePark nameif availablecustomPark name.
hrental_pagetypeconversionif availablecustomPage type for conversion.
hrental_startdate2026-02-20if availablecustomStart date.
hrental_enddate2026-02-22if availablecustomEnd date.
hrental_length_of_stay2if availablecustomLength of stay in nights.
hrental_totalvalue350.00if availablecustomTotal value for the stay.
item_countryNetherlandsif availablecustomCountry.
item_regionTwenteif availablecustomRegion.
item_cityEnschedeif availablecustomCity.

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.

StatusDeprecated
TypeData layer object
Available onBooking site
FlowLegacy payment return
Replacement guidanceUse purchase for successful payment returns. No supported replacement event is documented for failed payment returns.

Deprecated payment portal payload emitted after returning from payment.

Object fields

ParameterSamplePresenceTypeDescription
reservation{...}if availablecustomLegacy reservation object with return-from-payment status.

Sample data layer snippet

dataLayer.push({"reservation":{"id":123,"step":"return-from-payment","amount":350.0}});