About Google Analytics eCommerce Tracking
Setting up Google Analytics allows you to better track conversions and other shopping behavior on your Inntopia eComm site.
Inntopia supports Google Analytics 4 (GA4) eCommerce Tracking.
Below is an overview of how Google Analytics 4 can be implemented in Inntopia and the basic steps for getting started. Inntopia recommends using Google Tag Manager (GTM) to implement eCommerce tracking.

In accordance with Google’s specifications, Inntopia makes data available for a number of events in eComm. These events can be used as custom event triggers in GTM, during the creation of Enhanced eCommerce Tracking tags. After all desired tags have been implemented via GTM, you can retrieve tracking data from your Google Analytics account.
When the eCommerce platform pushes data to the GTM data layer, events will fire, named according to Google's specs for GA4. Below are sample data available in the innDataLayer when these different events fire.

The eCommerce object contains the following properties:
Property | Value |
---|---|
item_list_name | Name of the list of items (i.e. page where list is found) (string) |
item_list_id | Camelcase of list name (string) |
items | Array of item objects with the following properties |
item_id | Product ID (string) |
item_name | Product name (string) |
affiliation | Sales Channel ID and Name, separated by a hyphen (string) |
coupon | Promo Code (string) |
currency | The currency, in 3-letter ISO 4217 format. (string) |
discount | The monetary discount value on the 'price' below. (string) |
index | Position of the product in the search results/list (number) |
item_brand | Supplier ID and Supplier Name, separated by a hyphen (string) |
item-category | Product Supercategory ID (string) |
item_category2 | Product Supercategory Name (string) |
item_category3 | Product Category ID (string) |
item_category4 | Product Category Name (string) |
price |
Product Price, lowest original rack rate (number). (Note: Lodging price is per-night.) |
variant | Package/Promotion ID, if present (string) |


Generally, this event fires at the completion of searches for products – e.g. shop lodging, shop activities, and shop merchandise pages.

{
"event":"view_item_list",
"ecommerce":{
"item_list_name" : 'Shop Lodging',
"item_list_id" : "shopLodging",
"items":[
{
"item_id" : "9876543",
"item_name" : "Community Hotel",
"affiliation" : "1234567-XYZ CRS Resort",
"currency" : "USD",
"index" : 1,
"item_brand" : "9876543-Community Hotel",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 300
},
{
"item_id" : "8765432",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"currency" : "USD",
"index" : 2,
"item_brand" : "8765432-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250
},
{
"item_id" : "7654321",
"item_name" : "Community Motel",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "",
"currency" : "USD",
"index" : 3,
"item_brand" : "7654321-Community Motel",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 150
}
]
}
}

This event typically fires when a user clicks on a search result tile. The item_list_name and item_list_id are for the list from which the product was clicked, and the items/products array follows the same specification as seen for the view_item_list event.

{
"event":"select_item",
"ecommerce":{
"item_list_name" : 'Shop Lodging',
"item_list_id" : "shopLodging",
"items":[
{
"item_id" : "9876543",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"currency" : "USD",
"index" : 2,
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"variant" : ''
}
]
}
}

This event fires on the supplier detail page, shop calendar page, shop stay page, shop air page, or on the product modal on a shop activities or shop merchandise page, which is where the user lands after clicking on a search result tile.
On the YieldView Calendar, the view_item is pushed after the user selects a day on the calendar. The item_list_name and item_list_id are for the list from which the supplier or product was clicked, and the items/products array follows the same specification as seen for the view_item_list event.

{
"event":"view_item",
"ecommerce":{
"item_list_name" : 'Supplier Detail',
"item_list_id" : "supplierDetail",
"items":[
{
"item_id" : "8",
"item_name" : "Deluxe King",
"affiliation" : "1234567-XYZ CRS Resort",
"currency" : "USD",
"index" : 1,
"item_brand" : "9876543-Community Hotel",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 300,
"variant" : ''
},
{
"item_id" : "7",
"item_name" : "Standard King",
"affiliation" : "1234567-XYZ CRS Resort",
"currency" : "USD",
"index" : 2,
"item_brand" : "9876543-Community Hotel",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"variant" : ''
},
{
"item_id" : "6",
"item_name" : "Standard Two Queen",
"affiliation" : "1234567-XYZ CRS Resort",
"currency" : "USD",
"index" : 3,
"item_brand" : "9876543-Community Hotel",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 200,
"variant" : ''
}
]
}
}

This event fires when a user performs an action which would add an item to the cart/itinerary. The item_list_name and item_list_id are for the list from which the product was added to the cart/itinerary, and the items/products array follows nearly the same specification as seen for the view_item_list event, with two additional properties: location_id contains the ItineraryID assigned to the cart, and quantity contains the quantity of the product added to the cart/itinerary.

{
"event":"add_to_cart",
"ecommerce":{
"item_list_name" : 'Supplier Detail',
"item_list_id" : "supplierDetail",
"location_id" : "99999999",
"currency" : "USD",
"value": 250
"items":[
{
"item_id" : "3",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "",
"index" : 2,
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"quantity" : 1,
"variant" : "123456"
}
]
}
}

This event is fired when the user removes an item from a cart/itinerary. The items/products array follows nearly the same specification as seen for the view_item_list event, with two additional properties: location_id contains the ItineraryID assigned to the cart, and quantity contains the quantity of the product added to the cart/itinerary.

{
"event":"remove_from_cart",
"ecommerce":{
"value": 250,
"currency" : "USD",
"location_id" : "99999999",
"items":[
{
"item_id" : "3",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"index" : 2,
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"quantity" : 1,
"variant" : "123456"
}
]
}
}

