In collaboration with the PROS team, EveryMundo has developed a dataLayer to help airlines migrate to GA4 in a structure that will allow tracking of every possible ancillary product.
The dataLayer presented in this article is quite comprehensive; not all fields will apply to every airline. The final dataLayer structure will depend on which ancillaries the airline offers.
The EveryMundo Ecommerce dataLayer follows the standard GA4 ‘purchase’ event structure and it includes several extra parameters that are not provided by GA4. These parameters can be tracked as Custom Dimensions.
To get further reference on the GA4 purchase dataLayer visit this link: https://developers.google.com/analytics/devguides/collection/ga4/ecommerce?client_type=gtm
With the purpose of optimizing the number of Custom Dimensions used in GA4, we will use the predefined product parameters. GA4 has multi-level product categories which allow further segmentation in the reports.
item_id will be populated by the name of the product so will provide the highest level of product segmentation. Here is the list of possible values:
As shown in the dataLayer example, the
item_name will have the name of the product that was purchased by the user. This can be the route, hotel name, car rental company, type or service, etc. In some cases, the
item_name can have the same value as the
item_id in case there is no data available.
item_name should always have a value to avoid having empty values in the reports.
Other Product Dimensions
price will always report the unitary price of the product (including taxes) and
quantity will have the total of products.
item_list_id will have the SSR code of the product when available.
FLIGHT is the only
item_id that will have
item_variant. The value will be the full route including connections. In case the booking is a flight from Miami to Paris and there is a connection in New York, the value would be
item_category[n] will vary from product to product, but
FLIGHT will be the only
item_id that will use multiple item categories:
The rest of the products can use
item_category as a resource for extra segmentation like car model, hotel room type, property rental name, etc. In case this information is not available, we suggest keeping the same value as the
item_name as sown in the dataLayer example above to avoid having empty values in the
The Ecommerce dataLayer will always vary from airline to airline as it is subject to how the data is stored in the servers and what data is available. This suggested structure can provide best practices guidelines from our experience in helping airlines fix their Ecommerce tracking through the years.
In the end, the best structure will be defined by the airline’s data analytics department depending on which products the airline offers and which information will support the business decision-making in the company.