Google アナリティクス：曜日・時間帯別のセッション数をセグメントごとにヒートマップで可視化する

![p1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b6a0d9f5-ed55-fb65-885d-d7a758ff5247.png)


# Google アナリティクス：曜日・時間帯別のセッション数をセグメントごとにヒートマップで可視化する

Webサービスやeコマースを運営していくうえで、ユーザーからのアクセスが集中する曜日や時間帯を理解しておくことは非常に重要です。

もちろん因果関係に気をつける必要はありますが、例えばモバイル経由のアクセスが集中しやすい曜日や時間帯が分かったら、そういったタイミングでモバイルで閲覧されることが多いSNSに記事を投稿して、集客の増加を狙うということがあります。

そこでGoogleアナリティクスでも、このような指標を可視化したヒートマップをサービス上で提供していますが、一つ問題があります。


![p2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/5e853831-db4a-0907-5392-a1f17a793577.png)


それはWebサイトへのアクセスと一口にいっても、モバイル端末からのアクセスもあれば、パソコンからのアクセスもあるわけで、特徴の異なるグループを全て同じ集団として集計をしているということです。

こういったグループのことを、セグメントと呼んだりするわけですが、本日は曜日・時間帯別のセッション数をセグメントごとに可視化する方法を紹介していきます。


# 曜日・時間帯別のセッション数を可視化するステップ

