Before you can view event tracking results in your reports, you must set it up on your site following these steps.
_trackEvent()
method in the source code of
a page object, widget, or video. The specification
for the _trackEvent()
method is:
_trackEvent(category, action, opt_label, opt_value)
The name you supply for the group of objects you want to track.
A string that is uniquely paired with each category, and commonly used to define the type of user interaction for the web object.
An optional string to provide additional dimensions to the event data.
An integer that you can use to provide numerical data about the user event.
The Event Tracking data model has the following components which map directly to elements in the Analytics Reports interface:
A simple example illustrates how you might use the Event Tracking method to record user interaction with a video Play link on your page. It assumes that pageTracker
is the name used for your tracking object.
<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>
In this scenario, the reports for Events would display Videos as the Category, Play as the Action, and Baby's First Birthday
as the Label. The rest of this document describes these components in
detail. Bear in mind that when you implement Event Tracking, you can use
this data model as a guide, or you can simply use the _trackEvent()
method to segment user interaction in any way that works for your data.
For Event Tracking, a category is a name that you supply as a way to group objects that you want to track. It is the first parameter used in the _trackEvent()
method and it is required.
The term Category appears in the reporting interface as Top Categories in the Events Overview page. In this model, a category represents the "root level" of the hierarchical structure of Event Tracking, and you can use that structure in any way suitable to your reporting needs. Typically, you will use the same category name multiple times over related UI elements that you want to group under a given category.
For example, you might track user interaction on three separate controls on a single video interface using:
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']); _gaq.push(['_trackEvent', 'Videos', 'Pause', 'Gone With the Wind']); _gaq.push(['_trackEvent', 'Videos', 'Stop', 'Gone With the Wind']);
Suppose you also want to track how many times the video is downloaded. You could use:
gaq.push(['_trackEvent', 'Videos', 'Downloaded', 'Gone With the Wind']);
In this case, there would be only one category—Videos—in the Events Overview page for Top Categories, and you could see aggregate metrics for user interaction with the total set of elements for that single video object.
However, it's likely that you will have more than one single object that you want to track using Event Tracking, and it's worth considering how you want to categorize your reporting before you implement the call. For instance, you might want to track all separate movies under the main category of "Videos" so that you get aggregate numbers for all video interaction, regardless of which one users interact with.
On the other hand, you might create separate categories based on the type of video—one for movie videos and one for music videos. You might also want a separate category for video downloads:
In this scenario, you can determine the total combined event count for all three categories via the Total Events dashboard. The Total Events metric displays all event counts for all categories that you have supplied in your Event Tracking implementation. However, you will not be able to view combined metrics for all Videos separately from Downloads, because detailed event metrics are combined under their respective categories.
While the Event Tracking object model is entirely flexible, you
should first plan your desired reporting structure before calling the _trackEvent()
method for similar web object elements. If you plan to use the same
category name in multiple locations, be careful to correctly reference
the desired category by name. For example, if you plan to call your
video tracking category "Video" and later forget and use the plural
"Videos," you will have two separate categories for video tracking.
Additionally, if you decide to change the category name of an object
that has already been tracked under a different name, the historical
data for the original category will not be re-processed, so you will
have metrics for the same web page element listed under two categories
in the reporting interface.
The term "Action" in the Event Tracking model refers to the second parameter in the _trackEvent()
method. It too is required.
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
Typically, you will use the action
parameter to
name the type of event or interaction you want to track for a particular
web object. For example, with a single "Videos" category, you can
track a number of specific events with this parameter, such as:
As with categories, the name you provide for an action
is up to you, but keep in mind two important features of how an event action is used in the reports:
To achieve the best possible reports for extensive Event Tracking in your site, keep in mind the following suggestions for using actions:
Event Tracking combines metrics for the same action name across two different categories. For example, if you use the action name "Click" for both the "Downloads" category and the "Videos" category, the metrics for the "Click" in the Top Actions report appears with all interactions tagged with that same name. You could then view a detailed break-down of the "Click" action by category in the next report level. However, if you use the action "click" indiscriminately across your Event Tracking implementation, the usefulness of that segment will be diminished in the reports. Consider choosing action names that relate to your data categories if you plan to use Event Tracking extensively on your website. For example, you might choose to reserve the term "click" for gadget interactions, while keeping the action terms, "Play," "Pause," and "Stop" reserved for video player interactions.
For example, you can use "Play" as an action name to the "Videos" category for all videos on your website. In this model, the Top Actions report would provide aggregate data for events for the "Play" action, and you can see how this event for your videos compares to other events for the videos, such as "Pause" or "Stop."
However, suppose you want to use one video category for your reports, but you want some information about two different video player UIs. You can use the action name to distinguish the different player chromes without having to create separate video categories. The report can then distinguish the two player styles without losing the benefits of aggregate data on all videos for your website.
_gaq.push(['_trackEvent', 'Videos', 'Play - Mac Chrome'); _gaq.push(['_trackEvent', 'Videos', 'Play - Windows Chrome');
You can supply any string for the action parameter. In some situations, the actual event or action name is not as meaningful, so you might use the action parameter to track other elements. For example, if you want to track page downloads, you could provide the document file type as the action parameter for the download event. In this scenario, your reports for the "Downloads" category would then be broken out by file types (pdf, doc, xls).
Any time a user interacts with an object tagged with a particular action name, the initial interaction is logged as one unique event
for that action name. Any additional interaction with the same action
trigger for that user's session will not contribute to the unique event
calculation for that particular action. This is true even if the user
leaves that object and begins to interact with another object tagged via
the same action name.
This has two notable results in the reports. First,
suppose a user interacts with the "Play" action from two unique video
players tagged with separate categories. The Top Actions reports for "Play" will list one unique event even though the user engaged with two unique players. Secondly, each category's Action report will list one unique action, since there is indeed one unique event per category/action pair. See Implicit Count for more information.
The term "Label" in the Event Tracking data model refers to the third string parameter in the _trackEvent()
method. This parameter is optional. With labels, you can provide
additional information for events that you want to track, such as the
movie title in the video examples above, or the name of a file when
tracking downloads.
pageTracker._trackEvent('Downloads', 'PDF', '/salesForms/orderForm1.pdf');
As with Categories and Actions, the reporting interface has its own section for all labels you create for your Event Tracking. Think of a label as a way to create an additional reporting dimension for user interaction with page objects. For example, suppose you have five video players on your page that you want to track interaction with. Each one of these players can use the "Videos" category with the "Play" action, but each could also have a separate label (such as the movie name) so that they appear as distinct elements in the report.
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']); _gaq.push(['_trackEvent', 'Videos', 'Play', 'Huckleberry Finn']);
The term "Value" refers to the fourth, and optional, parameter that you can use with the _trackEvent()
method. This parameter differs from the others in that it is of type integer
rather than string
,
so use it to assign a numerical value to a tracked page object. For
example, you could use it to provide the time in seconds for an player
to load, or you might trigger a dollar value when a specific playback
marker is reached on a video player.
_gaq.push(['_trackEvent', 'Videos', 'Video Load Time', 'Gone With the Wind', downloadTime]);
The value is interpreted as a number and the report adds the total
values based on each event count (see Implicit Count below).
The report also determines the average value for the category. In the example
above, the _trackEvent()
method is called for the "Video
Load Time" action when video load completes. The name of the video
is provided as a label, and the computed load time is accrued for each
video download. You could then determine average load time for all "Video
Load Time" actions for the "Videos" category. Suppose you
had 5 unique downloads for your website videos with download times in seconds
as:
The reporting interface would then compute these as follows, with the numbers in this example illustrating download time in seconds:
# Visits w/Events | Value | Average Value |
---|---|---|
5 | 53 | 10.6 |
Negative integers are not supported at this time.
In Event Tracking, each interaction with a tracked web page object is counted, and each interaction is associated with a given user session. In the reports, Total Events are calculated as the total number of interactions with a tracked web page object. On the other hand, where a single user session (or visit) has one or more events, this is calculated as a single Visit w/Event, or Unique Event in the reports.
For example, if one user clicks the same button on a video 5 times, the total number of events associated with the video is 5, and the number of unique events is 1.
The following table illustrates how data is aggregated in the reporting interface for a given event category. In this example, the same category name is called from 2 separate video players, each with a distinct label. These players share the actions "Play" and "Stop," as programmed in the Flash UI for the video player.
Action Type | Label: "Gone With the Wind" | Label: "Mr Smith Goes to Washington" | Totals |
---|---|---|---|
Play | 10 visits w/Event | 5 visits w/Event | 15 unique events "Play" |
Pause | 2 visits w/Event | 8 visits w/Event | 10 unique events "Pause" |
Stop | 2 visits w/Event | 3 visits w/Event | 5 unique events "Stop" |
Totals | 14 unique events for GWTW | 16 unique events for Mr Smith | 30 unique events for category "videos" |
The table above makes the assumption that user interaction with "Gone With the Wind" and "Mr Smith Goes to Washington" occurs independently in separate user sessions (visits). However, the table below illustrates how events are calculated for a given action in a more complex and typical scenario, where some users press "Play" on only one video, while others interact with more than one video during a visit. Here, the total unique events reflects the total unique events for the "Play" action across labels. Notice that, even though there are 17 unique events per label/action pair, the reports list the unique events for the relevant dimension. So, for all actions, there are only 16 unique events, and for the "Videos" category, a total of 16 visits included an event in which "Videos" was the category.
Action Type | Label: "Gone With the Wind" | Label: "Mr Smith Goes to Washington" | Totals |
---|---|---|---|
Play | 10 visits w/event | 10 unique events "Play" | |
Play | 5 visits w/event | 5 unique events "Play" | |
Play | 1 visit w/event on BOTH movies (two clicks on "Play") | 1 unique event "Play" | |
Totals | 11 unique play events for GWTW | 6 unique play events for Mr Smith | 16 unique events for category "Videos" and 16 unique events for action "Play" |
Keep in mind the following when implementing Event Tracking for your site.
In general, a "bounce" is described as a single-page visit to your site. In Analytics, a bounce is calculated specifically as a session that triggers only a single GIF request, such as when a user comes to a single page on your website and then exits without causing any other request to the Analytics server for that session. However, if you implement Event Tracking for your site, you might notice a change in bounce rate metrics for those pages where Event Tracking is present. This is because Event Tracking, like page tracking is classified as an interaction request.
For example, suppose you have a page with a video player where the bounce rate is historically high, and you have not implemented Event Tracking for the page. If you subsequently set up Event Tracking for the player, you might notice a decrease in the bounce rate for that page, because Analytics will record user interaction with the player and send that interaction to the server as an additional GIF request. Thus, even though the same percentage of visitors to the page might still exit without viewing any other page on your site, their interaction with the video player triggers Event Tracking calls, which disqualifies their visit as a bounce.
In this way, "bounces" for your event-enabled pages means something slightly different: a single-page visit that includes no user interaction on tracked events.
It's important to keep in mind that any implementation of Event Tracking that automatically executes on page load will result in a zero bounce rate for the page. This is the case if you implement the TimeTracker example, or any other similar Event Tracking utility.
For each visit (user session), a maximum of approximately 500 combined GATC requests (both events and page views) can be tracked. Keep this in mind when programmatically generating events. Note that—as the number of events in a session approaches the limit—additional events might not be tracked. For example, you should:
For more background information on sessions, see the Google Analytics Help Center on this topic.