Google アナリティクスで検索キーワードがクエリじゃない時の対処法
サイト内検索の検索キーワードは、クエリで送られることが多いのですが、ディレクトリで送られる場合の対象法を解説します。
検索キーワードをディレクトリで指定する弊害
検索キーワードをディレクトリで指定すると、このサイトで「抜歯」を検索した時のURLは
http://dokodekodoor-junk.net/seach/keyword/抜歯
となっていたとします。
Google アナリティクスには、「アナリティクス設定→ビューの設定→サイト内検索の設定」があります。
クエリでキーワードを送信している場合は、クエリパラメータを指定するだけで、サイト内検索の分析ができます。
この設定をしないと、検索キーワードごと全て異なるページで集計され、デーブルのデータ制限を超えると(other)でまとめられてしまいます。
どんなキーワードでサイト内検索されているのかわからなくなってしまいます。
Google アナリティクスでは、データを送るときにカスタムページビューを使う方法が紹介されていますが、開発の手間をかけずに、Google アナリティクスの設定で解決しましょう。
Google アナリティクスのフィルタ
Google アナリティクスの設定「アナリティクス設定→ビュー→フィルタ」を設定すると、対象のビューにフィルタ済みのデータで集計されます。
フィルタには、種類があります。今回使うのは「カスタムフィルタの詳細」です。ドメイン名を表示するときに使いますね。
カスタムフィルタの詳細
たとえば、先ほどのドメインを表示するときの設定方法です。
フィールド A:ホスト名 -> 引用 A:(.*)
フィールド B:リクエストURI -> 引用 B:(.*)
出力先:リクエストURI -> 構成:$A1$B1
上記設定をすればページレポートにドメイン名が表示されます。ほぼ、この設定しかしたことがなく、仕組みを理解してこなかったのですが、ずっと気になっていたことがあります。
カスタムフィルタで詳細を選択すると、下部にヘルプが表示されるのですが、これが、なかなかすごいことをしています。
要望があれば解説しますが、今回はスルーで。ただ、これを理解するとできることが広がるなとは思いました。
ディレクトリをクエリに変更する設定
3回にわけて設定します。
検索結果のURLは、「http://dokodekodoor-junk.net/seach/keyword/抜歯」
リクエストURIには、「/seach/keyword/抜歯」が入っています。keywordディレクトリは検索結果でのみ使われるとします。
1.keywordを含むURIのkeyword以降を格納
カスタムフィルタの詳細には、「カスタムフィールド1,2」が用意されています。一時的に値を入れておける箱だと考えてください。
フィールド A:リクエストURI -> 引用 A:(keyword/[^/]*)
フィールド B -> 引用 B (指定なし)
出力先:カスタムフィールド1 -> 構成:$A1
リクエストURIに「keyword/」を含むときに、keyword/ 以降をカスタムフィールド1に格納しました。「keyword/抜歯」が格納されたことになります。
2.検索キーワードを抽出
カスタムフィールド1から、検索キーワードを抽出します。
フィールド A:カスタムフィールド1 -> 引用 A:(/[^/]*)
フィールド B -> 引用 B (使いません)
出力先:カスタムフィールド1 -> 構成:$A1
ヘルプの正規表現をよむと、()は|と一緒に使うって書いてあるのですが、フィルタヘルプの例をみても、一緒に使う必要はないです。フィールドAでは、/以降の文字列を抽出しています。
終わりも指定しないとエラーが出るので、/までと指定しています。検索キーワードの中に「/」が入っているとうまく抽出できないかもしれません。適宜変更してください。
これで、カスタムフィールド1には、「/抜歯」が格納されています。最初の「/」外したかったんですけど、どうにもできませんでした。どなたかやり方教えてください。
3.検索キーワードから不要な「/」を外します。
ここでは、カスタムフィルタの「検索と置換」を使います。
フィルタ フィールド:カスタムフィールド1
検索文字列:/
文字列の置換:(空白)
検索キーワードから「/」が消えました。
4.クエリを指定
検索キーワードをクエリ指定に変更します。
フィールド A:リクエストURI -> 引用 A:(.*/keyword/)
フィールド B:カスタムフィールド1 -> 引用 B:(.*)
出力先:リクエストURI -> 構成:$A1\?gakeyword=$B1
フィールドAで、リクエストURIにkeywordが含まれる場合は、keyword以降を消去しています。
フィールドBは、2で作った検索キーワードをもってきます。
出力先に、他とかぶらないクエリパラメータ「gakeyword」をつけて、リクエストURIを生成しています。
「/seach/keyword/?gakeyword=抜歯」
ページ内検索に設定
ページで、思い通りに動くことを確認し、ビューの設定で、ページ内検索を設定します。
これで完璧と思ったのですが・・・
[warning]残念ながら、ページ内検索に適応されません[/warning]
軽く無駄骨でした。。。フィルタは、レポートの結果に適応されても、ページ内検索のクエリには適応されないようです。
これは、シーズン2突入です。次回は、Google タグマネージャーで送るデータを変えてみたいと思います。
シーズン2 タグマネージャ編
Google アナリティクスで検索キーワードがクエリじゃない時の対処法 GTM編
フィルタでも大丈夫そうです
以下のツイートを頂きました。
フィルタ利用する方法は、出力先のフィールドにリクエストURIではなく、検索語句(これが多分サイト内検索キーワード)をダイレクトに使えばOKなんじゃないかなあ・・・ https://t.co/rWX4j6kQj6
— 衣袋 宏美 (@hibukuro) 2016年6月24日
見落としていました。。検索語句!! これでいけそうです。衣袋さん、ありがとうございます。
ディスカッション
コメント一覧
まだ、コメントがありません