データポータルで「GAのユーザーエクスプローラより便利な(?)ユーザーレポート」を作ってみた

Google Analytics(ユニバーサルアナリティクス)のユーザーエクスプローラにあるユーザーレポートのような各ユーザー(各クライアントID)のサイト内での行動履歴(ページビュー,リンククリック,ページスクロール)を,時系列で追えるレポートをデータポータルで作ってみました.

 

1.はじめに

記事「Google Analytics(ユニバーサルアナリティクス)で個々のユーザーのサイト内の行動を追う」にて,Google Analytics(以下,GA)はこれからサイト内でのユーザーの行動を知ることでサイトの改善をするツールとしても役割が増すという考えを述べました.それにより,GA(ユニバーサルアナリティクス)のユーザーエクスプローラの活用が重要で,リンククリックやページスクロール率をどのように計測するかのヒントを示しました.

ただGA(ユニバーサルアナリティクス)のユーザーエクスプローラは非常に扱いにくい面があります.例えば,データをエクスポート(出力)できますが,ファイル形式はJSON形式のみだったりします.このような環境を改善するのにデータポータルが活用できます.そこで今回は,データポータルで作ったGA(ユニバーサルアナリティクス)のユーザーエクスプローラ風のレポートを紹介します.

 

図1.GA(ユニバーサルアナリティクス)のユーザーエクスプローラのユーザーレポート画面

 

2.準備

データポータルでGA(ユニバーサルアナリティクス)のユーザーエクスプローラ風のユーザーレポートを作るには,Googleタグマネージャー(以下,GTM)の活用が必須です.サイト内のリンクのクリック計測やスクロール率の計測は,記事「Google Analytics(ユニバーサルアナリティクス)で個々のユーザーのサイト内の行動を追う」を参照にしてください.

さらにユーザーレポートを作るには,カスタムディメンションで,クライアントIDとアクセス時間とセッションIDを取得する必要があります.本サイトでは,GTMでのそれらを取得する方法を紹介していません.なぜなら検索すればこれらの情報は他のサイトですぐに見つけることができると思うからです.しかし,それではあまりにも不親切なので,以下に参考になるサイトを3つほど紹介しておきます.

GTMでGoogleアナリティクスのClient IDを取得する一番確実で楽な方法(2018年版)

GTMでGoogleアナリティクスのアクセス時間を計測しよう

IMPROVE DATA COLLECTION WITH FOUR CUSTOM DIMENSIONS

レポートで使用するためのカスタムディメンションで取得する情報は,「クライアントID,セッションID,アクセス時間(内容的には「タイムスタンプ」と言った方が正しいとは思います),ユーザーエージェント」です.どれもGTM内でJavaScriptを使って取得できます.なお,アクセス時間はJavaScriptを使ってミリ秒まで必ず取得してください(なおJavaScriptを使うためそのデータはユーザーのデバイスのOSに依存した時間となります).

上記のようにカスタマイズしたGA(ユニバーサルアナリティクス)のデータを使ったレポートを作るわけですが,実際のサイトのデータだといろいろと問題が生じます.今回の記事のための以下のようなデモサイト(テストサイト)を用意しました.

[デモサイト] GA TEST SITE

FC2のフリーでホームページを作れるスペースなので,スマホ(表示画面が960px以下)だと広告が表示され,PC(表示画面が960pxより大きい)だと一定期間更新がないと広告が表示される環境です.

 

図2.デモサイトのページ「/test_home.html」のPC表示

 

記事「Google Analytics(ユニバーサルアナリティクス)で個々のユーザーのサイト内の行動を追う」で紹介したように,サイト内のリンククリック計測をよりわかりやすくするような措置(idを与えるなど)をしています.スクロール率は,全ページ(5頁)で「1%, 30%, 60%, 90%」を取得します.1%のスクロール率は普通はいらないとは思いますが,イベントを集めたTable(表)を作った場合に(どのページにアクセスしたかが時系列で)わかりやすくなると思い設定しました.また,ページ「/test_menu03.html」だけはスクロール率を10%刻み,つまり「1%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100%」で所得するようにもしています.これはページ「/test_menu03.html」がいわゆる広告などのランディングページなどを想定しての設定です.日本のランディングページは異常に縦に長いのが好まれて作られますから,そのようなページは他のページとは異なってもっと詳細にスクロール率が知りたいだろうということを想定しての措置です.

 

3.レポートの紹介

GA(ユニバーサルアナリティクス)のユーザーエクスプローラよりも便利だと考えたユーザーレポートは下記のリンクで閲覧できます.

[閲覧用] GAのユーザーエクスプローラより便利なユーザーレポート

データの期間は「2021年4月12日から2021年4月18日」をデフォルトにしています.上部には,関連するディメンションで絞り込めるようにコントロールボタンを設置しています.

 

図3.[閲覧用] GAのユーザーエクスプローラより便利なユーザーレポートの1ページ目

 

