Googleアナリティクスなどアクセス解析ソフトの基本的なデータの収集方式として、ページにアクセスしたりサイト内の別ページヘ移動するといった、ページ遷移の記録を元にデータが集計されます。
しかし、ページ遷移だけでなく、ページ上でユーザーが起こした行動も知ることができれば、もっとWebサイトの分析・改善に役立てることができますね。
ページ遷移を伴わないユーザーの行動は『イベント』と呼ばれ、イベント用のコードをHTMLに記述すれば計測できるようになります。
これを『イベントトラッキング(イベントの追跡)』と言います。
最も代表的なイベントと言えば、クリック動作(スマホならタップ)ですよね。
PDFファイルなどのダウンロード、外部サイトへのリンクのクリック、スマホでの電話発信などを計測したりします。
もちろん、クリックをしてサイト内のページを遷移する場合であっても、重要なアクションとなる要素にイベントトラッキングを設定しておけば、クリック数やクリック率などの分析がしやすくなります。
そこで今回は、Googleアナリティクスのクリックイベントの計測をするための設定方法と設定時のポイントや注意点について紹介します。
イベントトラッキングの書式は analytics.js の仕様のもので、gtag.js の書式の仕様ではありません。
目次
イベントトラッキングの設定
イベントを記録するには JavaScript コードを記述します。
Googleアナリティクスで、あらかじめ定められているイベントトラッキング用のコードは次のような形式です。
ga('send', 'event', 'カテゴリ', 'アクション', 'ラベル', 値);
カテゴリ、アクション、ラベル、値 の各イベントフィールドに任意の値を入力します。
カテゴリ (eventCategory) は、対象のオブジェクトやイベントのカテゴリ・種類を指定します。
カテゴリの指定は必須です。
例) video, download, navigation, tel, link, ad, banner, button …
アクション (eventAction) は、操作あるいは動作のタイプ名を指定します。
アクションの指定は必須です。
例) click, play, start, stop, open …
ラベル (eventLabel) は、ファイル名、URL、リンク先情報、クリック位置など、イベントを識別する具体的な情報などを指定します。
ラベルの指定は推奨オプションです。
例) data.pdf, intro-movie, promo-banner, present.zip …
値 (eventValue) には、整数を指定します。
イベントに割り当てる金額や価値を数値で示したりします。
数値で示せるものであれば、使い方は自由に設定できます。
値の指定はオプションです。
イベントトラッキングにおけるカテゴリやアクションなどの名前は、Googleアナリティクスのレポートに表示されるので、適切な名前をつけましょう。
イベントトラッキング用コードは、計測したいHTMLタグのイベント属性値として記述します。
クリックイベントを計測するタグの記述例
<a href="https://example.com/page1.html" onclick="ga('send', 'event', 'links', 'click', 'page2.html');">ページ2</a>
イベントハンドラの種類
イベントハンドラとは、特定の要素に対して JavaScript などを使用する時に用いるもので、スクリプトの発生条件を指定します。
クリックを計測する場合は、HTMLの onclick 属性を利用して「クリックされたらトラッキングデータを送る」と設定します。
onclick 属性以外にもイベントハンドラはたくさんあるので、クリック計測以外のイベントトラッキングも行えます。
イベント属性 | イベント条件 |
---|---|
onclick | 要素がクリックされたら |
onmouseover | 要素にマウスカーソルがのったら |
onmouseout | 要素からマウスカーソルが外れたら |
onmousedown | 要素でマウスボタンが押下されたら |
onload | ページの読み込みが完了したら |
onfocus | 要素がフォーカスされたら |
onblur | (フォーカスされている)要素からフォーカスが外れたら |
onsubmit | 送信されたら |
参考: HTMLタグ/HTMLの基本/イベント属性 – TAG index
Googleアナリティクスのヒット上限数
無料で利用できるGoogleアナリティクスのヒット上限数は、次のように定められています。
- プロパティあたり 1 か月 1,000 万ヒット
- ユーザーあたり 1 日 20 万ヒット
- セッション 1 回あたり 500 ヒット
ヒット数とは、イベントトラッキング以外にもページビューなどGoogleアナリティクスへのデータ送信の全てが含まれています。
トラフィックの多いサイトでイベント計測をしまくると、ヒット数が肥大化する可能性があるので注意しましょう。
参考: Google アナリティクスのデータ収集上限 (analytics.js)
クリックイベントのトラッキングコード記述例
それでは、よく使われそうなクリックイベントのトラッキング実装例を見てみましょう。
PDFファイルのダウンロード計測
<a href="https://example.com/reference.pdf" onclick="ga('send', 'event', 'download', 'pdf', 'reference.pdf', 1);">資料ダウンロード</a>
バナーのクリック計測
<a href="https://example.com/campaign.html" onclick="ga('send', 'event', 'promotion', 'click', 'promo-banner');"><img src="https://example.com/images/banner.jpg" alt="キャンペーン"></a>
内部リンクのクリック計測
<a href="https://example.com/page1.html" onclick="ga('send', 'event', 'inboundLinks', 'click', this.href);">ページ1へ</a>
ラベルの this.href
は、リンク先のURLを取得するスクリプトです。
よって、Googleアナリティクスのレポートに表示されるラベル名は、リンク先のURLになります。
外部リンクのクリック計測
<a href="https://hogehoge.com/page1.html" onclick="ga('send', 'event', 'outboundLinks', 'click', this.href, {'nonInteraction': true});">おすすめのサイト</a>
ラベルの this.href
は、リンク先のURLを取得するスクリプトです。
クリックイベントの直帰率への影響を回避するため nonInteraction
の記述を追加しています。
スマートフォンの電話計測
<a href="tel:0120123456" onclick="ga('send', 'event', 'tel', 'tap', 'header-tel', 1); >0120123456</a>
スマートフォンでの電話発信のタップイベントを計測します。
電話リンクのタップを計測するため、実際に電話をかけたかどうかまではわかりません。
イベントと直帰率の関係
Googleアナリティクスでは、たとえユーザーが1ページのみ閲覧してサイトを離れていったとしても、計測対象のイベントが発生した場合には「直帰」として扱いません。
こうなると、ユーザーの実際の行動と直帰率のデータの整合性が合わなくなってしまいます。
そこで、イベントが発生してもページを遷移していなければ、直帰としてカウントするように修正するために、以下のように noInteraction フィールドを追加します。
ga('send', 'event', 'カテゴリ', 'アクション', 'ラベル', 値, {'nonInteraction': true});
※ {'nonInteraction': 1}
でも可。
これでクリックイベントが発生しても直帰率に影響しなくなります。
ただし、必ずしも全てのイベントに nonInteraction フィールドを追加する必要はありません。
例えば、そもそもダウンロードをしてもらうことが目的のページであったとしたら、クリックイベントによって目的を達成しているので、直帰でなくて良いと考えることもできますね。
どのイベントは直帰率に影響すべきでないのかを考えて、必要に応じてコードを追加しましょう。
イベント分析のポイント
計測したイベントデータは、Googleアナリティクスのレポートメニューの[行動]→[イベント]内の項目から見ることができます。
[カテゴリ][アクション][ラベル]の集計データを見ることができます。

