GA4 / gtag.jsでイベントをトラッキングする方法【HTML, JavaScript】

GA4 (Googleアナリティクス 4) でカスタムイベントをコード記述によりトラッキングする方法を解説。クリックイベント(onclick, addEventListener)やページ閲覧イベントの計測方法、イベント名の命名規則、テスト方法などを紹介します。

GA4 (Googleアナリティクス 4) でカスタムイベントを計測する方法を調べても、管理画面を操作するという面倒な方法ばかり解説されていたので、「そうじゃないんだよな….」と思い、

この記事ではコードを書くだけの方法を記事にしました。

それでは、GA4 / gtag.js で独自のイベント(カスタムイベント)を計測する方法を解説します。

さっそくコードを紹介していきます。

1.クリックを計測する方法

クリックイベントを計測する際にはonclickをHTMLタグに挿入するのが一般的かつ簡単です。

例えばbutton要素のクリックを計測したい場合には、以下のように記述します

<button onclick="gtag('event','イベント名')">ボタン</button>

複数イベントを計測したい場合

複数イベントをgtagに計測したい場合には、下記のようにgtagを並べて記述します。この書き方でいくつでもイベントを計測できます。

<button onclick="gtag('event','イベント1'); gtag('event','イベント2');">ボタン</button>

HTMLタグに直接書きたくない or 書けない場合にはaddEventListenerを使う

HTML側に記述したくない場合には、 <script> 内にidを指定してトラッキングします。この記事では1つのHTMLファイルで表現していますが、もちろんjsファイルを別に分けてもOKです。

<button id="tracking-button">クリックを計測したいボタン</button>
 
<script>
// GA用のイベントトラッキングをfunctionとして記述
function trackClick(){
 gtag('event', 'イベント名');
}
 
// 要素を指定してクリックを受け取る
let foo = document.getElementById('tracking-button');
foo.addEventListener('click', trackClick);
</script>

複数イベントを計測したい場合には、functionの中にgtag(‘event’, ‘イベント名2’); のように一行追加すればOKです。

※ HTMLタグにidが付与されていない場合には、document.querySelectorを活用します。詳しくはこちらの記事をご覧ください。

その他の方法

そのほかにも関数をtrackClickとして用意して、クリック時にその関数を実行する方法とかがあります。コードに慣れている人にとっては普通のことですが。

<button onclick="trackClick();">クリックを計測したいボタン</button><script>
// GA用のイベントトラッキングをfunctionとして記述
function trackClick(){
 gtag('event', 'イベント名');
}
</script>

2.ページ閲覧を計測する方法

ページの閲覧を計測したい場合には、GA管理画面からも設定できますが、コードで記述する場合には、ページの <body> 内に以下を記述します。

<script>
 gtag('event','イベント名');
</script>

通常はイベント名は「page_view_event_name」のように「page_view」とGA公式の名付け方に従うと良いでしょう。

(正直GA公式に従う必要は無いとは思いますが、一応。)

イベント名はどうすべき?

イベント名の名付け方法は「英語小文字とアンダーバー」のみが基本です。

クリックイベントは、「 click_○○」と記述するのが一般的で、ページ閲覧イベントは「page_view_○○」と記述するのが一般的です。

たとえば、

<!--ボタンのクリックを計測-->
<button onclick="gtag('event','click_button')">ボタン</button>
<!--購入リンクのクリックを計測-->
<button onclick="gtag('event','click_buy')">購入</button>
<!--ログインボタンのクリックを計測-->
<button onclick="gtag('event','click_login')">ログイン</button>
<!--購入完了後ページの閲覧を計測-->
<script>
  gtag('event','page_view_purchase_completed');
</script>

という感じです。

ボタンのクリックを計測することを正確に記述したい場合にはイベント名を「click_button_buy」のように記述するのも良いでしょう。

イベント計測できているかチェックする方法

自分が記述したイベントトラッキングが正常に計測されるかどうか検証するカンタンな方法があります。

