ECサイトで検索した際にお目当ての商品が検索に引っかからずに離脱したことはありませんか?サイト内検索で商品が見つからなかった「サイト内検索の0件ヒット」という状態です。もし商品があるのに見つからなかったということであれば、とてももったいないです。
検索をしたものの略称で検索してしまった場合やスペルミスなどで検索に引っかからない場合は、検索に引っかからない0件ヒットになってしまいます。これはサイト内検索エンジンの機能を使うことで改善が可能です。
まずは、サイト内検索の結果が0件だったキーワードを知ることが大切です。
今回の記事は、「サイト内検索の0件ヒット」をGoogleアナリティクスで計測できるようにする方法の紹介です。
目次
サイト内検索の0件ヒットをGoogleアナリティクスで計測する方法
サイト内検索をして検索結果が何も表示されなかった際にGoogleアナリティクスでイベント情報を付加しイベントトラッキングをし、計測する方法を紹介します。
0件ヒットだった時にJavaScriptでイベントを付加させることができない場合に有効な方法を紹介します。
検索に必要なツールはGoogleアナリティクスとGoogleタグマネージャーです。
※Googleタグマネージャーとは
Googleアナリティクスだけでなく、広告タグをはじめとするタグやスクリプトを管理できます。タグの発火タイミングや変数も設定できる便利なツールです。
GoogleアナリティクスとGoogleタグマネージャーでサイト内検索で0件ヒットを計測する方法
サイト内検索で0件ヒットを計測するための2つの方法を紹介します。
1.サイト内検索の結果が0件だった時に特定のテキストを使って計測する方法
2.「Googleカスタム検索エンジン」でのサイト内検索の結果が0件ヒットだった時の計測する方法
サイト内検索の結果が0件だった時に特定のテキストを使って計測する方法
作成例としてclassにs4が入っている場合のサンプルで計測する方法を紹介します。
サンプル
<h2 class="s4">検索結果が0件でした。</h2>
1.ユーザー定義変数を設定する
Googleタグマネージャー設定画面上にて、ユーザー定義変数を設定します。
・「変数」を選択
・「ユーザー定義変数の設定」→「新規」を選択
・「ページ要素」の中にある「DOM要素」を選択します
2.DOM要素でclassを指定(場合によってはID)
「選択方法: CSSセレクタ」を選択
「要素セレクタ:.s4 」と入力し保存
classを利用する場合は、CSSセレクタを選択、該当のclassを「.◯◯」と入力してください。今回はこの変数を「dom_class_s4」として保存しました。
3.トリガーの作成
変数の準備が完了したので、タグ発火の条件となるトリガーを作成します。
「トリガー」→「新規」を選択
「トリガーの種類:ページビュー」を選択
「一部のページビュー」を選択
「イベント発生時にこれらすべての条件がtrueの時にこのトリガーを配信します。:作成した変数(dom_class_s4)で『検索結果が0件でした』を含む」で設定
検索結果が出るページを限定する場合には、urlの条件を追加してください。
トリガーをわかりやすくするために「.S4に検索結果が0件でしたが存在する時」として保存します。
4.タグの作成
「タグ」→「新規」を選択
「タグの設定:Googleアナリティクス」を選択
「トラッキングタイプ:イベント」を選択
「カテゴリ:sitesearch」を記述
「アクション:notfound」を記述
「ラベル:0hit」を記述
「Googleアナリティクス設定:計測したいGoogleアナリティクスの情報」を設定
トリガー
「配信トリガー:(先ほど作成した.S4に検索結果が0件でしたが存在する時を指定」
わかりやすいように「サイト内検索で0件ヒットのときイベント発動」として保存しました。
5.プレビューモードで確認
「プレビュー」を選択
プレビューモードがオンになり、導入サイトで先程の条件でタグが発動するかブラウザでチェックできます。
うまく発動していればこうなります。
上の画像の様に
Tag Fired On This Pageのところにタグが発動したことが確認できます。
また、Googleアナリティクスのリアルタイム検索でイベントが付加されていることも確認出来ます。
「Googleカスタム検索エンジン」サイト内検索の結果が0件だった時の計測方法
日本で一番使われている「Googleカスタム検索エンジン」で0件ヒットの場合の0件ヒットを計測する方法を紹介します。先程のやり方の場合ではJavaScriptで表示されたコンテンツを調べることができないのでこちらの方法を試してみてください。
Googleカスタム検索エンジンのsearch callback APIを使って検索結果を取得します。
参考元:https://developers.google.com/custom-search/docs/element#search-time-callbacks
検索結果の先頭が「一致する結果はありません」の場合にGTMでカスタムイベントを発火するようにします。
1.タグの設置
以下のタグをヘッダーに入れてください。
<script>
window.__gcse || (window.__gcse = {});
window.__gcse.searchCallbacks = {
web: {
rendered: function(gname, query, promos, results) {
if (/一致する結果はありません/.test(results[0].textContent)) {
dataLayer.push({'event': 'gcse-rendered-callback-noresult'});
}
}
},
};
</script>
2.トリガーの設定
「トリガーのタイプ:カスタムイベント」を選択
「イベント名:gcse-rendered-callback-noresult」
わかりやすいように「Googleカスタム検索でサイト検索0件の時」として保存します。
Googleタグマネージャー側のトリガーが発火したカスタムイベント(JSの場合‘gcse-rendered-callback-noresult’)に設定してGoogleアナリティクスで計測します。
3.タグの設定
「タグの種類:Googleアナリティクス」を選択
「トラッキングタイプ:イベント」を選択
「カテゴリ:sitesearch」を記述
「アクション:notfound」を記述
「ラベル:0hit」を記述
「Googleアナリティクス設定:計測したいGoogleアナリティクスの情報」を設定
「配信トリガー:(先ほど作成したGoogleカスタム検索でサイト検索0件の時」を選択
わかりやすいように「Googleカスタム検索エンジンで0件ヒットのときイベント発動」として保存しました。
4.プレビューモードで確認
「プレビュー」を選択
プレビューモードになります。実際に先程の条件でタグが発動するかブラウザでチェックします。
うまく発動していれば
このように表示されます。
Googleアナリティクスでイベントトラッキングを確認
Googleアナリティクスでどのキーワードでサイト内検索で0件ヒットだったのか調べるほう法は、以下の手順です。
「行動」を選択
「イベント」を選択
「ページ」を選択
セカンダリディメンションでイベントカテゴリを選択sitesearchを選択
ページurlのクエリの文字列がサイト内検索で0ヒットだった時の「キーワード」です。
まとめ
サイト内検索の0マッチは改善すべきキーワードです。Googleアナリティクス上で計測できると改善するのにダッシュボードなどをまたがずに出来るので便利です。
「Googleカスタム検索」を使っているユーザーでも「サイト内検索の0マッチ」を改善できるようにスクリプトを書いてみました。まずは、自社サイトのサイト内検索0マッチになっているキーワードを認識することから改善が始まると思っています。
もっと高性能なサイト内検索エンジンを導入したい!
表記ゆれにも柔軟に対応したサイト内検索エンジンを導入したい!などの要望がありましたらお問い合わせや資料をお申し込みください。