Articles in The 'Session Level' Tag

February 16 2012

As Easy as 1,2,3: Custom Variables – Part I: Session Level

by Jarret Streiner

What is a custom variable and when do I use it? Custom variables are tags that you insert into your tracking code that allows you to be able to filter your Google Analytics tracking down to certain segments of your site. You will be able to define those sections and segment your visitors to get a better understanding of how they use your site. Running custom variables will allow you to gather data that Google Analytics does not provide in their standard set of reports.

We are going to look at custom variables in three parts. This post, Part I is on Session-Level variables or the period of time during which the visitor is active on the site. To track the actions of the visitor during their session, the actions are stored in a cookie which is deleted when the session cookie expires.

The most common use for this custom variable is for logged in members versus anonymous visitors.

As you are able to set up an assortment of custom variables to track user activity for your site, you’ll usually create your own JavaScript utilities to manage them. Your script will use the basic method for creating a custom variable as follows:

_setCustomVar(index, name, value, opt_scope)

This method accepts four parameters:

  • index–The slot for the custom variable. Required. This is a number whose value can range from 1 – 5, inclusive. A custom variable should be placed in one slot only and not be re-used across different slots.
  • name–The name for the custom variable. Required. This is a string that identifies the custom variable and appears in the top-level Custom Variables report of the Analytics reports.
  • value–The value for the custom variable. Required. This is a string that is paired with a name. You can pair a number of values with a custom variable name. The value appears in the table list of the UI for a selected variable name. Typically, you will have two or more values for a given name. For example, you might define a custom variable name gender and supply male and female as two possible values.
  • opt_scope–The scope for the custom variable. Optional. As described above, the scope defines the level of user engagement with your site. It is a number whose possible values are 1 (visitor-level), 2 (session-level), or 3 (page-level). When left undefined, the custom variable scope defaults to page-level interaction.

Example of the Custom Variable coding structure:

1, // This custom var is set to slot #1. Required parameter.
‘User Type’, // The name of the custom variable. Required parameter.
‘Member’, // Sets the value of “User Type” to “Member” or “Visitor” depending on status. Required parameter.
2 // Sets the scope to session-level. Optional parameter.

When you install the code it should look like this:

<script type=”text/javascript”>// <![CDATA[
var _gaq = _gaq || [];
_gaq.push([‘_setAccount’, ‘UA-XXXXXX-1’]);
_gaq.push([‘_setCustomVar’,1,’VisitorType’,’Member’, 1]);
(function() { var ga = document.createElement(‘script’); ga.type = ‘text/javascript’; ga.async = true; ga.src = (‘https:’ == document.location.protocol ? ‘https://ssl’ : ‘http://www’) + ‘’; var s = document.getElementsByTagName(‘script’)[0]; s.parentNode.insertBefore(ga, s); })();
// ]]>

The total combined length of any custom variable name and value may not exceed 64 bytes, which is not the same as characters. A space is coded as %20 which is 3 bytes, not 1.

Once your code is implemented you can find the custom variable reports under Audience>>Demographics>>Custom Variables.


  • Do not use duplicate key names across slots.
  • You have up to 5 simultaneous custom variables for use in a single request (e.g. pageview or event call).
  • Call the _setCustomVar() function when it can be set prior to a pageview or event GIF request.
  • Use a slot matrix to track large numbers of custom variables.
  • Consider using Event Tracking for certain applications, rather than custom variables.
  • Don’t use session-level variables to track behavior you can track with page-level variables.

In our next post we will be discussing Page-Level Custom Variables.

© 2024 MoreVisibility. All rights reserved.