会員ログの活用法 第10回

診療科別に、よく見られる製品ページの違いを見る

診療科ごとに、よく見られている製品ページははっきり分かれる。製品ごとの閲覧数の合計だけでは、この違いは見えない。

よくある状況

製品ページの報告では、製品ごとの閲覧数が並びます。閲覧数の多い製品は、会員全体に関心を持たれているように見えます。

ただ、会員の診療科によって、関心のある製品は違います。会員の多い診療科が見る製品は数が大きくなり、少ない診療科が見る製品は埋もれます。全体の数字だけを見ていると、どの診療科にどの製品が届いているのかが分かりません。

会員IDで名簿の診療科とアクセスログをつなぐと、診療科ごとに、どの製品ページがどれくらいの割合で見られているかを並べられます。

診療科ごとに、製品ページの閲覧の割合が分かる表

循環器内科は製品AとB、糖尿病・内分泌内科は製品C、というように、診療科ごとに見る製品が偏っている。小児科は、どの製品も11〜15%で偏りがない。

このグラフの数え方

  • 対象:2026年4〜9月に、ログインした医師の会員が製品ページを見た閲覧
  • 各欄:その診療科の製品ページの閲覧数の合計に対する、その製品の割合(%)。行ごとに足すと100%
  • 言えないこと:閲覧の割合は関心の目安で、処方や採用の意向までは分からない

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

これが分かると

  • 診療科ごとに、メールやトップで案内する製品を変えられます。
  • どの製品にも偏りのない診療科には、まだ届いていない情報があるかもしれない、と考えるきっかけになります。
  • 新しい製品を出したとき、想定した診療科に見られているかを確かめられます。

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

試してみる

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

集計SQL件数と割合だけを出します
select m.specialty,
       c.title as product,
       count(*) as views
from access_log a
join member m on m.member_id = a.member_id
join content c on c.content_id = a.content_id
where c.content_type = '製品'
  and m.specialty is not null
  and a.accessed_at >= '2026-04-01' and a.accessed_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
group by 1, 2
order by 1, 2;
AIプロンプト集計結果を貼るだけです
次の表は、会員サイトの製品ページの閲覧を、会員の診療科と製品ごとに数えた集計です。
specialty=会員の診療科、product=製品ページ、views=閲覧数です。
個人を特定できる列は含めていません。

1. 診療科を行、製品を列にして、診療科ごとの閲覧の割合(その診療科の合計に対する%)を、色の濃さで表したヒートマップを、画像で描いてください。
2. 次の点を読み取って、3行程度で教えてください。
   ・診療科ごとに、よく見られている製品はどれか
   ・どの製品にも偏っていない診療科はあるか
   ・製品ごとの閲覧数の合計だけで判断すると、何を見落とすか

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

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

使う表: member(会員)/content(コンテンツ)/access_log(アクセスログ) (表の形は準備編)

試せなかったら

会員の名簿(診療科)とアクセスログが、会員IDでつながっていないと、この問いには答えられません。
アクセス解析では閲覧者の診療科が分からず、「どの診療科の会員が、どの製品を見ているか」を出せないからです。

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

次に読む

会員ログの活用法 一覧へ