テスト用に仮のイベントを発火すれば良いのです。

たとえば、イベント名を「test_event」として実際に実行してしまいます。

その後、Googleアナリティクスの管理画面にアクセスして「レポート」→「リアルタイム」に移動してください。

「リアルタイム」では、10秒前くらいのイベントなら既に「イベント」として表示されているはずです。表示されていない場合には最長1分ほどは待ちましょう。

※ ローカル環境だとイベントトラッキングは正常に反応しないことがあるようです。

テストイベントを発火したくない場合

エンジニアの方からするとテストイベントを発火させて実際のGAに入れるのは気持ち悪いと思います。

そんな方はDebugViewというのをGA4が提供してくれていますので、こちらをご覧ください。

[GA4] DebugView でイベントをモニタリングする

上手く計測できない場合のチェックリスト

上手く計測できない場合には、以下の項目をチェックしてみてください。

トラッキングコード(グローバルサイトタグ)を正しく設置しているか?

<head> タグ内に GA のトラッキングコード(グローバルサイトタグ)を正しく設置しているか?をチェックしてください。

参考:

サイトに gtag.js を追加する | ウェブ向けユニバーサル アナリティクス(gtag.js) | Google Developers

GAのタグのバージョンが古くないか?

この記事で紹介しているのは gtag.js という最新版のみです。

古いもの(analytics.js)は記述方法が異なります。

参考:

analytics.js から gtag.js に移行する | ウェブ向けユニバーサル アナリティクス(gtag.js) | Google Developers

ローカル環境ではないか?

ローカル環境だとイベントが正常に計測されないことがあるようです。

通常のpage_viewやsession_startなんかは計測されるのですが、カスタムイベントは計測されないことがあります。

【応用編】イベントにcategoryやlabelを付与する

イベントを計測する際に、「category」や「label」として追加情報を付与することができます。

もしあなたが大規模なメディアを運営していて、大量のイベントを送信している場合にはcategoryやlabelを活用するとイベントを整理して管理できます。

ただし、個人的には、ほとんどの場合にはこの機能は使う必要はないと考えています。逆にややこしくなるからです。

記述方法は以下のとおり。

<script>
gtag('event', 'イベント名', {
  'event_category': 'カテゴリ名',
  'event_label': 'ラベル名'
});
</script>

詳しくは公式ページをご覧ください。

Google アナリティクスのイベントを測定する | ウェブ向けユニバーサル アナリティクス(gtag.js) | Google Developers

※ event_categoryは何も記述せずに送信すると ‘general’ として計測されます。

以上です。

Read more

リアルタイム投票アプリ5選【ライブ配信やイベントで】

リアルタイム投票アプリ5選【ライブ配信やイベントで】

ウェビナーやセミナー、社内研修を実施する際、「参加者が受け身になってしまう」「質問がなかなか出てこない」といった課題を感じたことはないでしょうか。 オンラインでの情報発信が当たり前になった今、一方的な配信だけでは参加者の満足度を高めることが難しくなっています。そこで注目されているのが、リアルタイムで参加者の意見を集約し、その場で結果を共有できる投票・質問ツールです。 本記事では、ライブ配信やイベント、研修などで活用できるリアルタイム投票アプリを5つ厳選してご紹介します。 リアルタイム投票でつながる参加者とイベント リアルタイム投票やQ&A機能を使うと、視聴者や参加者の意見を即座に集計・表示できます。講義や会議の進行を妨げず、参加者全員が自分の意見を簡単に表明できる仕組みです。 従来の挙手による質疑応答では、発言しづらいと感じる参加者も少なくありません。特にオンラインイベントでは、カメラがオンになっていることへの抵抗感や、大人数の前で質問することへのハードルが存在します。 しかし、スマートフォンから匿名で投票やコメントができる仕組みがあれば、参加者は気軽に自分の意見を伝えら

By 阿部 隼也
質問受付ツールの選び方とおすすめ5選を紹介

