皆さん、新年明けましておめでとうございます。どうぞ今年もワザップ!をよろしくお願いいたします。
さて、今回はGoogle Analytics(以下GA)でのサイト内検索の検索キーワードの文字化けの解決法です。GA導入サイトのエンコーディングによっては検索キーワードが文字化ける事があります。文字化けしたキーワードはなにも役に立ちませんね。GAの左の「コンテンツ」メニューから「サイト内検索」を選んでも、見事に文字化けしたキーワードがズラリと並びます。
文字化けした検索キーワード
具体的には分からないのですが、GA側がすべての検索クエリパラメータのエンコーディングをUTF-8とみなして扱っているようです。
この文字化けの対処の方法は少なくとも二通りあります。
一つ目は、サイト自体のエンコーディングをUTF-8にする事です。そうするとURLのクエリストリングもUTF-8エンコーディングになりますので、GAで検索キーワードが正常に表示されます。
しかし、サイトのエンコーディングを替えるのは色々な事情がありますのでそう簡単には行きません。そこで二つ目の方法は、クエリパラメータをUTF-8エンコードする事です。
ワザップ!を例に説明すると、ワザップ!はサイトに現在「Shift-JIS」を使用しています。従って検索キーワード「ワザップ!」でワザップ!内を検索すると、URLは以下のようになります。
http://jp.wazap.com/search.wz?q=%83%8F%83U%83b%83v%21
この「q」パラメータをUTF-8にエンコーディングすればいいのです。
q=%E3%83%AF%E3%82%B6%E3%83%83%E3%83%97!
後はこれはGAのトラッカーに渡すだけです!
<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-XXXXX");
pageTracker._trackPageview("/search.wz?q=%E3%83%AF%E3%82%B6%E3%83%83%E3%83%97!");
} catch(err) {}</script>
エンコーディングを替える部分はもちろんJavascriptでも出来ますが、JavascriptはUTF-8変換がちょっとやっかいなところがあるので、サーバー側で動的にやるのが一番簡単です。
これで検索キーワードが正常に表示されます!この情報が皆さんの役に立てばと思います。
記事キーワード: ga, google analytics, Shift-JIS, SJIS, UTF-8, UTF8, エンコーディング, サイト内検索, サイト検索, 文字化け, 検索キーワード
2 件のコメント 

2つのコメントが投稿されています
Pingback & Trackback