As the user begins checkout steps on the Billing Information page, this event fires with the itinerary ID and the products presently in the cart.

{
"event":"begin_checkout",
"ecommerce":{
"value" : "517.00",
"currency" : "USD",
"location_id" : "99999999",
"items":[
{
"item_id" : "3",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "BIGOFFER",
"index" : 1,
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"quantity" : 2,
"variant" : "123456"
},
{
"item_id" : "7",
"item_name" : "$50 Gift Card",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "BIG OFFER",
"index" : 2,
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "21",
"item_category2" : "Gift Card",
"item_category3" : "190",
"item_category4" : "Gift Card",
"price" : 50,
"quantity" : 3,
"variant" : ""
},
{
"item_id" : "1",
"item_name" : "Adult Lift Ticket",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "",
"index" : 3,
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "9",
"item_category2" : "Lift Tickets",
"item_category3" : "117",
"item_category4" : "Lift Tickets",
"price" : 89,
"quantity" : 3,
"variant" : "123456"
}
]
}
}

This event fires as the Continue button is clicked upon entering payment information on the Billing Information page.

{
"event":"add_payment_info",
"ecommerce":{
"value" : "517",
"currency" : "USD",
"location_id" : "99999999",
"payment_type" : "credit card",
"items":[
{
"item_id" : "9876543-3",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "PROMO CODE",
"index" : 1,
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"quantity" : 1,
"variant" : "123456"
},
{
"item_id" : "1234567-7",
"item_name" : "$50 Gift Card",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "PROMO CODE",
"index" : 2,
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "21",
"item_category2" : "Gift Card",
"item_category3" : "190",
"item_category4" : "Gift Card",
"price" : 50,
"quantity" : 3,
"variant" : ""
},
{
"item_id" : "1234567-1",
"item_name" : "Adult Lift Ticket",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "",
"index" : 3,
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "9",
"item_category2" : "Lift Tickets",
"item_category3" : "117",
"item_category4" : "Lift Tickets",
"price" : 89,
"quantity" : 3,
"variant" : ""
}
]
}
}

This event fires as the Continue button is clicked upon entering shipping information on the Billing Information page.

{
"event":"add_shipping_info",
"ecommerce":{
"value" : "517",
"currency" : "USD",
"location_id" : "99999999",
"shipping_tier" : "shipping", (or "no shipping")
"items":[
{
"item_id" : "9876543-3",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "PROMO CODE",
"index" : 1,
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"quantity" : 1,
"variant" : "123456"
},
{
"item_id" : "1234567-7",
"item_name" : "$50 Gift Card",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "PROMO CODE",
"index" : 2,
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "21",
"item_category2" : "Gift Card",
"item_category3" : "190",
"item_category4" : "Gift Card",
"price" : 50,
"quantity" : 3,
"variant" : "123456"
},
{
"item_id" : "1234567-1",
"item_name" : "Adult Lift Ticket",
"affiliation" : "1234567-XYZ CRS Resort",
"coupon" : "",
"index" : 3,
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "9",
"item_category2" : "Lift Tickets",
"item_category3" : "117",
"item_category4" : "Lift Tickets",
"price" : 89,
"quantity" : 3,
"variant" : ""
}
]
}
}

After a purchase has completed, this event fires containing transaction information.

{
"event":"purchase",
"ecommerce":{
"currency" : "USD",
"location_id": "123456789",
"transaction_id" : "123456789",
"shipping" : null, (no shipping charges in ecomm)
"tax" : 5.70,
"value" : 395.70,
"items":[
{
"item_id" : "9876543-3",
"item_name" : "Community Inn",
"affiliation" : "1234567-XYZ CRS Resort",
"item_brand" : "9876543-Community Inn",
"item_category" : "1",
"item_category2" : "Lodging",
"item_category3" : "1",
"item_category4" : "Lodging",
"price" : 250,
"quantity" : 1,
"variant" : ''
},
{
"item_id" : "1234567-7",
"item_name" : "$50 Gift Card",
"affiliation" : "1234567-XYZ CRS Resort",
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "21",
"item_category2" : "Gift Card",
"item_category3" : "190",
"item_category4" : "Gift Card",
"price" : 50,
"quantity" : 3,
"variant" : ''
},
{
"item_id" : "1234567-1",
"item_name" : "Adult Lift Ticket",
"affiliation" : "1234567-XYZ CRS Resort",
"item_brand" : "2345678-XYZ Ski Area",
"item_category" : "9",
"item_category2" : "Lift Tickets",
"item_category3" : "117",
"item_category4" : "Lift Tickets",
"price" : 90,
"quantity" : 3,
"variant" : ''
}
]
}
}

Detailed instructions for setting up analytics tracking on your Inntopia eComm site can be found on Google Analytics help site and Google Tag Manager help site.
- Create a Google Analytics account and property/view.
- Create a Google Tag Manager container.
- Submit the Google Tag Manager container ID to Inntopia Partner Services.
- Add the GTM ID to your online sales channel within the System page in Inntopia CRS:
- Log into your Inntopia CRS account and click the System tab. The System page appears.
- From the Select Another Account drop-down list (located in the top right hand corner of the page), select your online sales channel.
- Scroll to the Tracking Code section at the bottom of the page.
- In the Account Type column of the tracking code section:
- Select Google Tag Manager (eCommerce Only).
- In the Code column, enter the digits that follow GTM- in your container ID. For example, if your Container ID is GTM-ABC123, enter ABC123 in the Code field.
- Click Add.
- Based on the tracking events supported by Inntopia, build your tags.
Note: For instructions on building GA4 tags, consult Google's online help.
You are now ready to start tracking conversions on your Inntopia eComm site.
Google Analytics is a trademark of Google LLC.