質問受付ツールの選び方とおすすめ5選を紹介

セミナーや講演会、社内研修などで「質問はありませんか?」と投げかけても、なかなか手が挙がらない経験はないでしょうか。参加者に有益な情報を提供しても、疑問や意見が共有されないまま終わってしまうのは、主催者にとっても参加者にとっても大きな機会損失です。 こうした課題を解決するために注目されているのが「質問受付ツール」です。参加者がスマートフォンから匿名で質問を投稿できるため、発言への抵抗感が下がり、活発なコミュニケーションが生まれます。 本記事では、質問受付ツールの基本機能から、実際に役立つおすすめツール5選、そして選定時に押さえておきたいポイントまで、実務に活かせる情報をまとめて解説します。 質問受付の現場課題 イベントやセミナーの運営で最も頭を悩ませる問題の一つが、参加者からの質問をいかに引き出すかという点です。質問タイムを設けても、会場がシーンと静まり返ってしまい、仕方なく「それでは時間になりましたので」と締めくくる光景は珍しくありません。 この背景には、日本特有の文化的要因も関係しています。大勢の前で発言することへの恥ずかしさ、自分の質問が的外れではないかという不安、他

By 阿部 隼也
オンラインセミナーアプリの選び方。参加者エンゲージメントを高めるポイント

オンラインセミナーアプリの選び方。参加者エンゲージメントを高めるポイント

近年、オンラインセミナーの活用が急速に広がっています。会場のコストや移動時間を気にすることなく、全国・世界中から参加者を集められる点は大きな魅力です。 しかし、せっかく開催しても 「参加者が途中で離脱してしまう」 「ただ見ているだけで反応が薄い」 といった課題を抱えている企業も少なくありません。 本記事では、参加者のエンゲージメントを高め、成果につながるオンラインセミナーアプリの選び方と、実務に役立つ具体的なポイントを解説します。 参加者とのつながりを生むオンライン環境の設計 オンラインセミナーにおける最大の課題は、画面越しの距離感です。会場で直接顔を合わせる機会がないからこそ、参加者が「ただ見ているだけ」にならないような仕組みが求められます。適切なツールと機能選びが、参加者のエンゲージメントを左右します。 従来のオフラインセミナーでは、会場の雰囲気や参加者同士の反応が自然と生まれましたが、オンラインではそうした「空気感」が伝わりにくくなります。だからこそ、双方向のコミュニケーション機能や、参加者の行動データを活用した設計が重要になるのです。 エンゲージメントを高

By 阿部 隼也
参加者の質問を効率的に管理!ZoomウェビナーQ&A機能の使い方を徹底解説

参加者の質問を効率的に管理!ZoomウェビナーQ&A機能の使い方を徹底解説

オンラインでのセミナーやイベントが日常化する中で、Zoomウェビナーを活用している企業が増えています。しかし、ウェビナーの開催で意外と頭を悩ませるのが「参加者からの質問をどう管理するか」という点ではないでしょうか。 セミナーが盛り上がり、次々と質問が寄せられるのは嬉しいことです。一方で、質問が多すぎて整理しきれない、どの質問に優先的に答えるべきか判断に迷う、といった課題も生じます。こうした問題を解決するために役立つのが、ZoomウェビナーのQ&A機能です。 本記事では、ZoomウェビナーのQ&A機能の基本的な使い方から、参加者の質問を効率的に管理する実践的なテクニックまで、詳しく解説していきます。 ZoomウェビナーのQ&A機能とは ZoomウェビナーのQ&A機能は、ウェビナー開催中に参加者が質問を投稿し、主催者側が回答を行うための専用機能です。この機能を使うことで、質問と回答がスレッド形式で整理され、効率的なコミュニケーションが可能になります。 チャット機能との違い Zoomには「チャット機能」もあるため、「Q&A機能とチャット機能の違いは何か」と疑問に思う方も多いで

By 阿部 隼也