Google Analytics 4
IRMng supports Google Analytics and other tracking technologies through Google Tag Manager, which allows customers to configure which tracking tags to include on their pages. It includes support for Google Analytics 4 (as of version 5.3.002.10), Universal Analytics, Google Adwords conversion tracking, DoubleClick Floodlight tracking and a variety of non-google measurement and marketing tags. See google.com/tagmanager for more information on Google Tag Manager. In order to support Google Tag Manager, IRMng has implemented the google data layer, which enables configured tags to be populated with information such as reservation number, revenue, room number, etc. The data layer will only be available if IRMng is configured with a Google Tag Manager code snippet.
How to configure IRMng to use Google Tag Manager
- Customers will need to sign up for a Google Tag Manager account and configure which tags should be included in the IRM pages. tagmanager.google.com
- Configure IRM to use the Google Tag Manager tracking tags. On the RDPWin -> IRM/Configuration -> Analytics tab, check the 'Use Google Tag Manager' checkbox and copy/paste the Google Tag Manager code snippet. The GTM code snippet is located on the Admin tab of the customer's Google Tag Manager account. Select the container to be used for IRM and choose 'Install Google Tag Manager'. The code from the first text box is the Google Tag Manager snippet to be pasted into the IRM configuration. (The code in the second text box is not applicable to IRMng as it is only relevant if Javascript is not enabled, which IRMng requires.)
Google Tag Manager Configuration Information
RDP will assist with the configuration of Google Analytics 4 tags in Google Tag Manager. Configuration of other tracking tags is the responsibility of the customer. GTM includes templates for supporting many additional tracking tags, including Adwords, DoubleClick Floodlight and more. A list of Google Tag Manager supported tags can be found at: GTM Tags. Note that RDP may not be able to accommodate every tag on the list. Tags not on the template list can often be supported through the use of a custom tag. Please refer to the Data Layer implementation information below for details on what data is available for populating tracking tags. IRMng supports a data layer for Google Analytics 4 as described below, as well as additional data layer information in support of Universal Analytics as described here.
As of July 1, 2023 current Google Analytics website tracking implemented with Universal Analytics will cease collecting data. Google has replaced Universal Analytics with Google Analytics 4 (GA4). Until July 2023, websites can be tracked with both Universal Analytics and GA4 simultaneously. It is recommended that GA4 tracking be put in place well ahead of the deadline, so that any issues can be overcome and the new reporting compared and understood.
The following are the steps for a customer that already has a google analytics account tracking via Universal Analytics and is converting to Google Analytics 4. These are Google's setup instructions for a customer new to GA. Because Google Tag Manager is in use, the setup wizard cannot reuse existing tags and the GA4 tags will need to be added manually.
- In Google Analytics click Admin
- In the Account column, make sure that your desired account is selected
- In the Property column, select the Universal Analytics property that currently collects data for your website
- In the Property column, click GA4 Setup Assistant.
- Click Get started under I want to create a new Google Analytics 4 property
- Click Create Property
- In Google Tag Manager create a container for GA4, give it a name and choose Web for the container type
-
Add GA4 Configuration Tag (equivalent to UA Page View)
- Type: Google Analytics: GA4 Configuration
- Title: GA4 Configuration
- MeasurementID: obtain from Google Analytics GA4 Property: Admin / Data Streams / click on the GA4 property name
- Trigger: All Pages | Page View
-
Add GA4 Data Layer Variables for Purchase Event
-
transaction_id
- Title: dlga4 - transaction_id
- Data Layer Name: ecommerce.transaction_id
-
affiliation
- Title: dlga4 - affiliation
- Data Layer Name: ecommerce.affiliation
-
value
- Title: dlga4 - value
- Data Layer Name: ecommerce.value
-
tax
- Title: dlga4 - tax
- Data Layer Name: ecommerce.tax
-
coupon
- Title: dlga4 - coupon
- Data Layer Name: ecommerce.coupon
-
items
- Title: dlga4 - items
- Data Layer Name: ecommerce.items
-
transaction_id
-
Add GA4 Purchase Trigger
-
Purchase Event
- Type: Custom Event
- Title: GA4 Purchase
- Event Name: purchase
-
Purchase Event
-
Add GA4 Purchase Tag (equivalent to UA Transaction)
- Type: Google Analytics: GA4 Event
- Title: GA4 Purchase
- Config Tag: GA4 Configuration (created above)
- Event Name: purchase
- Trigger: GA4 Purchase
-
Event Parameters (all but currency populated via data layer variables created above):
- transaction_id : {{dlga4 - transaction_id}}
- affiliation : {{dlga4 - affiliation}}
- currency : USD (this is required or value data will all log as $0)
- value : {{dlga4 - value}}
- tax : {{dlga4 - tax}}
- coupon : {{dlga4 - coupon}}
- items : {{dlga4 - items}}
IRMng's Google Analytics 4 Data Layer
Cookie Consent
Google Analytics and many other tracking technologies use cookies. IRMng optionally can be configured to require the user to give consent in order to use marketing and/or analytics cookies. This is configured from CMSng / Configuration / IRM. In order for the IRMng consent settings to be effective, Google Tag Manager tag consent settings must also be configured. IRMng supports the 'ad_storage' and 'analytics_storage' consent settings.
Available Rooms List Data Layer
view_item_list Trigger EventIRMng will add the GA4 even 'view_item_list' when the 'Check Availability' button is clicked, which can be used in Google Tag Manager to fire tracking tags relevant to this stage in the booking process. The following information describing the available rooms list returned will also be added to the data layer:
Variable Name | Description |
---|---|
item_list_name | 'arrival date' to 'departure date' 'x' people |
items | List of available rooms returned, detail for each room includes: |
item_id | room number if rooms list is by unit, otherwise room type |
item_name | the descriptive label for the room/room type |
item_category | if item_id is a room number, this will be the room type, otherwise it's blank |
affiliation | property name |
coupon | promo code, if applicable |
currency | 'USD' |
index | the index for this entry in the available rooms list |
price | if the rate information is available, average nightly rate |
quantity | stay length |
IRMng will add the GA4 event 'view_item' when the various detail tabs (rates, photos, calendar, map, details) for a room in the availability list are clicked. The following information describing the room being viewed will also be added to the data layer:
Variable Name | Description |
---|---|
items | Detail for the room being viewed including: |
item_variant | name of the tab being viewed |
item_id | room number if rooms list is by unit, otherwise room type |
item_name | the descriptive label for the room/room type |
item_category | if item_id is a room number, this will be the room type, otherwise it's blank |
item_list_name | 'arrival date' to 'departure date' 'x' people |
affiliation | property name |
coupon | promo code, if applicable |
currency | 'USD' |
price | if the rate information is available, average nightly rate |
quantity | stay length |
Guest Information Entry Data Layer
add_to_cart and begin_checkout Trigger EventIRMng will add the GA4 events 'add_to_cart' and 'begin_checkout' when the guest has clicked the 'Reserve' button that displays the form for entering name, address, payment information. The GA4 event 'remove_from_cart' will be added if the guest chooses to change the room or dates selected. The following information describing the room to be booked will also be added to the data layer:
Variable Name | Description |
---|---|
value | total charge for the reservation |
currency | 'USD' |
items | Detail for the room being booked including: |
item_id | room number if rooms list is by unit, otherwise room type |
item_name | the descriptive label for the room/room type |
item_category | if item_id is a room number, this will be the room type, otherwise it's blank |
item_list_name | 'arrival date' to 'departure date' 'x' people |
affiliation | property name |
coupon | promo code, if applicable |
price | average nightly rate |
quantity | stay length |
Reservation Confirmation Data Layer
purchase Trigger EventIRMng will add the GA4 event 'purchase' when the reservation has been completed, which can be used in Google Tag Manager to fire tracking tags upon a successful reservation booking. The following information describing the reservation will also be added to the data layer:
Variable Name | Description |
---|---|
transaction_id | the reservation number |
value | total charge for the reservation, including tax |
tax | total tax for the reservation |
currency | 'USD' |
affiliation | property name |
items | Detail for the room that was booked including: |
item_id | room number if rooms list is by unit, otherwise room type |
item_name | the descriptive label for the room/room type |
item_category | Default: if item_id is a room number, this will be the room type, otherwise it's blank. How to populate item_category can be configured in RDPWin IRM/Configuration Analytics tab. See list of choices below. |
item_category2 | Default: blank. How to populate item_category2 can be configured in RDPWin IRM/Configuration Analytics tab. See list of choices below. |
item_category3 | Default: blank. How to populate item_category3 can be configured in RDPWin IRM/Configuration Analytics tab. See list of choices below. |
item_category4 | Default: blank. How to populate item_category4 can be configured in RDPWin IRM/Configuration Analytics tab. See list of choices below. |
item_category5 | Default: RDP hosted servers item_category5 is the property name, otherwise blank. How to populate item_category5 can be configured in RDPWin IRM/Configuration Analytics tab (not configurable for RDP hosted servers). See list of choices below. |
item_list_name | 'arrival date' to 'departure date' 'x' people |
coupon | promo code, if applicable |
price | average nightly rate |
quantity | stay length |
The purchase item_category through item_category5 variables can be populated with the following from the data layer. Which data layer variable to populate which item category is configured in RDPWin IRM/Configuration Analytics tab.
Data Layer Variable | Description |
---|---|
Arrival Date | Reservation check-in date in M/d/yyyy format |
Average Nightly Rate | Total room charge only (no tax or other charges) divided by the stay length |
Confirmation Number | The reservation confirmation number (reservation number in RDPWin) |
Departure Date | Reservation check-out date in M/d/yyyy format |
Deposit Paid | The deposit amount being paid at time of booking |
Group | If logged in with a group id, the group number |
Guest City | The city entered by the guest with their address information |
Guest Country | The country entered by the guest with their address information |
Guest Postal Code | The postal code entered by the guest with their address information |
Guest State | The state entered by the guest with their address information |
People1 | The number of guests in people category 1, normally adults |
People2 | The number of guests in people category 2 |
People3 | The number of guests in people category 3 |
People4 | The number of guests in people category 4 |
Promo Code | The valid promotion code entered by the guest, if applicable |
Property Code | If applicable, the property code for the room being reserved |
Property Name | The property name as configured on the RDPWin IRMnet/Configuration Miscellaneous tab |
Rate Code | The 4 character rate plan code used to calculate the rate |
Rate Description | The descriptive name of the rate plan used to calculate the rate |
Room Charge | The total room charge (no tax or other charges) for the reservation |
Room Count | The number of rooms being reserved |
Room Description | The descriptive label for the room reserved as displayed to the guest on the confirmation page |
Room Number | The room number reserved |
Room Type | The 6 character room type code reserved |
Serial Number | Propery's RDP serial number |
Stay Length | The number of nights on the reservation |
Total Charge | The total of all charges, including tax, for the reservation |
Total Excluding Tax | The total of all charges, excluding tax, for the reservation |
Total People | The sum of the number of guests in people categories 1 through 4 |
Total Tax | The total amount of tax for the reservation |
Travel Agent | If logged in with a travel agent id, the travel agent number |
Virtual Store Charges | If the Virtual Store module is in use, the total virtual store charges (no tax) for the reservation |
IRMng's Universal Analytics Data Layer
Although Google no longer supports Universal Analytics, the UA data layer variables and events are still populated by IRMng. These can be used by other tracking technologies.
Available Rooms List Data Layer
A subset of the data layer variables are updated from IRMng's available rooms list. These data layer values are updated each time the 'Check Availability' button is clicked. Some values are only added as applicable. For example if availability is filtered by room type, then roomType will be added to the data layer, otherwise it will not be.
Check Availability Trigger EventAlso added to the data layer in this context will be the event 'checkAvailability', which can be used in Google Tag Manager to fire tracking tags relevant to this stage in the booking process.
View Details Trigger EventIRMng only will add the event 'viewDetails' when the various detail tabs (rates, photos, calendar, map, details) for a room in the availability list are clicked. The same list of dataLayer variables for checkAvailability and viewDetails are available. In the viewDetails context an additional variable 'tabName', indicating which tab was clicked, is populated.
Variable Name | Description |
---|---|
arrivalDate | The requested reservation check-in date in MM/d/yyyy format |
arrivalDate2 | The requested reservation check-in date in yyyy-M-d format |
departureDate | The requested reservation check-out date in M/d/yyyy format |
departureDate2 | The requested reservation check-out date in yyyy-M-d format |
event | Event value will be 'checkAvailability' (without quotes) |
group | If logged in with a group id, the group number |
people1 | The number of guests in people category 1, normally adults |
people2 | The number of guests in people category 2 |
people3 | The number of guests in people category 3 |
people4 | The number of guests in people category 4 |
promoCode | The valid promotion code entered by the guest, if applicable |
propertyCode | If applicable, the property code being filtered on |
propertyName | The property name as configured on the RDPWin IRMnet/Configuration Miscellaneous tab |
rateCode | if available, the 4 character rate plan code used to calculate the rate |
rateDescription | If available, the descriptive name of the rate plan used to calculate the rate |
roomCount | The number of rooms being reserved |
roomNumber | The room number being filtered on |
roomType | The 6 character room type code being filtered on |
serialNumber | Propery's RDP serial number |
stayLength | The number of nights requested |
totalPeople | The sum of the number of guests in people categories 1 through 4 |
Guest Information Entry Data Layer
A subset of the data layer variables are updated from IRMng's guest information screen. These data layer values are updated each time a 'Reserve' button is clicked and the guest information entry screen is reached. Some values are only added as applicable.
Guest Information Entry Trigger EventAlso added to the data layer in this context will be the event 'guestInfoEntry', which can be used in Google Tag Manager to fire tracking tags relevant to this stage in the booking process.
Variable Name | Description |
---|---|
arrivalDate | Reservation check-in date in M/d/yyyy format |
arrivalDate2 | The requested reservation check-in date in yyyy-M-d format |
avgNightlyRate | Total room charge only (no tax or other charges) divided by the stay length |
departureDate | Reservation check-out date in M/d/yyyy format |
departureDate2 | The requested reservation check-out date in yyyy-M-d format |
event | Event value will be 'guestInfoEntry' (without quotes) |
group | If logged in with a group id, the group number |
people1 | The number of guests in people category 1, normally adults |
people2 | The number of guests in people category 2 |
people3 | The number of guests in people category 3 |
people4 | The number of guests in people category 4 |
promoCode | The valid promotion code entered by the guest, if applicable |
propertyCode | If applicable, the property code for the room being reserved |
propertyName | The property name as configured on the RDPWin IRMnet/Configuration Miscellaneous tab |
rateCode | The 4 character rate plan code used to calculate the rate |
rateDescription | The descriptive name of the rate plan used to calculate the rate |
roomCharge | The total room charge (no tax or other charges) for the reservation |
roomCount | The number of rooms being reserved |
roomDescription | The descriptive label for the room reserved as displayed to the guest on the confirmation page |
roomNumber | The room number reserved |
roomType | The 6 character room type code reserved |
serialNumber | Propery's RDP serial number |
stayLength | The number of nights on the reservation |
totalCharge | The total of all charges, including tax, for the reservation |
totalExcludingTax | The total of all charges, excluding tax, for the reservation |
totalPeople | The sum of the number of guests in people categories 1 through 4 |
totalTax | The total amount of tax for the reservation |
travelAgent | If logged in with a travel agent id, the travel agent number |
virtualStoreCharges | If the Virtual Store module is in use, the total virtual store charges (no tax) for the reservation |
Reservation Confirmation Data Layer
Below is a list of all the variables available in IRMng's implementation of the data layer on the reservation confirmation screen. These variables can be used to populate tracking tags such as Google/Universal Analytics, Google AdWords, Doubleclick Floodlight and other tags supported by Google Tag Manager.
Booking Complete Trigger EventAlso added to the data layer in this context will be the event 'bookingComplete', which can be used in Google Tag Manager to fire tracking tags upon a successful reservation booking.
Variable Name | Description |
---|---|
arrivalDate | Reservation check-in date in M/d/yyyy format |
arrivalDate2 | The requested reservation check-in date in yyyy-M-d format |
avgNightlyRate | Total room charge only (no tax or other charges) divided by the stay length |
confirmationNumber | The reservation confirmation number (reservation number in RDPWin) |
departureDate | Reservation check-out date in M/d/yyyy format |
departureDate2 | The requested reservation check-out date in yyyy-M-d format |
depositPaid | The deposit amount being paid at time of booking |
event | Event value will be 'bookingComplete' (without quotes) |
group | If logged in with a group id, the group number |
guestCity | The city entered by the guest with their address information |
guestCountry | The country entered by the guest with their address information |
guestPostalCode | The postal code entered by the guest with their address information |
guestState | The state or province entered by the guest with their address information |
people1 | The number of guests in people category 1, normally adults |
people2 | The number of guests in people category 2 |
people3 | The number of guests in people category 3 |
people4 | The number of guests in people category 4 |
promoCode | The valid promotion code entered by the guest, if applicable |
propertyCode | If applicable, the property code for the room being reserved |
propertyName | The property name as configured on the RDPWin IRMnet/Configuration Miscellaneous tab |
rateCode | The 4 character rate plan code used to calculate the rate |
rateDescription | The descriptive name of the rate plan used to calculate the rate |
roomCharge | The total room charge (no tax or other charges) for the reservation |
roomCount | The number of rooms being reserved |
roomDescription | The descriptive label for the room reserved as displayed to the guest on the confirmation page |
roomNumber | The room number reserved |
roomType | The 6 character room type code reserved |
serialNumber | Propery's RDP serial number |
stayLength | The number of nights on the reservation |
totalCharge | The total of all charges, including tax, for the reservation |
totalExcludingTax | The total of all charges, excluding tax, for the reservation |
totalPeople | The sum of the number of guests in people categories 1 through 4 |
totalTax | The total amount of tax for the reservation |
travelAgent | If logged in with a travel agent id, the travel agent number |
virtualStoreCharges | If the Virtual Store module is in use, the total virtual store charges (no tax) for the reservation |