How to Set Up view_promotion & select_promotion Events in GTM
How to Set Up view_promotion & select_promotion Events in GTM

GA4 Ecommerce Tracking: How to Set Up view_promotion & select_promotion Events in GTM

Learn how to implement GA4 ecommerce promotion tracking with view_promotion and select_promotion events. Avoid common mistakes, configure GTM correctly, and ensure accurate data with QA best practices

Ricardo Cristofolini

Senior Implementation Specialist, Data Solutions

I’m passionate about what I do. If you meet my manager or co-workers, they would say I’m a team player, engaged and always excited to learn something new. Like everyone else I have some flaws. However I’m not afraid to work around those to bring the best in myself and for the company

Why GA4 Promotion Events Matter in Ecommerce Tracking

When we talk about Ecommerce, it can be easy to “ignore” some not-so-important events when you are doing a full product tracking implementation. Most people are really concerned about the view_item_list, select_item, view_item, begin_checkout or even purchase! I don’t blame them. Those are indeed important events, and all Ecommerce reports are built around them.

However, some events might not be the cherry on top of your cake, but that does not make them less important for the full cake recipe. I’m talking about the Promotion events, as in view_promotion and select_promotion.

Those are events that, as the name suggests, support measuring impressions and clicks of internal promotions, such as banners displayed to promote a sale.

In a nutshell, the promotion impressions are typically measured with the initial page view by sending the view_promotion event with an {{items}} parameter to specify the promotion item. Finally, the select_promotion indicates when a user interacted with the promotion item.

Common GA4 Promotion Tracking Mistakes

One common mistake people make here is to create custom event names for their promotion event, either because they look better visually or because they fit better with their current reports. That is a big mistake because, just like the other Ecommerce events, view_promotion and select_promotion are default Ecommerce events and must follow this structure to be properly used in GA4. Otherwise, it will be another custom event placed in a different report location in GA4.

Required Parameters for GA4 Promotion Events

Another mistake I’ve seen working with this type of Ecommerce event is the missing parameters. If you look at the GA4 Ecommerce documentation, you will notice that the view_promotion and select_promotion events have the following parameters:

Parameter Name

Example

Description

creative_name

summer_banner2

The name of the promotion creative

creative_slot

feature_app_1

The name of the promotion creative slot associated with the event

promotion_id

P_12345

The ID of the promotion associated with the event

promotion_name

Summer Sales

The name of the promotion associated with the event

Those parameters are important because they give you more details about your promotion item, location, type of promotion, etc. However, people usually “forget” about them because, as per Google’s documentation, they are not mandatory, so why use them, right?

Not to mention that you could also add some of those parameters at the item-level (e.g. inside the {{items}} object). Keep in mind that, if that’s the case, the ones at the event scope will be ignored.

So, which one to use? The event-level or the item-level?

Well, it depends on your implementation and product structure. For example, if you have multiple products under the same promotion, but each product has a specific promotion, it may be interesting to use the item-level promotion parameters. Also, a side note, if multiple items are provided in the item array with promotion events, only the first element in the items will be used.

GA4 Promotion Event Setup in GTM

Once you have your dataLayer in place with the proper information, the GTM configuration is pretty straightforward. There are a few different ways to approach this, but basically, what you will be doing is configure a tag to pass the {{Event}} (view_promotion and select_promotion), designate the proper trigger based on the event name and configure the Ecommerce dataLayer to follow that tag.

Need help configuring your promotion tracking tags? Contact us and we’ll ensure your GA4 setup is done right.

How GA4 Collects view_promotion and select_promotion Data

As best practices, there is no secret here. If you have already implemented other events, this part should be straightforward to you.

It all starts with the Data Layer.

The Data Layer acts as a temporary holding place for the data you want to send to GA4.

When a view_promotion or select_promotion event occurs on your website, the relevant promotion details (like promotion_id, promotion_name, creative_name, and creative_slot) are pushed into this Data Layer.

Google Tag Manager then plays the role of the messenger. The middleman between the site and GA4. GTM is configured to "listen" for specific events in the Data Layer. When it detects a view_promotion or select_promotion event, along with the associated promotion data, it fires the appropriate GA4 tag. This tag collects the data from the Data Layer and packages it into a "hit" that is then sent to GA4's servers.

You can observe this process in action by checking the network tab in your browser's developer tools. When a promotion event fires, you'll see a network request (often to collect?v=2... or similar) containing the view_promotion or select_promotion event and its parameters, depending on the user's actions on the site. This hit is essentially the data being sent from your website to GA4. Once GA4 receives these hits, it processes the information and makes it available in your GA4 reports.

QA and Debugging GA4 Promotion Events

QA is an important part of any implementation piece. For this specific work, there are multiple ways to QA and to confirm that the data not only leaves GTM, but also reaches GA4 servers as expected.