それぞれのイベントの詳細レポートでは[セカンダリディメンション]に他のイベントフィールドを指定して細かくデータを見ることもできます。
カテゴリ、アクション、ラベル の名前とレポートの関係
カテゴリ、アクション、ラベルのそれぞれの意味については既に解説しましたが、実際のところ、名前は柔軟に設定できます。
アクションの名称を設定するからと言って、何がなんでも動作を意味するワードでなくてもOKです。
カテゴリが「download」だったとしたら、「pdf」「jpg」「xls」というように、ファイルの種類をアクション名にすることもできます。
カテゴリは大分類、アクションは中分類、ラベルは小分類 というように考えてもよいのです。
ポイントとしては、Googleアナリティクスのレポート分析をイメージしておくことです。
例えば、
「download」カテゴリのアクションに「click」があり、
「ouboundLinks」カテゴリにも「click」アクションがあり、
「InboudLinks」のカテゴリにも「click」があり、、、
といように、多くのアクション名に共通して「click」が使われているとしたら、[アクション]レポート上ではカテゴリに関係なく「click」がまとめて集計されます。(セカンダリディメンションで分けることは可能)
カテゴリ、アクション、ラベルは、デフォルトではそれぞれが独立して分類表示がされるため、レポートを見やすくするためには、イベントフィールドの名前は区別しやすいようにしておくと良いでしょう。
例えば、分析上カテゴリに関係なく「click」の総数を知りたいのなら、アクション名を全て「click」で統一しておく必要があります。
ところが『クリックイベントだから〜』というだけで、あまり深く考えずにアクション名を全て「click」にしているとしたら、場合によっては分析の効率が悪くなってしまうこともあります。
このように、集計上での適切な分け方、あるいは、適切なまとめ方ができるよう、自分なりの命名ルールを決めておきましょう。
そのためには、どんなイベントトラッキングをする(予定)か、分析の目的は何か、といったことをあらかじめ整理しておくとよいですね。
イベントとコンバージョンの違い
イベントトラッキングを設定したもののうち、Webサイトの目標や売上に影響するイベントは、別途コンバージョン(目標)として設定しておいてもよいでしょう。
コンバージョンの設定では[カテゴリ][アクション][ラベル][値]の項目とのマッチタイプを指定します。
例えば、「アクションの値が click と等しい」というコンバージョンを設定をしたなら、カテゴリやラベルに関係なく、全てのイベントを横断してアクション名が「click」のものをコンバージョンとみなします。
これは、必ずしも個々のイベント毎にコンバージョンを設定しなくてもよいことを意味します。
個々のイベントでコンバージョンを設定をするのか、マッチタイプを利用して複数のイベントをまとめてコンバージョンとするのか、それは分析の目的と効率を考えて決めましょう。
コンバージョンを設定する上でも、各イベントフィールドの名前の付け方にはルールを持たせておくべきということがわかりますね。
また、目標に設定したイベントコンバージョンは、セッションベースでカウントされるため、同一セッション内で同じコンバージョンが何回発生しても、カウントは1のままです。
対してイベントのレポートに表示される[合計イベント数]は、実際のイベントの発生数をカウントしているため、ユーザーが同じイベントを複数回実行すれば、その都度カウントされていきます。
同じくイベントレポートの[ユニークイベント数]は、セッションベースのカウントなので、コンバージョンと同じ計算方式です。
コンバージョンとユニークイベント数、合計イベント数の指標の計算方式についても理解しておきましょう。
コメントをどうぞ