会員ログの活用法 第22回

会員がサイトを利用する曜日と時間帯

会員の閲覧は、平日の朝・昼・夜に集まっている。土日は1日の合計で平日の半分以下。

よくある状況

アクセス解析の報告では、曜日別や時間帯別の訪問数が並びます。ただ、その数字には、会員と会員でない訪問者が混ざっています。

医療従事者の会員は、診療の前の朝、昼休み、夜に帰宅してから、という時間にサイトを見ることが多いと言われます。一方、検索から来る会員でない訪問者は、別の時間帯に多いかもしれません。全体の数字では、会員がいつ来ているのかがぼやけます。

会員IDの付いたアクセスログで会員の閲覧だけを取り出すと、曜日と時間帯ごとに数えて、会員が利用する時間をはっきりさせられます。

曜日と時間帯ごとに、会員の閲覧数が分かる表

平日の6〜8時、12〜14時、18〜23時が濃い。土日は1日の合計で、平日の半分以下。

このグラフの数え方

  • 対象:2026年4〜9月の、ログインした会員の閲覧数(ページビュー)。6か月分を曜日・時間帯ごとに合計した
  • 時間帯:3時間ごとに8つに分けた
  • 言えないこと:閲覧数なので、同じ会員がたくさん見た時間帯も濃くなる。人数で見たいときは、会員の数を数える集計にする

架空のサンプルデータで集計した例です。

これが分かると

  • メールの配信や新着記事の公開を、会員がよく利用する時間帯に合わせられます。
  • サイトの更新やメンテナンスを、会員の利用が少ない時間帯に回せます。
  • 診療科や職種ごとに同じ表を作れば、会員に合わせた配信時刻を考えられます。

ここに挙げた使い方は一例です。サンプルの数字は架空のもので、実際の結果や施策の効果を約束するものではありません。

試してみる

ここから先は、システム担当者に渡してください。集計SQLで出た結果を、AIプロンプトと一緒にAIへ貼ると、上のようなグラフと読み取りが返ってきます。

集計SQL件数と割合だけを出します
select extract(isodow from accessed_at)::int as dow,  -- 1=月曜 … 7=日曜
       sum(case when extract(hour from accessed_at) between 0 and 2 then 1 else 0 end) as h00_02,
       sum(case when extract(hour from accessed_at) between 3 and 5 then 1 else 0 end) as h03_05,
       sum(case when extract(hour from accessed_at) between 6 and 8 then 1 else 0 end) as h06_08,
       sum(case when extract(hour from accessed_at) between 9 and 11 then 1 else 0 end) as h09_11,
       sum(case when extract(hour from accessed_at) between 12 and 14 then 1 else 0 end) as h12_14,
       sum(case when extract(hour from accessed_at) between 15 and 17 then 1 else 0 end) as h15_17,
       sum(case when extract(hour from accessed_at) between 18 and 20 then 1 else 0 end) as h18_20,
       sum(case when extract(hour from accessed_at) between 21 and 23 then 1 else 0 end) as h21_23
from access_log
where member_id is not null
  and accessed_at >= '2026-04-01' and accessed_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
group by 1
order by 1;
AIプロンプト集計結果を貼るだけです
次の表は、会員サイトの会員の閲覧を、曜日と時間帯ごとに数えた集計です。
dow=曜日(1=月曜 … 7=日曜)、h00_02〜h21_23=その時間帯(3時間ごと)の閲覧数です。
個人を特定できる列は含めていません。

1. 曜日を行、時間帯を列にして、閲覧数を色の濃さで表したヒートマップを、画像で描いてください。
2. 次の点を読み取って、3行程度で教えてください。
   ・会員がよく利用する曜日と時間帯はいつか
   ・平日と土日で、どれくらい違うか
   ・メールの配信や記事の公開を、どの時間帯に合わせるべきか

(ここに集計結果を貼る)

SQLとプロンプトは、準備編の汎用テーブルを前提にした例です。実際のテーブル名・列名に合わせて書き換えてください。動作や結果を保証するものではありません。

使う表: access_log(アクセスログ) (表の形は準備編)

試せなかったら

アクセスログに会員IDが残っていないと、この問いには答えられません。
曜日別・時間帯別の数字に会員でない訪問者が混ざり、会員がいつ来ているのかを取り出せないからです。

writeWiredでは、会員IDの付いたアクセスログとメール・フォームの記録が最初から同じ場所に揃っています。会員サイトCMSとしてのwriteWired

次に読む

会員ログの活用法 一覧へ