Here are some of the key steps, depending on where you are in your implementation process:

  • GTM Preview Mode: GTM Preview Mode is the first step to make sure that the specific tags for those events are firing as expected in the proper location. At this point, you can also confirm if the Data Layer is indeed firing as well, and data is being passed to the parameters mapped to the GTM GA4 tags.

  • Network Tab Inspection: As mentioned, inspect the network requests in your browser's developer tools. Verify that the en (event name) parameter in the hit payload matches view_promotion or select_promotion, and that all expected promotion parameters (e.g., pr_id, pr_nm, cn, cs) are present and contain the correct values. This can be done with GTM Preview Mode or after you publish the container. Keep in mind that the parameters can be found in either event level or item level, so make sure to check all locations.

  • DebugView: While using GTM Preview Mode, you can utilize DebugView in GA4 for a more detailed look at the incoming events and their parameters. This tool allows you to see the exact structure of the data being sent, helping you identify any missing or incorrect parameters.

  • Real-time Reports: After triggering a view_promotion or select_promotion event, check the Real-time report in GA4. You should see the event appear, along with the associated promotion parameters. This confirms that the data is reaching GA4.

  • Custom Reports/Explorations: After some time, create custom reports or explorations in GA4 to analyze your promotion data. Look at metrics like "Promotion Impressions" and "Promotion Clicks" to ensure data is populating as expected. You can also break down these metrics by promotion ID, name, creative, and slot to verify the granularity of your data.

Why view_promotion and select_promotion Are Essential for Ecommerce Analytics

Ultimately, the view_promotion and select_promotion events, while sometimes overlooked, are indispensable for a holistic understanding of e-commerce performance and overall data tracking. They provide crucial insights into the effectiveness of your internal marketing efforts, such as banners and special offers.

By meticulously tracking impressions and clicks on these promotions, businesses can accurately measure engagement, identify which creative elements and placements resonate most with users, and optimize their on-site campaigns for maximum impact. Without this granular data, a significant piece of the customer journey, from initial exposure to promotional content to eventual conversion, remains unmeasured, leading to incomplete reporting and potentially misinformed strategic decisions. Therefore, a robust implementation of promotion tracking is not just an add-on; it's a fundamental component of comprehensive e-commerce analytics.




How to Set Up view_promotion & select_promotion Events in GTM

GA4 Ecommerce Tracking: How to Set Up view_promotion & select_promotion Events in GTM

Learn how to implement GA4 ecommerce promotion tracking with view_promotion and select_promotion events. Avoid common mistakes, configure GTM correctly, and ensure accurate data with QA best practices

Ricardo Cristofolini

Senior Implementation Specialist, Data Solutions

September 17, 2025

I’m passionate about what I do. If you meet my manager or co-workers, they would say I’m a team player, engaged and always excited to learn something new. Like everyone else I have some flaws. However I’m not afraid to work around those to bring the best in myself and for the company

Why GA4 Promotion Events Matter in Ecommerce Tracking

When we talk about Ecommerce, it can be easy to “ignore” some not-so-important events when you are doing a full product tracking implementation. Most people are really concerned about the view_item_list, select_item, view_item, begin_checkout or even purchase! I don’t blame them. Those are indeed important events, and all Ecommerce reports are built around them.

However, some events might not be the cherry on top of your cake, but that does not make them less important for the full cake recipe. I’m talking about the Promotion events, as in view_promotion and select_promotion.

Those are events that, as the name suggests, support measuring impressions and clicks of internal promotions, such as banners displayed to promote a sale.

In a nutshell, the promotion impressions are typically measured with the initial page view by sending the view_promotion event with an {{items}} parameter to specify the promotion item. Finally, the select_promotion indicates when a user interacted with the promotion item.

Common GA4 Promotion Tracking Mistakes

One common mistake people make here is to create custom event names for their promotion event, either because they look better visually or because they fit better with their current reports. That is a big mistake because, just like the other Ecommerce events, view_promotion and select_promotion are default Ecommerce events and must follow this structure to be properly used in GA4. Otherwise, it will be another custom event placed in a different report location in GA4.

Required Parameters for GA4 Promotion Events

Another mistake I’ve seen working with this type of Ecommerce event is the missing parameters. If you look at the GA4 Ecommerce documentation, you will notice that the view_promotion and select_promotion events have the following parameters:

Parameter Name

Example

Description

creative_name

summer_banner2

The name of the promotion creative

creative_slot

feature_app_1

The name of the promotion creative slot associated with the event

promotion_id

P_12345

The ID of the promotion associated with the event

promotion_name

Summer Sales

The name of the promotion associated with the event

Those parameters are important because they give you more details about your promotion item, location, type of promotion, etc. However, people usually “forget” about them because, as per Google’s documentation, they are not mandatory, so why use them, right?