レポートの1ページ目は,デモサイトの目標1を達成したユーザーのみを集めたものとなっています.レポートの2ページ目は,デモサイトの目標2のみを達成したユーザーのみを集めたものとなっています.レポートの3ページ目は,すべてのユーザーのレポートとなっています.ユーザーエクスプローラでデータを見る場合は,CVしたユーザー(目標を達成したユーザー)など絞ったターゲットのデータを見ていろいろと考えてヒントを得るのが基本だと思いますが,今回はデモサイトでもあり総データも少ないので全てのユーザーのレポートも作っておきました.

ちなみに目標1は,ページ「/test_menu01.html」や「/test_menu03.html」にある黄色い画像もしくはテキストの「申込み(CVページへ移動)」(図4参照)をクリックした移動した先のページを開いた場合に達成されます.また目標2は,1つのセッションで閲覧ページ数が6ページ以上で達成したことに該当します.

 

図4.目標1達成を計測するページへのリンク

 

デモデータでは,目標2を達成したユーザーが目標1を達成しないような場合を意識して作りました.したがって,「目標2のみを達成したユーザー」としてまとめたレポートもつくってみました(「目標2のみを達成したユーザー数」>「目標1を達成したユーザー数」となるようにデータを用意したつもりなのですが,下記の注意に書いたような現象が起こりちょっと困惑しています).

 

注意:GAのバグか,なぜか2021年4月14日だけページビュー数が3以上で目標2を達成したような処理になっていることに気づきました.最初に目標2を設定したときは確かに「ページビュー数が3以上の閲覧」を目標2を達成としたのですが,その後(4月8日)に「ページビュー数が6以上の閲覧」で目標2を達成に変更しました(変更履歴もそうなっています).したがって,4月14日以外の日付(4月12, 15-18日)で目標2のみを達成したユーザーは,設定通りにページビュー数が6以上の人が該当しています.ちなみに,4月15日にデータを見たときは4月12日で目標2のみを達成したユーザーは0人でした.ですが,翌日の4月16日になると同じ(セグメントなどを使った)レポートなのにいきなり4月12日では8人に増えていて,おかしいと思ってデータを確認してこの事態に気づきました.原因はわかりませんが,ともかく4月14日だけ目標2の達成条件がおかしな処理をされたようです(もちろんその日だけ目標2の設定を変えるなどはしていません).

 

レポートには大きく分けて「月(年間)&ユーザー」が主軸,「クライアントID」が主軸,「クライアントID&セッションID」が主軸,「クライアントID&セッションID&アクセス時間」が主軸の4種類のTableがあります.

Table 1は「月(年間)&ユーザー」が主軸のレポートです.サンプルデータでは期間が「2021年4月11日から2021年4月17日」なので,2021年4月のデータのみがデフォルトでは表示されています.今回のサンプルデータは有効な期間が数日なので,主軸を「日付」にしたほうがわかりやすいですが,そのまま「月(年間)」としています.

 

Table 2は「クライアントID」が主軸のレポートです(つまり,データ期間に目標1を達成したユーザー(クライアントID)の基本データが集められています).主軸以外のディメンションに「デバイスカテゴリ,オペレーションシステム(使用デバイスのOSの種類),ブラウザ(サイトにアクセスで使用したブラウザ)」があり,指標は「セッション,ヒット数,合計イベント数,ユニークイベント数,ページビュー数,目標1のCV数(目標1の達成数),目標2のCV数(目標2の達成数),目標1の価値」を設定しています.目標1の価値はGAで目標1を達成した場合に100円としているので,それに準じた値が入っています(スペースに余裕があったので追加しました).

 

Table 3-1とTable 3-2は「クライアントID&セッションID」が主軸のレポートです.Table 3-1では主軸以外のディメンションに「デフォルトチャネルグループ,参照元/メディア,ユーザータイプ(新規かリピーターか),大都市圏」があり,指標は「セッション,ヒット数,合計イベント数,ユニークイベント数,目標1のCV数(目標1の達成数),目標2のCV数(目標2の達成数)」を設定しています.ディメンションの「大都市圏」の箇所は,「地域(都道府県の情報)」と「市区町村」のディメンションを組み合わすのが通常はよいと思いますが,このデモでは諸事情からこのようにしました.Table 3-2では主軸以外のディメンションに「アクセス時間,曜日,参照元/メディア,ランディングページ,ページタイトル(ランディングページのタイトル),ユーザーエージェント」があり,指標は「セッション」を設定しています.アクセス時間は「(JST)」と書いていますが「日本標準時」を意味しています.Table 3-1はセッションIDの昇順,Table 3-2はアクセス時間の昇順になっていることに注意してください.

なお,1ページ目はデータ期間内に目標1を達成したユーザーなので,該当するユーザーの目標1を達成していないその期間内のセッションも含まれ,アクセス時間の昇順に並んでいます.同様に,2ページ目はデータ期間内に目標2のみ達成したユーザーなので,該当するユーザーの目標2を達成していないその期間内のセッションも含まれ,アクセス時間の昇順に並んでいます

 

