Analytics用の便利なスクリプトを紹介します。マニア向けですが、「utm_medium」や「utm_source」などのトラッキングパラメータが付いた長くて汚いURLを、パラメータどおりにちゃんと解析しつつ、ユーザーに対してはキレイなURLで見せられるというものです。この記事のタイトルは長いですが、これでURLは短くキレイになります。ダウンロード&使い方Web担特製のカスタムJavaScriptを以下のURLからダウンロードします。Analytics用トラッキングコードをサイトから削除します。ダウンロードしてIDを書き換えたJavaScriptをサーバーにアップロードして、ページの<head>部分で読み込むようにします(</body>直前でも動作しますが、リダイレクトをスムーズにするために<head>部分に入れることをお勧めします)。src="アップロードしたJSの場所"></script>サイトのURLに「?utm_medium=mail」などのトラッキングパラメータを付けアクセスしてみて、トラッキングパラメータなしのURLにリダイレクトされることを確認します。利用上の注意を確認のうえ、お使いください。このスクリプトの導入後も、あなたはメルマガや広告には、引き続きutm_mediumやutm_sourceなどのトラッキングパラメータ付きURLを使います。そのURLをクリックしたユーザーは、一瞬だけパラメータ付きのURLにアクセスして、すぐにパラメータなしのURLにリダイレクトされます。Analyticsのデータに反映されるようになります。広告やメルマガからのリンクに「utm_source」や「utm_medium」などのパラメータを付けることで、そのリンクが何回クリックされたかを調べる仕組みですね。自分で使っていなくても、FeedBurnerで記事のクリックスルー集計を有効にしていると、フィードからサイトへのリンクにこうしたパラメータが付いている場合があります。Analyticsで解析できて便利な反面、URLがとても長くなってしまいます。http://example.com/?utm_source=webtan&utm_medium=mail&utm_campaign=ww0135長いURLは、次のような点で問題があります。見た目に悪いメールやTwitterでURLを伝えにくい検索エンジンのリンク評価が分散されるソーシャルブックマークなどが分散される長くて使いにくい点は短縮URLを使ってもらえば解決できますが、すべてのユーザーが短縮URLを使い慣れているとは限りません。そもそも長いURLはそれだけで鬱陶しいですよね。流入元を解析するためのトラッキングパラメータが付いたままURLが流通してしまうと、「サイトA用のURLを作ったがサイトBに掲載されてそこからの流入が多かったためにサイトAの効果が高いと誤解する」ようなことも起きてしまうかもしれません。検索エンジンのリンク評価分散に関しては、実際にはcanonical指定をしたりウェブマスターツールの[サイト設定]>[設定]>[パラメータ処理]で無視するように設定したりすれば問題にはなりません。ソーシャルブックマークの分散は防ぎきれないため、損をしてしまいます。トラッキングパラメータなしのURL(通常のURL)に100ブクマ付き、トラッキングパラメータ付きのURLに50ブクマ付くと、本来ならまとめて150ブクマで人気エントリ入りしていたかもしれないのに、上に上がらないままになってしまうのです(canonical指定は必ずしも効くとは限らないので)。Web担でもメルマガのリンクにトラッキングパラメータを使っているためブクマが分散していたことがあり、それを解決するために「utm_XXXのトラッキングパラメータ付きの長くて汚いURLを、トラッキングパラメータなしのきれいで短いURLにリダイレクトしつつも、ちゃんとアクセス解析ができる」トラッキングコードを作りました。動作の解説スクリプト全体の解説をすると長くなってしまいますので省略しますが、全体としては次の図のように動作します。[3]<head>で読み込まれたら、まずURLをチェックします。URLにトラッキングパラメータが付いていたら、現在のURLで同期モードの動作で解析ビーコンを飛ばし、クッキーに「このURLにリダイレクトするよ」と記録したうえで、トラッキングパラメータなしのURLにリダイレクトします。URLにトラッキングパラメータが付いていなかったら、クッキーをチェックします。リダイレクトされた処理の場合は特にビーコンを動作させず、イベントトラッキングの準備をするだけに留めます。リダイレクトされた処理でなければ(つまり通常のアクセス)、ふつうに解析ビーコンを動作させます。利用上の注意Web担ではこのスクリプトをもう半年以上動作させており特に問題はないようですが、Web担編集部ではすべての環境でこのスクリプトが正しく動作することを保証できるわけではありません。不安ならばテストのうえ導入してください。Web担ではテストできていないEコマース系の機能を使っている場合は、必ずテスト環境でいろいろ試してみてください(そのほかにも安田が気づいていない部分があるかもしれません)。Debuggerを使うか、FirefoxのFireBugで「接続」パネルを使うといいでしょう。[4]このスクリプトを使うと、基本的には非同期モードで動作するようになります。そのため、すでにイベントトラッキングなどを利用している場合は非同期モード用の記述に変更する必要があります。通常のトラッキング以外の処理を入れている場合は、スクリプト中ほどの「ここに追加のトラッキング処理を非同期形式で入れる」の部分に追加処理を記述してください(こちらも非同期モードで記述します)。この仕組みを考えていたときに何人かのアクセス解析系の人に意見を聞いたのですが、すべて微妙な反応で、おそらくこうしたニーズを持っている人は少ないマニアックなスクリプトなのだろうと思います。したスクリプトが気になった方は、このスクリプトが狙うところやスクリプトの動作に関して、ご意見やご感想などいただければ幸いです。http://b.hatena.ne.jp/entry/https%3A%2F%2Fwebtan.impress.co.jp%2Fe%2F2010%2F11%2F02%2F9114。