データポータルで「Google Analytics曜日×時間レポート(ヒートマップ付き)」を作ってみた

Googleのサービスの「データポータル」を作って,Google Analyticsのデータで各曜日の各時間でのユーザーやセッションやCV数を確認できるヒートマップ付きのレポートを作ってみました.レポートを閲覧可能です.

 

1.はじめに

記事「データポータルで「Google Analytics 月・曜日・日・時間軸レポート」を作ってみた」で紹介したレポートを作ったときに,曜日と時間を掛け合わせたデータ(各曜日の各時間のデータ)が確認できるレポートも欲しいと感じました.そこで,2019年に追加されたピボットテーブルの機能を利用して,ヒートマップ付きのレポートを作ってみました.今回もデータは,Google Analyticsのデモアカウント(アカウント「Demo Account」のプロパティ「Google Merchandise Store」のビュー「1 Master View」)を使いました.デモアカウントに関しては,記事「Google Analyticsにデモアカウントを追加」を参照してください.

 

2.レポート全体の説明

まず,今回作ったレポートは

[閲覧用] Google Analytics 曜日×時間レポート

で閲覧できます.デフォルトの期間は,前日から28日前の直近4週間となっています.

すべてのページの上段には,同じフィルタ(コントールボタン関連)が設置されていて,期間をデフォルト以外に変更したり,地域を絞れたり,チャネルやデバイスなどを絞れたりします.上述したようにピボットテーブルで「チャネル」のディメンションも組み込んでいるのでそれを使って各チャネルのデータを確認できますが,上記のフィルタを使うことでも各チャネルを絞ったデータを確認できます.期間を上部のフィルタで変更出来ますが,各曜日の総数が同じになるようにししてください.

レポートは全部で4ページあります.すべてのページに2つのピボットテーブルと1つのテーブルがあります.ピボットテーブルのデフォルトの表示では,行のディメンションは「時間(0時~23時の1時間幅)」,列のディメンションが「曜日(日曜日から土曜日)」となっています.また,行には「チャネル」のディメンションも含まれているので,「+」のボタンで展開して各曜日と各時間のチャネル別のデータを確認できます(図2参照).

ピボットテーブルはヒートマップ表示を使用して,データ(ユーザーやセッションやCV数)が多いところほど色が濃くなるような「曜日×時間」のヒートマップとなっています.なお,Google Analyticsの表示仕様からデータがない(データがすべてゼロの)行は,テーブルから消えてしまいます

ピボットテーブルの下には,「曜日」と「時間」を掛け合わせたディメンションのランキング形式のテーブルで,指標は記事「データポータルで「Google Analytics 月・曜日・日・時間軸レポート」を作ってみた」で使ったものと同じです.このテーブルの直上には「曜日」と「時間」それぞれのフィルタを設置しています.ランキングはデフォルトの期間で160以上の行数(曜日×時間の組合せ)があるので,気になる曜日と時間の組合せを絞って確認するために,これらフィルタがあったほうが便利なだと思い(必要と感じたので)追加しました.

プリントアウトが必要な場面は少ないかもしれませんがA3サイズに印刷することを想定して,レポートの縦と横のサイズ比はA版用紙とあわせています.

 

3.ユーザーと新規ユーザーのヒートマップ

1ページ目は,ユーザーと新規ユーザーの数を使った「曜日×時間」のヒートマップが,左右に並んでいます.レポートのデータ元であるGoogleのデモアカウントでは新規ユーザーの割合が高いので,ユーザーと新規ユーザーのヒートマップは同じような濃淡になっています.

ヒートマップの下のディメンション「曜日×時間」のランキングテーブルは,デフォルトで「ユーザー」の降順になるようにしていて,上位25が表示されています.25位以降もテーブル下のボタンでもちろん確認できますし,並び順をテーブルの項目をクリックすることで変更できます.

図2は,ユーザーが指標の「曜日×時間」のヒートマップにおいて,欄「時間」の横の「+」をクリックして展開した状態です.この図のように,各曜日・時間のチャネル毎のデータが表示された状態になり,スクロースして内容を確認できます.

図1.曜日×時間の「ユーザー&新規ユーザー」のレポートページ

 