Table 4-1とTable 4-2は「クライアントID&セッションID&アクセス時間」が主軸のレポートで,これがGoogle Analyticsのユーザーエクスプローラのユーザーレポートをすべて展開して表示したものと対応したものと言えます.Tableは共に,アクセス時間の昇順に並べています.Google Analyticsのユーザーレポートはアクセス時間の降順ならびがデフォルトですが,このレポートではアクセス時間の昇順のほうが使いやすいと思いそのようにしました.アクセス時間をミリ秒まで取得するようにしたのがこの並び替えで機能します.秒までだとどちらのアクション(ヒット)が先かの判定が曖昧で判断できないことが多々あります.したがって,アクセス時間はミリ秒まで取得するのが重要です.

Table 4-1では主軸以外のディメンションに「曜日,ページ(開かれたページのPath),ページタイトル,デフォルトチャネルグループ,参照元/メディア」があり,指標は「セッション,ページビュー数,目標1のCV数(目標1の達成数),目標2のCV数(目標2の達成数)」を設定しています.Table 4-2では主軸以外のディメンションに「曜日,ページ(イベントがあったページのPath),ページタイトルイベントがあったページのタイトル),イベントカテゴリ,イベントラベル」があり,指標は「ヒット数,合計イベント数」を設定しています.

Table 4-2で,例えばイベントカテゴリの「ページスクロール」でイベントラベルが「30」のとき,その「クライアントID&セッションID&アクセス時間&ページ」でそのページでスクロール率「30%」が計測されたことを表します.Table 4-2のイベントカテゴリ「InternalLink_Click」が内部リンクをクリックした場合,イベントカテゴリ「OutboundLink_Click」が外部リンクをクリックした場合で,それそれ「クライアントID&セッションID&アクセス時間&ページ」に紐付いています.リンククリックのイベントラベルの内容表記のルールは記事「Google Analytics(ユニバーサルアナリティクス)で個々のユーザーのサイト内の行動を追う」の4節などを参照してください.

なお,1ページ目はデータ期間内に目標1を達成したユーザーなので,データ期間内に目標1を達成したことがあるユーザーに関する期間内のそのユーザーの全てのセッションでのページビューとイベント計測の情報がアクセス時間の昇順に並んでします.同様に,2ページ目はデータ期間内に目標2のみを達成したユーザーなので,データ期間内に目標2をのみ達成したユーザーに関する期間内のそのユーザーの全てのセッションでのページビューとイベント計測の情報がアクセス時間の昇順に並んでします.

 

GA(ユニバーサルアナリティクス)のユーザーエクスプローラのユーザーレポートですと,ページビューとイベントが時系列に一覧として並びますが,ディメンションと指標の組合せの関係上,Table 4-1とTable 4-2に2つに分かれることになります.これらを1つにするにはデータを出力してExcelなどで加工する必要があります.それは記事「ExcelでGoogle Analyticsのデータを使いユーザーレポート(行動履歴レポート)を作ってみた」で紹介しています.

 

4.使い方の例

まず,詳しいデータを見たいユーザー(クライアントID)をTable 2やTable 3-1やTable 3-2などから見つけます.これらTableがちょうど,GA(ユニバーサルアナリティクス)のユーザーエクスプローラのレポートのトップ画面(クライアントID一覧)に該当するとも言えます.必要なら上部の「デバイス」や「チャネル」や「参照元/メディア」などのコントロールボタンを活用します.

ターゲットとなるクラアインとIDを見つけたら,そのIDの値をコピーして,レポート上部のコントロールボタンでそのIDを選択する(図5参照).後は各Tableでそのユーザーのサイト内の行動を時系列で確認して,どのような意図があったのかなどを推測したりします(図6と図7参照).

 

図5.レポートのコントロールボタンで見たいクライアントIDを選択する

 

図6.選択したクライアントIDのみのデータが表示されたレポート(1ページ目)のTable 3-1とTable 3-2

 

図7.選択したクライアントIDのみのデータが表示されたレポート(1ページ目)のTable 4-1とTable 4-2

 

5.おわりに

データポータルはデータが多いと表示に時間がかかります(処理が重くなります).とくに平日の夕方頃はデータポータルだけでなくGAも処理が重いと感じます.したがって,今回紹介したレポートの3ページ目のようなすべてのユーザー(クライアントID)を対象とするとデータ容量が大きくなるので現実的ではありません.あくまでも,コンバージョンを達成したユーザーとかに絞ったものにするのが良いでしょう.

サンプルのレポートは,データ期間を「2021年4月12日から2021年4月18日」をデフォルトにしています.ですが,レポート上部のコントロールボタンでデータ期間を変更出来ます.デモサイトですから,デフォルトの期間以外はほとんどデータがないと思います.ですが,それゆえこの記事を読んだ貴方が実際にデモサイトにアクセスしてレポートに貴方の行動がどのように反映されるかを確認するのが容易だと思います.自分自身のデータを確実に追えるようにするには,アクセスしたブラウザに与えられたクライアントIDを控えておいたほうが良いでしょう(ブラウザのCookie管理などで該当するCookieを調べれば,クライアントIDの番号はわかります.例えば,記事「IPアドレスを使わず自分のアクセスをGoogle Analyticsの計測から除外する方法(問題点等も紹介)」の6節「データの確認」を参照してください).もしよければ試してみてください.