scratch/output/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/index.html
2011-12-07 16:40:03 +01:00

246 lines
No EOL
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="blog, javascript, jQuery, Google, analytics, analyser, User, Asynchronous">
<link rel="shortcut icon" type="image/x-icon" href="/Scratch/img/favicon.ico" />
<link rel="stylesheet" type="text/css" href="/Scratch/assets/css/main.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/twilight.css" />
<link rel="stylesheet" type="text/css" href="/Scratch/css/idc.css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://feeds.feedburner.com/yannespositocomen"/>
<link rel="alternate" lang="fr" xml:lang="fr" title="Analyser les clicks sur votre Site" type="text/html" hreflang="fr" href="/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/" />
<link rel="alternate" lang="en" xml:lang="en" title="Track Events with Google Analytics" type="text/html" hreflang="en" href="/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/" />
<script type="text/javascript" src="/Scratch/js/jquery-1.3.1.min.js"></script>
<script type="text/javascript" src="/Scratch/js/jquery.cookie.js"></script>
<script type="text/javascript" src="/Scratch/js/index.js"></script>
<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->
<title>Track Events with Google Analytics</title>
</head>
<body lang="en" class="article">
<script type="text/javascript">// <![CDATA[
document.write('<div id="blackpage"><img src="/Scratch/img/loading.gif" alt="loading..."/></div>');
// ]]>
</script>
<div id="content">
<div id="choix">
<div class="return"><a href="#entete">&darr; Menu &darr;</a></div>
<div id="choixlang">
<a href="/Scratch/fr/blog/2010-06-17-track-events-with-google-analytics/" onclick="setLanguage('fr')">en Français</a>
</div>
<div class="flush"></div>
</div>
<div id="titre">
<h1>
Track Events with Google Analytics
</h1>
<h2>
Asynchronous Complete Google Analytics with jQuery
</h2>
</div>
<div class="flush"></div>
<div class="flush"></div>
<div id="afterheader">
<div class="corps">
<p>Here is how to track all clicks on your website using google analytics asynchronously.</p>
<p>First in your <span class="sc">html</span> you need to use <a href="http://jquery.com">jQuery</a> and a javscript file I named <code>yga.js</code>:</p>
<pre class="twilight">
<span class="EmbeddedSource"> <span class="EmbeddedSource">&lt;</span><span class="MetaTagInline">script</span> <span class="MetaTagInline">type</span>=<span class="String"><span class="String">&quot;</span>text/javascript<span class="String">&quot;</span></span> <span class="MetaTagInline">src</span>=<span class="String"><span class="String">&quot;</span>jquery.js<span class="String">&quot;</span></span><span class="EmbeddedSource">&gt;</span><span class="EmbeddedSource">&lt;/</span><span class="MetaTagInline">script</span><span class="EmbeddedSource">&gt;</span></span>
<span class="EmbeddedSource"> <span class="EmbeddedSource">&lt;</span><span class="MetaTagInline">script</span> <span class="MetaTagInline">type</span>=<span class="String"><span class="String">&quot;</span>text/javascript<span class="String">&quot;</span></span> <span class="MetaTagInline">src</span>=<span class="String"><span class="String">&quot;</span>yga.js<span class="String">&quot;</span></span><span class="EmbeddedSource">&gt;</span><span class="EmbeddedSource">&lt;/</span><span class="MetaTagInline">script</span><span class="EmbeddedSource">&gt;</span></span>
</pre>
<p>And here is the <code>yga.js</code> file:</p>
<div class="code"><div class="file"><a href="/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/code/yga.js"> &#x27A5; yga.js </a></div><div class="withfile">
<pre class="twilight">
<span class="Keyword">$</span>(<span class="Support">document</span>).ready( <span class="Storage">function</span>() {
<span class="Comment"><span class="Comment">//</span> add an event to all link for google analytics</span>
<span class="Keyword">$</span>(<span class="String"><span class="String">'</span>a<span class="String">'</span></span>).<span class="SupportFunction">click</span>(<span class="Storage">function</span> () {
<span class="Comment"><span class="Comment">//</span> tell analytics to save event</span>
<span class="Keyword">try</span> {
<span class="Storage">var</span> identifier<span class="Keyword">=</span><span class="Keyword">$</span>(<span class="Variable">this</span>).attr(<span class="String"><span class="String">'</span>id<span class="String">'</span></span>)&nbsp;;
<span class="Storage">var</span> href<span class="Keyword">=</span><span class="Keyword">$</span>(<span class="Variable">this</span>).attr(<span class="String"><span class="String">'</span>href<span class="String">'</span></span>)
<span class="Storage">var</span> label<span class="Keyword">=</span><span class="String"><span class="String">&quot;</span><span class="String">&quot;</span></span>;
<span class="Keyword">if</span> ( <span class="Keyword">typeof</span>( identifier ) <span class="Keyword">!</span><span class="Keyword">=</span> <span class="String"><span class="String">'</span>undefined<span class="String">'</span></span> ) {
label<span class="Keyword">=</span>label<span class="Keyword">+</span><span class="String"><span class="String">'</span>[id]:<span class="String">'</span></span><span class="Keyword">+</span>identifier
category<span class="Keyword">=</span><span class="String"><span class="String">'</span>JSLink<span class="String">'</span></span>
}
<span class="Keyword">if</span> ( <span class="Keyword">typeof</span>( href ) <span class="Keyword">!</span><span class="Keyword">=</span> <span class="String"><span class="String">'</span>undefined<span class="String">'</span></span> ) {
label<span class="Keyword">=</span>label<span class="Keyword">+</span><span class="String"><span class="String">'</span> [href]:<span class="String">'</span></span><span class="Keyword">+</span>href
<span class="Keyword">if</span> ( href[<span class="Constant">0</span>] <span class="Keyword">==</span> <span class="String"><span class="String">'</span>#<span class="String">'</span></span> ) {
category<span class="Keyword">=</span><span class="String"><span class="String">'</span>Anchor<span class="String">'</span></span>;
} <span class="Keyword">else</span> {
category<span class="Keyword">=</span><span class="String"><span class="String">'</span>Link<span class="String">'</span></span>;
}
}
_gaq.<span class="SupportFunction">push</span>([<span class="String"><span class="String">'</span>_trackEvent<span class="String">'</span></span>, category, <span class="String"><span class="String">'</span>clicked<span class="String">'</span></span>, label]);
<span class="Comment"><span class="Comment">//</span> console.log('[tracked]: ' + category + '&nbsp;; clicked&nbsp;; ' + label );</span>
}
<span class="Keyword">catch</span> (err) {
<span class="Entity">console</span><span class="SupportFunction">.log</span>(err);
}
<span class="Comment"><span class="Comment">//</span> pause to allow google script to run</span>
<span class="Storage">var</span> date <span class="Keyword">=</span> <span class="Keyword">new</span> <span class="Entity">Date</span>();
<span class="Storage">var</span> curDate <span class="Keyword">=</span> <span class="Constant">null</span>;
<span class="Keyword">do</span> {
curDate <span class="Keyword">=</span> <span class="Keyword">new</span> <span class="Entity">Date</span>();
} <span class="Keyword">while</span>(curDate<span class="Keyword">-</span>date <span class="Keyword">&lt;</span> <span class="Constant">300</span>);
});
});
<span class="Storage">var</span> _gaq <span class="Keyword">=</span> _gaq <span class="Keyword">||</span> [];
_gaq.<span class="SupportFunction">push</span>([<span class="String"><span class="String">'</span>_setAccount<span class="String">'</span></span>, <span class="String"><span class="String">'</span>UA-XXXXXXXX-1<span class="String">'</span></span>]);
_gaq.<span class="SupportFunction">push</span>([<span class="String"><span class="String">'</span>_trackPageview<span class="String">'</span></span>]);
(<span class="Storage">function</span>() {
<span class="Storage">var</span> ga <span class="Keyword">=</span> <span class="Support">document</span>.<span class="SupportFunction">createElement</span>(<span class="String"><span class="String">'</span>script<span class="String">'</span></span>); ga.<span class="SupportConstant">type</span> <span class="Keyword">=</span> <span class="String"><span class="String">'</span>text/javascript<span class="String">'</span></span>; ga.async <span class="Keyword">=</span> <span class="Constant">true</span>;
ga.<span class="SupportConstant">src</span> <span class="Keyword">=</span> (<span class="String"><span class="String">'</span>https:<span class="String">'</span></span> <span class="Keyword">==</span> <span class="Support">document</span>.<span class="SupportConstant">location</span>.<span class="SupportConstant">protocol</span>&nbsp;? <span class="String"><span class="String">'</span>https://ssl<span class="String">'</span></span>&nbsp;: <span class="String"><span class="String">'</span>http://www<span class="String">'</span></span>) <span class="Keyword">+</span> <span class="String"><span class="String">'</span>.google-analytics.com/ga.js<span class="String">'</span></span>;
<span class="Storage">var</span> s <span class="Keyword">=</span> <span class="Support">document</span>.<span class="SupportFunction">getElementsByTagName</span>(<span class="String"><span class="String">'</span>script<span class="String">'</span></span>)[<span class="Constant">0</span>]; s.<span class="SupportConstant">parentNode</span>.<span class="SupportFunction">insertBefore</span>(ga, s);
})();
</pre>
</div></div>
<p>Replace the: <code>UA-XXXXXXXX-1</code> by your google analytics code and youre done.</p>
<p>To see what occurs, simply go in <code>Content</code> and <code>Event Tracking</code> as shown in the following screenshot:</p>
<p><img alt="Where to find events tracking in google analytics interface" src="/Scratch/img/blog/2010-06-17-track-events-with-google-analytics/GA_events.png" /></p>
<p>Happy tracking!</p>
</div>
<div id="choixrss">
<a id="rss" href="http://feeds.feedburner.com/yannespositocomen">
Subscribe
</a>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#comment').hide();
$('#clickcomment').click(showComments);
});
function showComments() {
$('#comment').show();
$('#clickcomment').fadeOut();
}
document.write('<div id="clickcomment">Comments</div>');
</script>
<div class="flush"></div>
<div class="corps" id="comment">
<h2 class="first">comments</h2>
<noscript>
You must enable javascript to comment.
</noscript>
<script type="text/javascript">
var idcomments_acct = 'a307f0044511ff1b5cfca573fc0a52e7';
var idcomments_post_id = '/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/';
</script>
<span id="IDCommentsPostTitle" style="display:none"></span>
<script type='text/javascript' src='/Scratch/js/genericCommentWrapperV2.js'></script>
</div>
<div id="entete" class="corps_spaced">
<div id="liens">
<ul><li><a href="/Scratch/en/">Home</a></li>
<li><a href="/Scratch/en/blog/">Blog</a></li>
<li><a href="/Scratch/en/softwares/">Softwares</a></li>
<li><a href="/Scratch/en/about/">About</a></li></ul>
</div>
<div class="flush"></div>
<hr/>
<div id="next_before_articles">
<div id="previous_articles">
previous entries
<div class="previous_article">
<a href="/Scratch/en/blog/2010-06-15-Get-my-blog-engine/"><span class="nicer">«</span>&nbsp;Get my blog engine</a>
</div>
<div class="previous_article">
<a href="/Scratch/en/blog/2010-06-14-multi-language-choices/"><span class="nicer">«</span>&nbsp;multi language choices</a>
</div>
<div class="previous_article">
<a href="/Scratch/en/blog/2010-05-24-Trees--Pragmatism-and-Formalism/"><span class="nicer">«</span>&nbsp;Trees; Pragmatism and Formalism</a>
</div>
</div>
<div id="next_articles">
next entries
<div class="next_article">
<a href="/Scratch/en/blog/2010-06-17-hide-yourself-to-analytics/">Hide Yourself to your Analytics&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/en/blog/2010-06-19-jQuery-popup-the-easy-way/">jQuery popup the easy way&nbsp;<span class="nicer">»</span></a>
</div>
<div class="next_article">
<a href="/Scratch/en/blog/2010-07-05-Cappuccino-and-Web-applications/">Cappuccino vs jQuery&nbsp;<span class="nicer">»</span></a>
</div>
</div>
<div class="flush"></div>
</div>
</div>
<div id="bottom">
<div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Copyright ©, Yann Esposito</a>
</div>
<div id="lastmod">
Created: 06/17/2010
Modified: 06/17/2010
</div>
<div>
Entirely done with
<a href="http://www.vim.org">Vim</a>
and
<a href="http://nanoc.stoneship.org">nanoc</a>
</div>
<div>
<a href="/Scratch/en/validation/">Validation</a>
<a href="http://validator.w3.org/check?uri=referer"> [xhtml] </a>
.
<a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"> [css] </a>
.
<a href="http://validator.w3.org/feed/check.cgi?url=http%3A//yannesposito.com/Scratch/en/blog/feed/feed.xml">[rss]</a>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>