会員ログの活用法 第1回

登録したまま一度も利用していない会員を、登録月別に数える

会員数が増えていても、登録した会員の4分の1は、登録してから一度もログインして利用していない。

よくある状況

会員サイトの月次報告では、まず会員数の推移が並びます。数が伸びていれば順調に見えますが、申し込みや問い合わせは会員数ほど増えていない、メールを送っても反応が薄い、ということがよくあります。

会員が来なくなる話は「休眠会員」としてよく語られます。ただ、休眠は一度は使っていた人が来なくなった状態です(第2回で扱います)。それとは別に、登録した日を最後に一度もログインしていない会員がいます。こちらは休眠ではなく、最初の一歩でつまずいている可能性があります。

アクセス解析ツールで見えるのは、訪問者数やページビューです。名簿の中の誰が一度も利用していないかまでは分かりません。会員IDでアクセスログと名簿をつなぐと、この人数を登録月ごとに数えられます。

登録月ごとに、一度も利用していない会員の人数が分かるグラフ

どの月も、登録した会員の2〜3割が一度も利用していない。5月だけ4割近く(69人中27人)まで上がっている。

このグラフの数え方

  • 対象:2026年4〜9月に登録し、退会していない会員
  • 「利用した」:ログインした状態でページを1回以上閲覧したこと
  • 割合の分母:その月に登録した会員の人数
  • 言えないこと:利用しない理由までは分からない。登録の案内や導線を見直す手がかりとして使う

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

これが分かると

  • 登録の案内メールや登録完了ページが、次の一歩につながっているかを見直すきっかけになります。
  • 「一度も利用していない会員」だけに絞って、2通目の案内を送れます。
  • 割合が跳ねた月があれば、その月に何を変えたかをたどれます。

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

試してみる

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

集計SQL件数と割合だけを出します
select to_char(m.registered_at, 'YYYY-MM') as reg_month,
       count(*) as members,
       sum(case when a.member_id is null then 1 else 0 end) as never_visited
from member m
left join (
  select distinct member_id
  from access_log
  where member_id is not null
    and accessed_at < '2026-10-01'
) a on a.member_id = m.member_id
where m.withdrawn_at is null
  and m.registered_at >= '2026-04-01' and m.registered_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
group by 1
order by 1;
AIプロンプト集計結果を貼るだけです
次の表は、会員サイトの登録月ごとの集計です。
reg_month=登録月、members=登録した会員数(退会者を除く)、never_visited=登録してから一度もログインしてサイトを利用していない会員数です。
個人を特定できる列は含めていません。

1. 登録月ごとに members と never_visited を並べた棒グラフを、画像で描いてください。各月に「一度も利用していない割合」を添えてください。
2. 次の点を読み取って、3行程度で教えてください。
   ・割合はおおよそ何割か
   ・割合が目立って高い月、低い月はあるか
   ・その月に、登録の案内や導線で何か変えたことがないか確かめるべきか

(ここに集計結果を貼る)
社内用SQL会員IDの一覧が出ます。社外のサービスやAIには貼らないでください
-- 社内用:会員IDの一覧が出ます。社外のサービスやAIには貼らないでください
select m.member_id, m.registered_at, m.occupation, m.specialty
from member m
left join (
  select distinct member_id
  from access_log
  where member_id is not null
    and accessed_at < '2026-10-01'
) a on a.member_id = m.member_id
where m.withdrawn_at is null
  and m.registered_at >= '2026-04-01' and m.registered_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
  and a.member_id is null
order by m.registered_at;

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

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

試せなかったら

会員の名簿とアクセスログが別々のシステムにあり、会員IDでつながっていないと、この問いには答えられません。
アクセス解析ツールで分かるのは「何人来たか」までで、「名簿の中の誰が利用していないか」は出せないからです。

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

次に読む

会員ログの活用法 一覧へ