[対象: 上級]

Googleアナリティクスのイベントトラッキングを利用してGoogle検索からのトラフィックがあったキーワードの順位を計測する方法をこの記事では紹介します。

GoogleのAnalytics AdvocateであるJustin Cutroni氏AJ Khon氏に教授した方法になります。

さっそく設定方法からいってみましょう。

以下のコードをheadセクションに挿入します。

<script type="text/javascript">
if (document.referrer.match(/google\.(com|co\.jp)/gi) && document.referrer.match(/cd/gi)) {
  var myString = document.referrer;
  var r        = myString.match(/cd=(.*?)&/);
  var rank     = parseInt(r[1]);
  var kw       = myString.match(/q=(.*?)&/);
  
  if (kw[1].length > 0) {
    var keyWord  = decodeURI(kw[1]);
  } else {
    keyWord = "(not provided)";
  }

  var p        = document.location.pathname;
  _gaq.push(['_trackEvent', 'RankTracker', keyWord, p, rank, true]);
}
</script>

計測が始まると、「RankTracker」という名前のイベントカテゴリでレポートに出てきます。

Googleアナリティクスのイベントトラッキングで取得した検索順位

「平均値」に出ているのが検索順位です。

Googleのウェブ検索からトラフィックがあった対応するキーワードの平均の順位になります。

セカンダリディメンションに「ランディングページ」を指定してどのページが何位だったのかを調べるのもいいですね。

Googleアナリティクスのイベントトラッキングで取得した検索順位

Googleウェブマスターツールでもランキングをチェックできますが、アクセス解析の専用ツールであるGoogleアナリティクスでできるというのが嬉しいですね。

ウェブマスターツールとは違って保存期間に制限がないので(厳密にはあるが事実上ない)設定した後は長期にわたって分析可能です。
また他の指標と組み合わせてフィルタリングできることも大きな強みです。

スキルのある人はExcelで加工したりAPIを利用して独自ツールに吐き出して利用したりしてもいいでしょう。

なお上級者向けの記事として書いたのでイベントトラッキングをはじめコードの細かな説明は省きます。
詳しくはCutroni氏とKhon氏の記事をご覧ください。

とはいえ、簡単に補足しておきます。

もともとのコードでは、google.comからのトラフィックしか取得できません。
google.co.jpからのトラフィックも取得できるように改造してあります。

google.co.ukやgoogle.com.auなどすべてのGoogleドメインからのトラフィックを取得するようにもしたいところですが、正しくやろうとすると正規表現が面倒そうなのでやめました。

米Googleと日Googleを計測できれば十分ですよね。

他の国のGoogleも計測したければ自分の要望に合わせて変えてください。

この方法はリファラーに付いている「cd」パラメータの値を取得しています。
「cd」パラメータには検索順位が入っているからです。

ただしすべてのリファラーにcdパラメータが含まれているとは限らないようです。

僕が調べた限りではかなりの確率で含まれていそうですが、100%完全にすべてのトラフィックに対して計測できているわけではないことを理解しておく必要があります。

(not provided) は相変わらずそのままで、何のキーワードかは闇の中です。
これはもう諦めるよりほか仕方がありません。

ところで「cd」パラメータというのを聞いてピンときた人がいるかもしれません。

cdパラメータの値を取得して検索順位を調べる方法を実は以前にもこのブログで紹介しています。

このときは専用のフィルタを作りました。

フィルタは、作成がやや面倒だったり扱いにくかったりするのに対して今日紹介したイベントトラッキングを利用した方法はずっとお手軽です。

headセクションにコードを入れることさえできれば動きますから。(笑)

そうは言ってももちろん興味本位ではなくサイト改善に役立てるために利用できると確信したうえで導入してください。

最後にもう1つ補足しておきます。

イベントトラッキングの「non-interaction」に「true」をセットしてあるので直帰率の計測には影響を与えません。

このエントリーが役に立ったらシェアしてください

[Ads & Featured Contrents]

次のエントリも読むとSEOにさらに強くなります。

海外SEO情報ブログTOPGoogleアナリティクス › Googleアナリティクスのイベントトラッキングで検索順位を調べる方法

Comments

  1. By きじとら on

    GoogleがSSL化してJavaScriptでリファラ取るとかはできなくなったハズなんですが、
    貴サイトではできているということでしょうか?
    http://googlewebmastercentral-ja.blogspot.jp/2011/11/ssl.html

    *** Reply from Suzuki Kenichi ***
    リファラーすべてを渡さなくなったわけではなく、リファラーに含まれる「キーワード」を渡さなくなったのです。
    リファラーの取得が完全にできなくなったとしたらGoogle検索からやってきたことすら分からなくなってしまいます。

    for organic search results on SSL search, a web site will only know that the user came from google.com.

    公式アナウンスの原文を見ると、Google検索から来たことは分かるときちんと書いてありますね。

    SSL検索からやってきたトラフィックはキーワードが「(not provided)」として記録されます(記事中にも簡単に触れています)。

    ご確認ください。

  2. By きじとら on

    ありがとうございます。
    実験してみたところ、たしかにリファラはGoogleのドメイン部分だけ渡されていました。
    Googleログインユーザーは強制的にSSLになるようなので、正確な検索ランキングを取るのは難しそうですね…

    *** Reply from Suzuki Kenichi ***
    パーソナライズ検索やユーザーの場所などさまざまな要因によって変わるのでもともと1つの定まったランキングというのは存在しませんね。
    今回のトラッキングは、検索からやってきたトラフィックの順位を測定するものです。
    1つの参考ということで利用してください。

  3. By ようへい on

    RankTrackerってどこに表示されるんですか?
    トラッキングコードの前に書くのですか?
    それとも後ですか?
    初歩的な質問でごめんなさい。

    *** Reply from Suzuki Kenichi ***

    RankTrackerってどこに表示されるんですか?

    Googleアナリティクスのイベントトラッキングのレポートです。

    トラッキングコードの前に書くのですか?

    何をですか?

    最初に示しているように、この記事は「上級者向け」です。
    Googleアナリティクスの見方やイベントトラッキングについて詳しくないなら、利用はおすすめしません。
    設定を間違えると通常の計測に不具合が起きることもあり得ます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


▲ページの一番上に戻る