会員ログの活用法 第4回
以前からの会員のうち、半年間毎月利用している常連は2割。3割は半年間一度も利用していない。
会員サイトの報告では、月ごとの訪問者数が並びます。毎月同じくらいの人数が利用していると、決まった会員が通ってくれているように見えます。
ただ、毎月利用しているのが同じ会員なのか、月ごとに違う会員なのかは、訪問者数からは分かりません。常連が支えているサイトと、ときどき利用する会員が入れ替わっているサイトでは、打つべき手が違います。
会員IDでアクセスログを会員ごとにまとめると、半年のうち何か月利用したかを会員ごとに数えられます。
利用した月数,会員(人) 0か月,181 1か月,16 2か月,56 3か月,33 4か月,62 5か月,92 6か月,130
このグラフの数え方
架空のサンプルデータで集計した例です。
ここに挙げた使い方は一例です。サンプルの数字は架空のもので、実際の結果や施策の効果を約束するものではありません。
ここから先は、システム担当者に渡してください。集計SQLで出た結果を、AIプロンプトと一緒にAIへ貼ると、上のようなグラフと読み取りが返ってきます。
select coalesce(v.months, 0) as months_visited,
count(*) as members
from member m
left join (
select member_id, count(distinct to_char(accessed_at, 'YYYY-MM')) as months
from access_log
where member_id is not null
and accessed_at >= '2026-04-01' and accessed_at < '2026-10-01' -- 期間。実際には集計する期間に差し替える
group by member_id
) v on v.member_id = m.member_id
where m.registered_at < '2026-04-01'
and m.withdrawn_at is null
group by 1
order by 1;次の表は、会員サイトの以前からの会員(期間の始まりより前に登録した会員)を、半年のうち何か月サイトを利用したか(ログインしてページを見たか)で分けた集計です。
months_visited=利用した月の数(0〜6)、members=会員数(退会者を除く)です。
個人を特定できる列は含めていません。
1. months_visited ごとの members を棒グラフにして、画像で描いてください。各区分に、全体に占める割合を添えてください。
2. 次の点を読み取って、3行程度で教えてください。
・毎月利用している常連は何割か
・一度も利用していない会員は何割か
・常連を増やすのと、一度も利用していない会員を呼び戻すのと、どちらから手を付けるべきか
(ここに集計結果を貼る)-- 社内用:会員IDの一覧が出ます。社外のサービスやAIには貼らないでください
select m.member_id, m.registered_at, m.occupation, m.specialty
from member m
where m.registered_at < '2026-04-01'
and m.withdrawn_at is null
and not exists (
select 1 from access_log a
where a.member_id = m.member_id
and a.accessed_at >= '2026-04-01' and a.accessed_at < '2026-10-01' -- 期間。実際には集計する期間に差し替える
)
order by m.registered_at;SQLとプロンプトは、準備編の汎用テーブルを前提にした例です。実際のテーブル名・列名に合わせて書き換えてください。動作や結果を保証するものではありません。
使う表: member(会員)/access_log(アクセスログ) (表の形は準備編)
アクセスログに会員IDが残っていないと、この問いには答えられません。
アクセス解析では、同じ人が別の端末から来ると別の訪問者として数えられ、「同じ会員が毎月来ているか」を確かめられないからです。
writeWiredでは、会員IDの付いたアクセスログとメール・フォームの記録が最初から同じ場所に揃っています。会員サイトCMSとしてのwriteWired