Not to mention that you could also add some of those parameters at the item-level (e.g. inside the {{items}} object). Keep in mind that, if that’s the case, the ones at the event scope will be ignored.

So, which one to use? The event-level or the item-level?

Well, it depends on your implementation and product structure. For example, if you have multiple products under the same promotion, but each product has a specific promotion, it may be interesting to use the item-level promotion parameters. Also, a side note, if multiple items are provided in the item array with promotion events, only the first element in the items will be used.

GA4 Promotion Event Setup in GTM

Once you have your dataLayer in place with the proper information, the GTM configuration is pretty straightforward. There are a few different ways to approach this, but basically, what you will be doing is configure a tag to pass the {{Event}} (view_promotion and select_promotion), designate the proper trigger based on the event name and configure the Ecommerce dataLayer to follow that tag.

Need help configuring your promotion tracking tags? Contact us and we’ll ensure your GA4 setup is done right.

How GA4 Collects view_promotion and select_promotion Data

As best practices, there is no secret here. If you have already implemented other events, this part should be straightforward to you.

It all starts with the Data Layer.

The Data Layer acts as a temporary holding place for the data you want to send to GA4.

When a view_promotion or select_promotion event occurs on your website, the relevant promotion details (like promotion_id, promotion_name, creative_name, and creative_slot) are pushed into this Data Layer.

Google Tag Manager then plays the role of the messenger. The middleman between the site and GA4. GTM is configured to "listen" for specific events in the Data Layer. When it detects a view_promotion or select_promotion event, along with the associated promotion data, it fires the appropriate GA4 tag. This tag collects the data from the Data Layer and packages it into a "hit" that is then sent to GA4's servers.

You can observe this process in action by checking the network tab in your browser's developer tools. When a promotion event fires, you'll see a network request (often to collect?v=2... or similar) containing the view_promotion or select_promotion event and its parameters, depending on the user's actions on the site. This hit is essentially the data being sent from your website to GA4. Once GA4 receives these hits, it processes the information and makes it available in your GA4 reports.

QA and Debugging GA4 Promotion Events

QA is an important part of any implementation piece. For this specific work, there are multiple ways to QA and to confirm that the data not only leaves GTM, but also reaches GA4 servers as expected.

Here are some of the key steps, depending on where you are in your implementation process:

  • GTM Preview Mode: GTM Preview Mode is the first step to make sure that the specific tags for those events are firing as expected in the proper location. At this point, you can also confirm if the Data Layer is indeed firing as well, and data is being passed to the parameters mapped to the GTM GA4 tags.

  • Network Tab Inspection: As mentioned, inspect the network requests in your browser's developer tools. Verify that the en (event name) parameter in the hit payload matches view_promotion or select_promotion, and that all expected promotion parameters (e.g., pr_id, pr_nm, cn, cs) are present and contain the correct values. This can be done with GTM Preview Mode or after you publish the container. Keep in mind that the parameters can be found in either event level or item level, so make sure to check all locations.

  • DebugView: While using GTM Preview Mode, you can utilize DebugView in GA4 for a more detailed look at the incoming events and their parameters. This tool allows you to see the exact structure of the data being sent, helping you identify any missing or incorrect parameters.

  • Real-time Reports: After triggering a view_promotion or select_promotion event, check the Real-time report in GA4. You should see the event appear, along with the associated promotion parameters. This confirms that the data is reaching GA4.

  • Custom Reports/Explorations: After some time, create custom reports or explorations in GA4 to analyze your promotion data. Look at metrics like "Promotion Impressions" and "Promotion Clicks" to ensure data is populating as expected. You can also break down these metrics by promotion ID, name, creative, and slot to verify the granularity of your data.

Why view_promotion and select_promotion Are Essential for Ecommerce Analytics

Ultimately, the view_promotion and select_promotion events, while sometimes overlooked, are indispensable for a holistic understanding of e-commerce performance and overall data tracking. They provide crucial insights into the effectiveness of your internal marketing efforts, such as banners and special offers.

By meticulously tracking impressions and clicks on these promotions, businesses can accurately measure engagement, identify which creative elements and placements resonate most with users, and optimize their on-site campaigns for maximum impact. Without this granular data, a significant piece of the customer journey, from initial exposure to promotional content to eventual conversion, remains unmeasured, leading to incomplete reporting and potentially misinformed strategic decisions. Therefore, a robust implementation of promotion tracking is not just an add-on; it's a fundamental component of comprehensive e-commerce analytics.




Sign Up For Our Newsletter

Napkyn Inc.
204-78 George Street, Ottawa, Ontario, K1N 5W1, Canada

Napkyn US
6 East 32nd Street, 9th Floor, New York, NY 10016, USA

212-247-0800 | info@napkyn.com