Skip to main content
Data layer events

remove_from_cart

A user removes items from the cart.

Status: Active

Availability: Live for checkout; CMS cart coming soon.

Triggered when a user removes one or more items from the cart on a booking site or removes extras/upgrades in the checkout portal.

GA4 docs: https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#remove_from_cart

Sample data layer snippet

dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object. 
 dataLayer.push({
  "event": "remove_from_cart",
  "ecommerce": {
    "currency": "EUR",
    "value": 350.0,
    "items": [
      {
        "item_id": "123123",
        "item_name": "4-Person Luxury Villa",
        "item_brand": "Administration Name",
        "affiliation": "Website",
        "checkout_item_id": "987654",
        "item_category": "Accommodation",
        "item_category2": "house",
        "item_variant": "single_night",
        "item_list_id": "cart",
        "item_list_name": "Cart",
        "item_country": "Netherlands",
        "item_region": "Twente",
        "item_city": "Enschede",
        "administration_id": "321321",
        "administration_name": "Administration Name",
        "coupon": "SUMMER10",
        "park_id": "321321",
        "currency": "EUR",
        "discount": 25.0,
        "price": 350.0,
        "quantity": 1,
        "index": 1,
        "start_date": "2026-02-20",
        "end_date": "2026-02-22",
        "google_business_vertical": "hotel_rental"
      }
    ]
  }
});

Top-level objects

ParameterSamplePresenceDescription
ecommerce{...} (see below)alwaysEcommerce payload wrapper for GA4 events.

ecommerce

Ecommerce payload wrapper for GA4 events.

FieldSamplePresenceDescription
currencyEURalwaysCurrency of the items associated with the event, in 3-letter ISO 4217 format. Source: Currency used for totals/items (booking/order/reservation currency; availability/property search uses the active site currency).
value350.0alwaysTotal value of the event. Source: Total order/booking value or sum of item prices.
items[][...] (see below)alwaysItems array for the ecommerce payload.
ecommerce.items[]

Items array for the ecommerce payload.

FieldSamplePresenceDescription
item_id123123alwaysID of the item. Combine with item_category and item_category2. Source: rentable type id (Accommodation), cost id (Upgrade, Preference), bundle id (Package), or amenity id (Preference with Amenity item_category2). Availability/property search: category or property id.

Notes: Legacy checkout portal used prefixed ids (A/C/P). Legacy CMS remove_from_cart only sent the rentable type id.

item_name4-Person Luxury Villaif availableThe name of the item. Source: rentable type id (Accommodation), cost id (Upgrade, Preference), bundle id (Package), or amenity id (Preference with Amenity item_category2). Availability/property search: localized category/property name.
item_brandAdministration Nameif availableThe localized name of the site. Source: Checkout portal: administration name. Availability/property search: site/brand name shown on the website (can differ from the administration name).
affiliationWebsiteif availableDeprecated
checkout_item_id987654if availableDeprecated - use item_id with item_category to identify items
item_categoryAccommodationif available

Top-level item type.

  • Accommodation
  • Upgrade
  • Preference
  • Package

Source: Checkout portal: Accommodation for rentable types, Upgrade for extras, Preference for amenities/preferences, Package for bundles. Availability/property search: Accommodation.

item_category2houseif available

Semantic segment for accommodations or sub-bucket for extras.

Accommodation: house pitch room berth apartment other
Extras: Amenity Upgrade Package

Source: Checkout portal: accommodation semantic segment or extras bucket. Availability/property search: accommodation semantic segment.

item_category3if available

PMS extra type for extras only.

  • tourist_taxes
  • cleaning
  • parking

Source: Checkout portal extras only: cost extra_type. Not set for accommodations, packages, or availability/property search.

item_variantsingle_nightif available

Stay duration category for the accommodation.

  • single_night - 1 night
  • weekend - 2-3 nights incl weekend
  • midweek - 2-4 nights without weekend
  • week - 6-8 nights or 5 nights incl weekend
  • extended_stay - 9-13 nights
  • long_stay - 14+ nights

Source: Checkout portal accommodations and CMS availability items; derived from arrival/departure.

item_list_idcartif availableID of the list where the item is shown. Source: Availability/property search list id (availability_search/property_search). Cart/checkout events may supply list id like Cart or Checkout.
item_list_nameCartif availableName of the list where the item is shown. Source: Availability/property search list name (Availability search/Property search). Cart/checkout events may supply list name like Cart or Checkout.
item_countryNetherlandsif availableThe country where the administration is located. Source: Administration country from BEX (shared across checkout portal and availability/property search).
item_regionTwenteif availableThe region where the administration is located. Source: Administration region from BEX (shared across checkout portal and availability/property search).
item_cityEnschedeif availableThe city where the administration is located. Source: Administration city from BEX (shared across checkout portal and availability/property search).
administration_id321321if availableThe ID of the administration in BEX PMS. Source: Checkout portal: BEX administration id. Availability/property search: the same BEX administration id (Booking Experts administration mapping).

Notes: Renamed from park_id in legacy CMS/PMS payloads.

administration_nameAdministration Nameif availableThe name of the administration in BEX PMS. Source: Checkout portal: BEX administration name. Availability/property search: the same BEX administration name (Booking Experts administration mapping).

Notes: Renamed from park_name in legacy CMS/PMS payloads.

couponSUMMER10if availableCoupon applied to the item. Source: Coupon code applied to the reservation or order item (first code, if any).
park_id321321if availableDeprecated: use administration_id.
currencyEURif availableDeprecated: Use ecommerce.currency.
discount25.0if availableDiscount applied to the item. Source: Discount amount for the order item.
price350.0if available

Price for the item line (stay total for accommodation).

Source: Availability/property search: price for the stay. Checkout portal: order item unit price; accommodation uses stay total derived from booking total minus upgrades.

quantity1if availableQuantity of the item. Source: Order item quantity; otherwise 1.
index1if availablePosition of the item in the list. Source: Position in the result list (availability/property search only).
start_date2026-02-20if availableThe date of arrival for availability. Source: Stay arrival date or availability start date.
end_date2026-02-22if availableThe date of departure for availability. Source: Stay departure date or availability end date.
google_business_verticalhotel_rentalif availableGoogle Ads business vertical for dynamic remarketing (examples: "hotel_rental", "retail"). Source: Remarketing business vertical configured globally; not from booking data.

Still need help? Share an idea