図2.ディメンション「チャネル」を展開した状態

 

4.セッションと目標1CV数のヒートマップ

2ページ目は,セッションと目標1のCVの数を使った「曜日×時間」のヒートマップが,左右に並んでいます.目標1のCV数は多くないので,すべての曜日と時間の組合せに必ずデータがあるとはかぎりません.そのためデータがない行(すべての曜日でCVがなかった時間)が省略された表示になりやすいです.セッションのテーブルと左右で並べているので,データがない行も省略せずに表示して欲しい(左右のテーブルで同じ高さに同じ時間がある表示にしたい)のですが,Google Analyticsのデータの表示仕様からそのようにはできません.

ヒートマップの下のディメンション「曜日×時間」のランキングテーブルは,デフォルトで「目標1のCV数」の降順になるように並べていて,上位25が表示されています.25位以降もテーブル下のボタンでもちろん確認できます.ただし,CV数が「ゼロ」になる以降の並び順のルールは自動にしているので,どのようになっているのかわかりません(確認していません).テーブルの並び順に関して第1条件を「目標1のCV数」の降順で第2条件を「ユーザー数」の降順などと指定できるのですが,第2条件を与えるとレポートの閲覧画面で,テーブルの項目をクリックしてその項目での並び替えができなくなります.閲覧者にはテーブルの並び替えが自由にできた方が使い勝手が良いと思うので,並び順に関しては第1条件のみを与えています

図3.曜日×時間の「セッション&目標1のCV数」のレポートページ

 

5.セッションと目標2CV数のヒートマップ

3ページ目は,セッションと目標2のCVの数を使った「曜日×時間」のヒートマップが,左右に並んでいます.

ヒートマップの下のディメンション「曜日×時間」のランキングテーブルは,デフォルトで「目標2のCV数」の降順になるように並べていて,上位25が表示されています.25位以降もテーブル下のボタンでもちろん確認できますし,並び順をテーブルの項目をクリックすることで変更できます.

図4.曜日×時間の「セッション&目標2のCV数」のレポートページ

 

6.セッションとトランザクション数のヒートマップ

4ページ目は,セッションとトランザクション数を使った「曜日×時間」のヒートマップが,左右に並んでいます.トランザクション数も目標1のCVは数と同様に,各曜日と時間の組合せに必ずデータがあるとはかぎりません.そのためデータがない行は省略された表示になりやすいです.

ヒートマップの下のディメンション「曜日×時間」のランキングテーブルは,デフォルトで「トランザクジョン数」の降順になるように並べていて,上位25が表示されています.25位以降もテーブル下のボタンでもちろん確認できますし,並び順をテーブルの項目をクリックすることで変更できます.

図5.曜日×時間の「セッション&トランザクジョン数」のレポートページ

 

7.おわりに

データポータルのピボットテーブルで作ったユーザー・新規ユーザー・CV数・トランザクジョン数での「曜日×時間」のヒートマップを含むレポートを紹介しました.

5年ほど前に,Google Analyticsで「曜日」と「時間」のディメンションを使ったカスタムレポートを作ってエクスポートし,そのデータとRで作ったプログラムとで同様なヒートマップを作ったことがあります.それと同様なものが,データポータルで簡単にできてしまいました.とくにフィルタ機能を使えば,各チャネルの場合もインタラクティブに確認できるのがいいですね.

ただ,データポータルでピボットテーブルを使うのはいろいろと制限があるようです.今回紹介した「曜日×時間(+チャネル)」のピボットテーブルでわかったことは,1つのページに3つまでしかこの3種のディメンションを使ったピボットテーブルを配置できないということです.テーブルのディメンションがこれより増えたピボットテーブルだと,1ページに配置できるピボットテーブルの数がさらに制限されるかもしれません.

なおピボットテーブルを組み込むとレポートの編集作業が非常にストレスを感じるようになります.各要素の配置が思うようにマウスで動かせなかったりしました.今回のレポートは各ページで取りあげる指標の組合せを変化させただけとも言えるのですが,それでも個々の要素を調整・整理したりする(テキストの一部を直すなど)だけで非常にストレスを感じました.

 

参照

データポータルのピボットテーブルを活用して効率的にクロス集計を行う方法