Home > Google

Google Archive

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

Google Analyticsのトラッキングコードが非同期に

明けましておめでとうございます。take©です。
すでに話題になっているようですが、Google Analyticの新しいトラッキングコードがアナウンスされたようです。
http://googlecode.blogspot.com/2009/12/google-analytics-launches-asynchronous.html (英文)

で、新しいトラッキングコードはこれ。

<script type="text/javascript">
	var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-XXXXX-X']);
	_gaq.push(['_trackPageview']);

	(function() {
		var ga = document.createElement('script');
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
			'http://www') + '.google-analytics.com/ga.js';
		ga.setAttribute('async', 'true');
		document.documentElement.firstChild.appendChild(ga);
	})();
</script>
ちなみにトラディショナルなトラッキングコードはこんな感じだった。
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
} catch(err) {}</script>

いずれも、UA-XXXXX-Xの部分のを自分のものに書き換えます。

なにが変わったのか?

トラッキングコードがページのレンダリングとは非同期に実行されるようになったのが、大きなポイントでしょうか。 古いトラッキングコードでは、スクリプトの実行が完了するまで、ページのレンダリングが待たされるので、</body>の直前に書くなど苦肉の索をとってました。

新しいトラッキングコードはHTML5で追加されたscriptタグのasync属性を使っています。
上記のコードだと ga.setAttribute('async', 'true'); の部分です。
スクリプトでDOMを組み立てていますが、ようはこんな感じでasync属性が書けます。

<script src="/path/to/file.js" async></script>

async属性を指定して読み込まれるスクリプトはページのレンダリングと並行して実行されます。 このことによって、トラッキングコードがページのレンダリングを邪魔することなく、実行されるんですね。

すぐに採用するべきか?

そもそも、async属性を正式にサポートしているのはFirefox3.6(現時点ではBeta版)が最初のようです。 各ブラウザがasync属性をサポートするまで、新しいトラッキングコードの恩恵はあまり受けられないでしょう。 とはいえ、いまから新しいトラッキングコードに対応しておくのは悪くなさそうです。

Home > Google

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。