Google Analytics

Created 20 August 2026 • Updated 20 August 2026

Data Schema (Confirmation Page)

Zonal PMS pushes the following data to the dataLayer when a guest completes a booking.

This fires on the confirmation page only:

URL: /hotel/your-hotel-slug/availability/confirm

Data Schema Topics

Schema

Copy


  event: "purchase", 

  ecommerce: { 

    currency: "GBP", 

    value:    [sum of all reservation prices], 

    coupon:   [voucher code, if used], 

    items: [ 

      { 

        item_name:    [room type], 

        item_variant: [rate plan name], 

        affiliation:  [hotel name], 

        check_in:     [arrival date], 

        check_out:    [arrival date + number of nights], 

        currency:     "GBP", 

        price:        [room price], 

        quantity:     1 

      } 

      // repeated for each room in the booking 

    ] 

  }, 

  cart:    { ... },   // full cart object 

  guest:   { ... },   // guest details 

  hotel:   { ... },   // hotel details 

  request: { ... }    // search parameters 

Understanding Upsell Items

Scenario Price in dataLayer What it Means
Room included in rate plan null Item is bundled — no separate charge
Guest added an upsell (e.g. breakfast) £ value shown Guest actively added this item
The price behaviour above reflects the internal cart object shown while a guest is browsing (see Section 6). The confirmation-page ecommerce array (Section 4) currently reports this as a single item per room — Section 7 sets out how to extend it so each upsell reports individually in GA4.