Google Analyticsのコードは匿名関数で囲んではいけなかった。

,

完全にやってしまった感。。
知らなかったです。Google Analytics(以下ga)は匿名関数で囲んではいけなかったんですね。。
まあそりゃそうですよね。グローバルじゃなくなるので、他jsファイルや、flashから叩けなくなるんですから。

これがやってはいけない書き方。↓


(function() {
	var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-21840288-4']);
	_gaq.push(['_trackPageview']);
	(function() {
		var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	})();
})();

これが正しい書き方。↓


(function() {
	// ここに書いてはいけない。
})();
// 外に書く
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-21840288-4']);
_gaq.push(['_trackPageview']);
(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();


// もしくはscriptタグでhtmlに直接書き込む。

<script>
	var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-21840288-4']);
	_gaq.push(['_trackPageview']);
	(function() {
	    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
	})();
</script>

気をつけましょう。。(おれ)