

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 |
| summer_banner2 | The name of the promotion creative |
| feature_app_1 | The name of the promotion creative slot associated with the event |
| P_12345 | The ID of the promotion associated with the event |
| 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 matchesview_promotion
orselect_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
orselect_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.
More Insights


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

Ricardo Cristofolini
Senior Implementation Specialist, Data Solutions
Sep 17, 2025
Read More


Key Events in GA4: Tracking What Really Matters

Chris Wright
Associate Director, Training and Development
Sep 10, 2025
Read More


GA4 Reporting Basics: How to Use the Traffic Acquisition Report

Chris Wright
Associate Director, Training and Development
Sep 3, 2025
Read More
More Insights
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

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 |
| summer_banner2 | The name of the promotion creative |
| feature_app_1 | The name of the promotion creative slot associated with the event |
| P_12345 | The ID of the promotion associated with the event |
| 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 matchesview_promotion
orselect_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
orselect_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.
More Insights

Beyond Quick Fixes: Building a Unified Data Strategy for Long-Term Value

Jasmine Libert
Senior Vice President, Data Solutions
Sep 22, 2025
Read More

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

Ricardo Cristofolini
Senior Implementation Specialist, Data Solutions
Sep 17, 2025
Read More

Key Events in GA4: Tracking What Really Matters

Chris Wright
Associate Director, Training and Development
Sep 10, 2025
Read More
More Insights
Sign Up For Our Newsletter
