Measuring Internal Campaigns with Google Analytics

How to track internal promotions, offers and campaigns with Google Analytics

We spend time measuring our inbound marketing using Google Analytics via campaign tagged URLs and ensuring Google AdWords is linked to Google Analytics, but what about the promotions we are running on our website? What options do we have to measure banners and offers we promote on our homepage or other areas of our website?

Well, the best options are:

  • Event tracking
  • Enhanced Ecommerce
  • Custom parameters

Using one, or a combination of these options to measure internal campaigns will allow you to better understand your promotions. Once you have a way to measure people clicking through, you'll be able to collect data that can be used to understand performance and importantly, insights into what is working and what isn't when it comes to the valuable real estate on your website. Depending on your objectives, this might relate to conversions or even engagement.

Here we can see an example of a "spring styles" and a "spring racing" offer that should be measured as internal campaigns:

Internal promotions you should consider measuring with Google Analytics include: featured products and services, product trials and demonstrations, online event registrations, featured blog posts, white papers and more.

Now you might be wondering why campaign tagged URLs are missing from our list of options. This is because campaign tags should only be used for inbound marketing that is sending people to your website. Why? Let's look at what happens if we were to use UTM campaign tags within our website:

  1. Someone clicks through to your website. This could be from a free (organic) or paid click.
  2. Google Analytics records the traffic source, medium and other details about how that person found your website. At this point a user's session also begins to be recorded.
  3. Now they click on a banner within your website that uses UTM campaign tags.
  4. Since the campaign tags contain traffic source, medium and other details this is again recorded by Google Analytics. Also a new session begins since Google Analytics sees that this person has used a new method (source, medium, etc.) to find a page on your website.

This means that although you will see details about your onsite promotion, you will also have two sessions recorded, even though it is really only one session. By using UTM campaign tags within your website you will be inflating your overall number of sessions and you are also highly likely to be impacting other metrics, like bounce rate and average session duration.

Option 1: Using Events

Event tracking can be used to measure any interactions within a page, so they definitely suit measuring internal campaigns. They are really flexible too, when you use event tracking you can define a category, action and as an option you can add label and value. For example you might use the following naming convention to measure a free product trial banner running on your homepage:

  • Category: Internal Promotion
  • Action: Banner Image
  • Label: Free Product Trial Offer
  • Value: 5

Then if you are promoting a white paper on another page of your website you could use:

  • Category: Internal Promotion
  • Action: Featured Content
  • Label: Free White Paper
  • Value: 2

You can see that we are keeping the category on both promotions as “Internal Promotion,” as it makes it easier to quickly identify all of our promotions within our reports. We are then using the action to group different promotions, for example, we would use "Banner Image" for all banners that we use within our website. The label is then used to distinguish the individual offers being promoted and the optional value is used to prioritise the importance of the promotion. We are simply ranking importance out of a maximum of 5 for each offer.

Event tracking does require custom code to be implemented on each link you want to measure. If you are using Google Tag Manager, you can also measure particular elements based on their element ID.

Here is an example of event tracking that could be applied to your link:

<a href="/free-trial" onClick="_gaq.push(['_trackEvent', 'Internal Promotion', 'Banner Image', 'Free Product Trial Offer', ‘5’]);"><img src="/images/banners/free-trial.png" alt="Free Product Trial Offer" /></a>

You will then have data available within the event reports under 'Behavior' inside Google Analytics:

Events and Internal Campaigns

Option 2: Using Enhanced Ecommerce

If you are selling a product online, then migrating from the legacy ecommerce tracking to Enhanced Ecommerce will allow you to measure the products that you are promoting throughout your website.

Enhanced Ecommerce allows you to measure promotions, clicks on promotions, right through to when people add the item to their cart and check out. For example, if you promote three featured products on your homepage, you can measure three promotions for the products. Then if someone clicks through on a particular featured product, you can then see the number of people clicking through to view the product.

Measuring promotions is a bit like event tracking, but this time you are defining an ID, name and optional creative and position details. Here is an example:

  • ID: Internal Promotion 2351
  • Name: Spring Features
  • Creative: Green Shirts
  • Position: 3

This will allow us to understand which promotion people see, the name of the offer, the particular creative people see and where it is positioned on the page. To implement this our code would look like:

ga('ec:addPromo', { 'id': 'Internal Promotion 2351', 'name': 'Spring Features', 'creative': 'Green Shirts', 'position': '3' });

You can then also measure the number of people clicking the promotion:

ga('ec:addPromo', { 'id': 'Internal Promotion 2351', 'name': 'Spring Features', 'creative': 'Green Shirts', 'position': '3' }); ga('ec:setAction', 'promo_click'); ga('send', 'event', 'Internal Promotion', 'click', 'Spring Features');

For additional implementation details, visit Google Developers. Once you have implemented Enhanced Ecommerce promotion tracking you will be able to see the effectiveness of your offers:

Enhanced Ecommerce Promotion
There is nothing stopping you from using Enhanced Ecommerce to measure promotions on non-ecommerce websites.

Option 3: Using Custom Parameters

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 understanding 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. 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 are using in_type for the type of internal promotion and in_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.

You might want to exclude these two parameters from some of your reporting views because they will make your pages reports a little messier than usual. This is because the page will now appear as two rows within your reports (instead of one). You will see:

/free-trial /free-trial?in_type=banner-image&in_name=free-trial

An extra optional step is to use the internal site search reports to surface your internal promotions within your reports. However, you probably won't want to do this if you have an internal search function.

Quick Summary

There are a number of different ways to measure your internal campaigns, pick an option that suits your needs and begin measuring and analysing the performance of your offers. Most importantly, don't use UTM campaign tags on your website as they will inflate your session data and quickly make a mess of other important metrics.