How to Track Internal Promotions, Offers and Campaigns with Google Analytics 4 (GA4)
Benjamin Mangold
When we think about campaign tracking in Google Analytics, the focus is usually on measuring external traffic – things like Google Ads, emails, and social media. But what about the promotions you're running on your own website?
Here we can see an example of a page with a number of different promotions being featured:

Whether you’re featuring a product on your homepage, offering a free trial, or highlighting a seasonal campaign, it’s important to track how people interact with your internal promotions. Doing this gives you valuable insights into what’s working – and what’s not – so you can optimize the real estate on your site.
Let's explore two options to track internal campaigns – we're going to cover how we can capture additional events and how we can use custom parameters in URLs.
Option 1: Using GA4’s Recommended Event
In GA4, the recommended way to track internal campaigns – like homepage banners or special offers – is to use the select_promotion
event. This event is one of Google’s recommended events and is specifically designed to measure promotional clicks within your website.
Let’s say you’re promoting a free trial with a banner on your homepage. Here’s how you’d structure the event:
- event_name:
select_promotion
- promotion_id:
trial_banner_home
- promotion_name:
free trial campaign
- creative_name:
free trial image banner
- creative_slot:
homepage hero
Implementing with Google Tag Manager:
- Create a trigger for the banner click (e.g. using Click ID or Click Classes).
- Create a new GA4 Event tag and enter
select_promotion
as the event name. - Add the recommended parameters and values as shown above.
- Create a trigger to fire your tag when people click the banner.
- Preview your changes, and once tested, publish your container.

After implementation, you’ll find your select_promotion
events in the default 'Events' report (which can be found by navigating to 'Reports' and then 'Engagement'). For more detailed insights, you can create a custom Exploration report to analyze performance by banner, location, or creative.
Tip: Use consistent naming conventions across all of your internal campaigns. This makes it easier to analyze performance in Google Analytics and Looker Studio.
Option 2: Using Custom Parameters in URLs
A simple way to measure internal campaigns it to use custom query parameters that you add to your links. This requires very minor changes to your links and can be a quick way to understand the effectiveness of your promotions.
The main thing is not to use any parameters that are already being used, for example parameters used by your CMS or website platform. You can use this technique to measure any details that you like, for example:
- Type: Banner Image
- Creative: Free Trial
We can then translate these to our custom parameters and apply these to the link for our promotion:
<a href="/free-trial?in_type=banner-image&in_name=free-trial"><img src="/images/banners/free-trial.png" alt="Free Product Trial Offer" /></a>
In this example, we're using int_type
for the type of internal promotion and int_name
to define the creative we are using for our promotion. Now that we have applied our own parameters we will begin to see these displayed in the pages reports within Google Analytics.
One thing to highlight is that if you're using a page-based dimension that includes query parameters, you will see the page appear as two rows within your reports instead of one. You will see something like:
/free-trial
/free-trial?int_type=banner-image&int_name=free-trial
An optional step would be to use Google Tag Manager to capture the values of each query parameter and pass these to Google Analytics. However, if you're taking the time to do this, you might find the first option we covered is easier to implement.
Tip: This is a quick solution, but not ideal for high-volume or long-term tracking. For more structured data, use dedicated event parameters and custom dimensions.
Final Thoughts
Tracking internal promotions in Google Analytics gives you the power to understand which internal campaigns drive engagement and which placements need improvement. Here’s a quick recap:
- Use
select_promotion
events for interaction tracking. - Include Google's recommended parameters for clean and consistent data.
- Avoid UTM tags – they will impact marketing channel attribution.
Once your tracking is in place, you’ll be able to optimize your homepage real estate and highlight the offers that matter most to your audience.

Apart from viewing the select_promotion
event in the default Events report, you can also create custom Exploration reports for more detailed reporting and analysis.
Comments