今回は[Exploratory](https://ja.exploratory.io/?utm_campaign=ga_heatmap&utm_medium=blog&utm_source=qiita)を使って、以下のステップで曜日・時間帯別のセッション数をセグメントごとに可視化していきます。

1. データを取得する
2 . ヒートマップで可視化する
3. ヒートマップをセグメントごとに「繰り返す」


# 1. データを取得する

それでは早速、Google アナリティクスからデータを取得していきます。Exploratoryで新規プロジェクトを作成したら、データフレームの横にある+（プラス）ボタンをクリックして「クラウドアプリケーションデータ」を選択します。


![p3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a11b912b-68ed-d454-bb04-99f8e52c68a6.png)


- ExploratoryとGoogle アナリティクスの接続方法 - [Link](https://docs.exploratory.io/import/google-analytics-ja.html)

続いてクラウドアプリケーション・データソースからGoogle Analyticsを選択します。


![p4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f18ce684-914a-2752-84ac-f650a0b7004f.png)


するとGoogle アナリティクスのデータ・インポート・ダイアログが表示されるので、データを取得するアカウント、プロパティ、ビュー、セグメントを選択します。


![p5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/67b5b309-039e-98f1-f7e4-38d2f13b5213.png)


続いてデータを取得する期間を設定します。今回は直近1年のデータを取得して、曜日・時間帯別のセッション数を可視化していきたいので、期間に「直近N年」、数値「1」を選択します。


![p6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/7fe2199f-b66b-573f-aba9-32c60b64c852.png)


続いて日付ごとのセッション数の取得です。

ディメンションに「日付時間（Date Hour and Minute）」を選択し、次に指標から「セッション」を選択し、実行ボタンをクリックします。


![p7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/4c12b5c5-ffb8-a4f6-f3b6-ff6118ac87a3.png)


すると直近一年の日時ごとのセッション数が表示されるので、保存ボタンをクリックします。


![p8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/d5a597ac-be60-18f2-01a7-bdcdd3f53a15.png)


続いてデータフレームの名称設定ダイアログが表示されるので、今回は「access」という名前にして、作成ボタンをクリックします。


![p9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/0c9de357-35d2-8cc1-acec-49f4063f831a.png)


これでデータの取得は完了です。


![p10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/d36efe52-fbf3-a3da-aa65-993eee50afd4.png)


このときタイムゾーンを修正したり、変換する必要があれば、簡単に変換することが可能です。

- 時間つき日付データのタイムゾーンを修正・変換する方法 - [Link](https://qiita.com/IkuyaM/items/17985a215c24e210ad2d)


![p11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f1867589-ed2b-b355-f992-e1f29e959f90.png)


# 2.  ヒートマップで可視化する

いよいよ取得したデータを利用して、曜日・時間帯別のセッション数をヒートマップで可視化していきましょう。

チャートビューに移動して、タイプに「ヒートマップ」を選択します。続いて、X軸に「dateHourMinute」を、さらに同様にY軸にも「dateHourMinute」を選択します。


![p12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/07578fec-0545-d8e2-3d07-f84ad074031b.png)


すると以下のようなチャートが表示されます。今回は「曜日・時間帯別」のセッション数を可視化したいのですが、「dateHourMinute」スケールが「年」で丸められているため、思うような形で可視化ができていません。


![p13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/bdf441fd-6152-0c4d-c843-2f6c48539a5c.png)


そこで次は「dateHourMinute」から曜日の情報や、時間帯の情報を抽出していきます。

X軸の「dataHourMinute」のスケールをクリックします。まずは曜日情報を抽出したいので、抽出メニューから「曜日 - ロング（月曜日-日曜日）」を選択します。


![p14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/3ac27369-be12-d80a-80a2-46690b50663c.png)


するとX軸の「dataHourMinute」から曜日情報が抽出され、曜日ごとのスケールになっていることが分かります。


![p15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/c20943f8-2131-6bbf-366b-187c67a4e2d3.png)


続いてY軸の「dataHourMinute」から時間帯の情報を抽出していきます。「dataHourMinute」のスケールをクリックして、抽出メニューから「時（0-23）」を選択します。


![p16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/49f084aa-c2d6-1ae7-9ccd-f5ca00a022c8.png)


これで時間帯・曜日ごとのヒートマップが作成できました。

ただし、今回知りたいのは曜日・時間帯ごとの「セッション数」です。現在のチャートでは曜日・時間帯ごとの「行の数」の集計結果が色で分割で選択されているので、セッション数に変更していきます。


![p17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/593b5614-9bdd-de50-fc55-b3ca4f34dbfc.png)


色で分割に「sessions」を選択し、集計関数に「合計値（SUM）」を選択します。


![p18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f7a8d40b-ffbd-69d5-2b4b-1d5e5080304c.png)


これで時間帯・曜日ごとのセッション数の合計値が可視化できました。


![p19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/2b61a86c-8a46-7013-c616-9d9046495bcf.png)


ただ実はもう一つ問題があります。それは現在のチャートが「下から上に」時間が進んでいるということです。

カレンダーや手帳の表記がそうであるように、時間についての情報を可視化するときは「左から右」ないしは「上から下」に並んでいる方が人間は直感的に理解ができるということがあります。


![p20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/00cfd61f-8ea7-e4a6-e5d4-1bddc44bbfec.png)


では、実際にY軸の順番を変えていきましょう。Y軸メニューから「Y軸の並び順」を選択します。


![p21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e2967703-02dc-2eb0-2c5b-ea0247052d89.png)


そして軸の並び順に「上から下」を設定します。


![p22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ef155b32-ee11-d268-06a4-6ef92b08eb8e.png)


これで、曜日・時間帯別のセッション数の可視化ができました。


![p23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/05f09206-8853-0a5b-5cd1-8b3a355f2c55.png)


# 3. ヒートマップをセグメントごとに繰り返す

ただし、もう一つ問題が残ったままです。冒頭で書いたように、本来の目的は「セグメントごと」に曜日・時間帯別のセッション数を可視化することでした。

今回は「デバイス」ごとに曜日・時間帯別のセッション数を可視化していきたいので、まずはデバイスの情報を追加で取得していきます。

Google Analyticsデータのステップ内のトークンをクリックします。


![p24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/3b80b178-0dc2-b6f2-878a-4ed179f12a9f.png)


すると、冒頭でデータを取得したインポート画面が表示されるので、ディメンションに「デバイス カテゴリ（Device Category）」を追加で選択し、実行ボタンをクリックし更新ボタンをクリックします。


![p25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f909616b-30d1-7056-7e00-7684afec7c40.png)


サマリビューに移動すると、デバイス情報も追加で取得できたことがわかります。


![p26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/3a041adf-45da-2eb5-a29b-e6da7cb235da.png)


続いてチャートビューに移動して、繰り返しに、分けたいセグメントである「deviceCategory」を選択します。


![p27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/29028297-807c-708d-cce9-a7bc22b96a8e.png)


これでデバイスごとに曜日・時間帯別のセッション数が可視化できました。


![p28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/7b9099b0-ef0a-4300-f906-e04f0b05b4bc.png)


なお多くの場合、tablet（タブレット）のセッションはdesktop（パソコン）やmobile（スマートフォン）と比べて非常に少なく、可視化する必要がないということがあったりします。

そういったときはチャートレベルフィルタを利用して、desktop（パソコン）やmobile（スマートフォン）だけのヒートマップの可視化が可能です。

チャート上部のフィルタボタンをクリックすると、フィルタダイアログが表示されるので、列に「deviceCategory」、演算子に「等しくない」、値に「tablet」を選択し、実行します。


![p29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/245ae236-4f8a-5e0a-0d18-610997183daa.png)


これで曜日・時間帯別のセッション数をセグメントごとにきれいにヒートマップで可視化することができました。


![p30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/785e8cd7-8cc8-3617-0ceb-b43141e1959b.png)


例えば今回のケースでいうと、desktop（デスクトップ）からのアクセスはビジネスタイムにアクセスが集中しており、mobile（モバイル）はビジネスタイム前後昼の時間アクセスが集中しており、各々の傾向が異なることが確認できました。

# Googleアナリティクスのデータを活用した分析

Googleアナリティクスに保存されているデータは他にも様々な分析に活用することが可能です。

これらの詳しい内容については、[オンライセミナー](https://exploratory.io/online-seminar-jp/?utm_campaign=ga_heatmap&utm_medium=blog&utm_source=qiita)やこちらの[インサイトページ](https://exploratory.io/tag/?q=tag:%22google%20analytics%22&?utm_campaign=ga_heatmap&utm_medium=blog&utm_source=qiita)でも紹介していますので興味がある方は是非ご参考ください！


# 自分のデータで実際に試してみる

[Exploratory](https://ja.exploratory.io/?utm_campaign=ga_heatmap&utm_medium=blog&utm_source=qiita)では30日間、無料でトライアルができます。実際に自分達のデータを使って試してみたい方は下記より無料トライアルをご利用ください！


![p31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b4127083-36ff-3676-131d-6f5b0b9d9c5b.png)


# データサイエンス・ブートキャンプ、5月開催！

データサイエンスの分析手法を一から体系的に学び、現場で使える知識とスキルを身につけていただくためのトレーニング、データサイエンス・ブートキャンプを5月に開催します。

データを使ってビジネスを成長させたい、または問題を解決したいという方は、ぜひこの機会に参加をご検討ください！
詳細は[こちら](https://exploratory.io/training-jp/?utm_campaign=ga_heatmap&utm_medium=blog&utm_source=qiita)になります。