この記事では、カスタムデータ属性を使った、GTM(Google Tag Manager)によるクリック計測の方法をご紹介します。
この記事で紹介する内容どおりに設定することで、ユーザーが行うあらゆるクリックアクションを「イベント」としてGA4で計測できるようになります!
目次
GAやGTMで「やりたいことと一致する・しない」があると思うので、まずはこの記事で紹介する内容を簡単に解説します。
この記事では、下記のような計測方法を用います。
< header > < a href = "/contact/" data-gtm-click = "click-contactBtn-header" >お問い合わせ</ a > </ header > < main > < a href = "/contact/" data-gtm-click = "click-contactBtn-MV" >お問い合わせ</ a > </ main > < footer > < a href = "/contact/" data-gtm-click = "click-contactBtn-footer" >お問い合わせ</ a > </ footer > |
headerにあるクリック要素に対しては「click-contactBtn-header」、footerにあるクリック要素に対しては「click-contactBtn-footer」などと、「値」が「イベント」としてGA4に送信されます。
ご覧の通り、この記事で紹介する内容はHTMLにデータ属性の記述をする必要があるため、コードを触るれることが前提です(HTMLの知識はほぼ不要です)。
ただ、管理画面側は非常にすっきりしますし、CSSによるClassやID属性を利用しないため、「data-gtm-clickは消さないで!」とだけ言っておけばサイト改修等でも指示が楽です。
そもそもの前提として、英単語や略語が多いため一度整理しておきます。
以降は略称で記載します。
GTMの設置をする前に、分析結果等を送る先となるGA4プロパティ(GA4アカウント)が必要です。
作成していない場合は、GA4の管理画面の【管理】より、作成しておいてください。
GTMの「トラッキングコード」が計測したいページのHTMLに設置されていないことには動きません。
トラッキングコードについては、GTM管理画面より、【管理】>【Google タグ マネージャーをインストール】に記載があります。
2つのトラッキングコードを計測したいページのHTMLに貼り付けてください。
※貼り付ける箇所等は、GTM画面にて記述があるため省略します。
本題に入る前に、「カスタムデータ属性」について知らない方もいるかと思うので、簡単な紹介と、メリット・デメリットを解説します。
「カスタムデータ属性」とは、HTMLタグの中で自由に定義できる属性です。単純に「データ属性」ということもあります。
属性名の先頭に、「data-」をつけることで、「任意の値」を「〇〇データ」として持たせることができます。
data-〇〇="任意の値" |
ハイフン(-)を用いることで、複数の単語をつなげることも可能です。
data-任意の文字-任意の文字-任意の文字="任意の値" data-gtm-click="任意の値" |
HTMLタグの中で使うと、下記のような感じです。
< div data-color = "red" >「red」という値を入れたcolorというデータ属性</ div > < a href = "*****" data-color = "赤" >「赤」という値を入れたcolorというデータ属性</ a > |
class
やid
を意識しなくても良い。class
やid
が勝手に書き換えられてタグが発火しなくなることを防げる。(data-gtm-clickという記述することで、これはGTM用の記述だなということがひと目で分かる。)以上がこの記事の概要や前提条件です。
それでは、早速作業していきましょう!
まず必要になるのが、GA4の「測定ID」です。
【1】
GA4の管理画面のプロパティより、【管理】>【データストリーム】を選択してください。
【2】
すると、「データストリームの選択画面」が表示されるので、測定したいストリームをクリック。
【3】
開くと「ストリームの詳細」の中に「測定 ID」としてG-XXXXXXXXXX
といった表示があります。こちら、GTMの設定で必要になります。メモしておきましょう!
次に、GTM側の設定をしていきます。
大きな流れとして、下記の作業を行います。
「変数」とは、値(データ)を保持するための箱とよく例えられます。
例えば、ユーザーが何かをクリックした時に、クリックしたページのURLを変数に入れてGAに送るのようなイメージです。ユーザーの行動した箇所・状況などによって、値(データ)が変わります。
またGTMには、下記の2種類あります。
※「組み込み変数」については、一部が初期状態では使えないようになっている変数があり、使えるようにするためのチェック(有効化)が必要です。
まずは、「組み込み変数」の設定をします。
※GTMのバージョン等によってはしなくてもいい場合(既に有効化の状態)もあるので、確認も兼ねて見てみてください。
【1】
GTM管理画面メニューの【変数】にて、上段の【組み込み変数】>【設定】を押します。
【2】
すると選択肢がずらっと表示されるので、「クリック」の「Click Element」にチェックを入れてください(チェックが入っている場合はそのままでOKです)。
これで、組み込み変数の設定は完了です!
次に、「ユーザー定義変数」を作成します。
【1】
GTM管理画面メニューの【変数】>【ユーザー定義変数】にて【新規】を押します。
【2】
変数に名前をつけるため、左上にある「無題の変数」の部分に任意の名前をつけます。どんな名前でも構いませんが、今回は「data-name-取得」という名前をつけます。
【3】
「変数の設定」から「自動イベント変数」をクリックしてください。これで「変数のタイプ」として「自動イベント変数」が設定されます。
【4】
先程の設定と名前が似ているのですが「変数タイプ」をクリックし、【要素の属性】を選択します。すると、「属性名」という項目が新たに表示されます。
【5】
「属性名」には、「data-gtm-click」と入力します。この「data-gtm-click」がカスタムデータ属性になります。
【6】
最後に右上の「保存」を押し、変数を保存します。
これで、ユーザー定義変数の作成は完了です!
「トリガー」とは、GTM計測を発火する条件を指定するものです。
どのような場所(例えばaタグ)で、どのようなアクション(例えばクリック)の時に、トリガーとして発火させるかを指定します。
今回は2つのトリガーを作成します。
2つ作成する理由は、ページ遷移する場合と遷移しない場合とでGTM側が用意しているトリガーの指定が異なるためです。
ページ遷移が発生する場合のトリガー作成です。
【1】
GTM管理画面メニューの【トリガー】にて【新規】を押します。
【2】
トリガーに名前をつけるため、左上にある「無題のトリガー」にて任意の名前をつけます。どんな名前でも構いませんが、今回は「data-gtm-click_リンク」という名前をつけます。
【3】
【トリガーの設定】を押し、【クリック】>【リンクのみ】をクリックしてください。これで「トリガーのタイプ」として「クリック – リンクのみ」が設定されます。
【4】
「このトリガーの発生場所」にて「一部のリンククリック」を選択します。すると、「イベント発生時にこれらすべての条件が true の場合にこのトリガーを配信します」として3つの項目が新たに表示されます。
こちらに、「Click Element」「CSSセレクタに一致する」「[data-gtm-click]」とします。この時、3つめの入力欄に括弧( [ ] )を忘れないでください!
【5】
最後に右上の「保存」を押しトリガーを保存します。
これで、ページ遷移に対する場合のトリガーの作成は完了です!
2つ目に、ページ遷移が発生しない場合のトリガー作成です。
※先程のページ遷移に対するトリガー作成と比べると、【トリガーの設定】にて【すべての要素】を選択するのみで、他は変わりません。そのため、画像は一部省略します。
【1】
GTM管理画面メニューの【トリガー】にて【新規】を押します。
【2】
トリガーに名前をつけるため、左上にある「無題のトリガー」にて任意の名前をつけます。どんな名前でも構いませんが、今回は「data-gtm-click_ボタン」という名前をつけます。
【3】
【トリガーの設定】を押し、【クリック】>【すべての要素】をクリックしてください。これで「トリガーのタイプ」として「クリック – すべての要素」が設定されます。
【4】
【このトリガーの発生場所】にて「一部のリンククリック」を選択します。すると、「イベント発生時にこれらすべての条件が true の場合にこのトリガーを配信します」として3つの項目が新たに表示されます。
こちらに、「Click Element」「CSSセレクタに一致する」「[data-gtm-click]」とします。
【5】
最後に右上の「保存」を押しトリガーを保存します。
これで、ページ遷移が発生しない場合のトリガーの作成は完了です!
以上、画像のように2つ作成されていれば、トリガーの設定は完了です!
タグとは、ザックリ言うと「命令」のことです。
トリガーで指定する条件を満たした場合に、どこに・どういうイベント名で送るか、などの実行内容を設定します。
ここでは2つのタグを作成します。
まず、GA4のどの測定IDへ送るかどうかの指令を作成します。
【1】
GTM管理画面メニューの【タグ】にて【新規】を押します。
【2】
左上にある「名前のないのタグ」に任意の名前をつけます。どんな名前でも構いませんが、今回は「GA4 – All」という名前をつけます。
【3】
上段の「タグの設定」を押し、「Google アナリティクス: GA4 設定」をクリックしてください。これにより、タグタイプとしてGA4が設定されます。
【4】
「測定 ID」に、冒頭でメモしていたGA4の測定IDを入力します。
【5】
次に下段の「トリガー」を押し、「All Pages」を選択します。
「All Pages」はGTMにデフォルトであるトリガーです。これにより、すべてのページで発火させるタグとなります。
【6】
最後に、右上の「保存」を押しタグを保存します。
これで、どのGA4(測定ID)へ送るかどうかのタグの作成は完了です!
次に、今回作成した2つのトリガーを条件として、カスタムデータ属性として作成した変数の値を送るタグを作成します。
【1】
GTM管理画面メニューの【タグ】にて【新規】を押します。
【2】
左上にある「名前のないタグ」に任意の名前をつけます。どんな名前でも構いませんが、今回は「data-gtm-click (GA4)」という名前をつけます。
【3】
上段の「タグの設定」を押し、「Google アナリティクス: GA4 イベント」をクリックしてください。これにより、イベントとしてGA4へ送る設定となります。
【4】
「測定タグ」にて「GA4 – All」を選択してください。
こちらは、先程設定した「GA4 – All」というタグです。これにより、どの測定ID向けに送るかの設定となります。
【5】
「イベント名」に「{{data-name-取得}}」と入力します。
※{{ }}を忘れずに!
もしくは、入力欄右側にあるマークから、「data-name-取得」を選択することでも設定できます。
【6】
次に、下段の「トリガー」を押し、「data-gtm-click_リンク」と「data-gtm-click_ボタン」の2つを選択します。1つずつしか選択できない場合は「+」マークで追加できます。
これにより、このタグは「data-gtm-click_リンク」の時または「data-gtm-click_ボタン」の時に発火することになります。
【7】
最後に、右上の「保存」を押しタグを保存します。
これで、トリガーを条件にしたタグの作成は完了です!
以上、画像のように2つ作成されていれば、タグの設定は完了です!
最後に、今回設定した内容を公開します。
【1】
右上の「公開」を押しましょう。※すぐに公開されません。
【2】
その後に出てくる画面で、「バージョン名」にわかりやすく「data-gtm-click追加」などとして公開を押しましょう。これで公開されます。
なお、公開してもイベントとしてGA4への配信はまだされない状態です。
というのも、トリガーとして「data-gtm-clickというデータ属性が記述されている要素のクリック」と指定しているものの、後述するHTMLへ実際に記述をしていないためです。
いよいよ最後のステップです。
実際のHTMLタグ内に、今回トリガーとして指定しているデータ属性を記述していきます。
なお、改めて説明しますが、aタグのようなページ遷移が発生する場合と、アンカーリンクのようなページ遷移が発生しない場合とで記述場所が変わることもあるため注意が必要です。
こちらは、aタグ内に記述します。
< a href = "*****" data-gtm-click = "to-contactPage" >お問い合わせする</ a > |
これにより、「to-contactPage」というイベント名でGA4に送信されます。
※GA4側で「to-contactPage」というイベントをコンバージョンとして設定するのもいいかもしれません。
< a href = "#index-1" data-gtm-click = "click-ancor" >目次1へスクロール</ a > < a href = "#index-2" data-gtm-click = "click-ancor" >目次2へスクロール</ a > |
これにより、目次のいずれかをクリックした際に「to-contactPage」というイベント名でGA4に送信されます。
ここでひとつ注意が必要です。
例えば下記の記述をした場合、発火しないことがあります。
< a href = "#index-1" data-gtm-click = "click-ancor" >< span >目次1へスクロール</ span ></ a > < a href = "#footer" data-gtm-click = "click-ancor-toFooter" >< img src = "*****" ali = "フッターまでスクロール" ></ a > |
このコードの場合、実際にクリックされる箇所は「目次1へスクロール」という文字の上(spanタグの中)であったり、「フッターまでスクロール」という画像(imgタグ)の場合があります。
ようは、aタグを押していないことになってしまい、うまく発火しないことがあります。
そのため、下記のような記述にすることで発火します。
< a href = "#index-1" >< span data-gtm-click = "click-ancor" >目次1へスクロール</ span ></ a > < a href = "#footer" >< img data-gtm-click = "click-ancor-toFooter" src = "*****" ali = "フッターまでスクロール" ></ a > |
それでも発火が安定しない場合は、クリックされる可能性のある要素全てに設定するのも手です。※検証したところ、イベントが2回送信されることはなかったので問題ないと思います。
< a href = "#index-1" data-gtm-click = "click-ancor" >< span data-gtm-click = "click-ancor" >目次1へスクロール</ span ></ a > < a href = "#footer" data-gtm-click = "click-ancor-toFooter" >< img data-gtm-click = "click-ancor-toFooter" src = "*****" ali = "フッターまでスクロール" ></ a > |
このあたりは、発火するしないをしっかり確かめたほうが良いでしょう。
まとめとして、実際の作業内容のみをリストで残しておきます。
今後改めて設定する機会があったら、是非活用してみてください!
data-gtm-click="GA4に送りたい任意のイベント名”
※アンカーリンクや画像を使ったボタンの場合は、クリックされる可能性のある要素に記述!例えばWordPressを利用していると、カテゴリーの一覧やタグの一覧といった項目にてクリックし、記事を探すという場面があります。この場合、カテゴリーやタグはWordPress側から自動出力されるのですが、どのカテゴリーやタグがクリックされたか計測したい場合はないでしょうか?
下記のような感じのものです。
実際のコードを見てもらったほうが早いかと思うので、下記をご覧ください。
PHPのコード
<ul> <?php $tags = get_tags(); ?> <?php foreach ( $tags as $tag ) : ?> <li><a href= "<?php echo get_tag_link($tag) ?>" data-gtm-click= "tagClick-<?php echo $tag->name; ?>" ><?php echo $tag ->name; ?></a></li> <?php endforeach ; ?> </ul> |
※WordPress側で作成したタグの全てを一覧出力するコードです。一部省略しています。
実際の出力HTML
< ul class = "list_tag" > < li >< a href = "/tag/functions-php/" data-gtm-click = "tagClick-functions.php" >functions.php</ a ></ li > < li >< a href = "/tag/featured-image/" data-gtm-click = "tagClick-アイキャッチ画像" >アイキャッチ画像</ a ></ li > < li >< a href = "/tag/with-plugin/" data-gtm-click = "tagClick-プラグイン" >プラグイン</ a ></ li > </ ul > |
これもWordPressの繰り返し処理や関数を用いることで、簡単にトリガーと値(イベント名)を設置することが可能です。
上記のようなコードを入れ込むことで、タグをクリックした際にトリガーが発火し、「tagClick-〇〇」というイベント名でGA4に送信されます。「〇〇」には、WordPress側で設定したタグの名前が自動で入ります。
これのメリットとして、一度設定してしまえば、GTMやコードは触らずにWordPress側でタグを新規作成するのみで勝手にイベントを増やすことが可能です。
送信されるイベントは多くなってしまいますが、どのカテゴリーやタグが押されているのか(ユーザーが求めているカテゴリーやタグなのか)が、送られたイベントの数で判明するため、今後どのカテゴリーに属する記事を伸ばしていくかなどの指標の一つとして有効になるかと思います。
是非試してみてください!
UAは、2023年7月1日をもってサポート終了しており、移行が急がれていますが、未だにUAだけで計測しているサイトも多いと聞きます。
参考:ユニバーサル アナリティクスのサポートは終了します – アナリティクス ヘルプ (google.com)
今回ご紹介した方法ではコードを触る必要がありますが、これを機会にサイトのコードメンテナンスも兼ねたGA4への移行も検討してみてはいかがでしょうか?
弊社ではWebサイト制作の企画から運用・保守まで幅広く対応しております。
本記事のご不明点はもちろん、Webサイト制作に関するお困りごとがございましたら、弊社アンドエイチエーまでお気軽にご相談ください!
先日、「この記事の方法を試したところ、イベントが2回送信される」というご相談をいただきました(貴重な情報提供ありがとうございます!)。
現状、弊社環境ではこういった現象が確認できておらず、随時原因を調査しながら試行錯誤中です。
本記事の通りに設定頂いた後は、必ず検証・確認をよろしくお願いします。