会員ログの活用法 第18回

初めての利用から申し込みまでの日数

初めて利用した日に申し込んだ会員は、申し込んだ新しい会員の2割。多くは1週間以上たってから申し込んでいる。

よくある状況

新しい会員の報告では、登録の人数と、その月の申し込み件数が並びます。登録した月に申し込みが少ないと、新しい会員は申し込みにつながらないように見えます。

ただ、会員が申し込むまでには時間がかかることがあります。初めて利用した日に申し込む会員もいれば、何度か訪れて、何週間もたってから申し込む会員もいます。登録した月だけで判断すると、あとから申し込む会員を見落とします。

会員IDでアクセスログとフォームの送信記録をつなぐと、新しく登録した会員ごとに、初めて利用した日から最初に申し込んだ日までの日数を数えられます。

初めて利用してから申し込むまでの日数ごとに、会員の人数が分かるグラフ

申し込んだ新しい会員135人のうち、初めて利用した日に申し込んだのは28人。8日以上たってから申し込んだ会員が6割を超える(88人)。

このグラフの数え方

  • 対象:2026年4〜9月に登録し、1回以上利用した、退会していない会員(276人)
  • 日数:初めてログインしてページを閲覧した日から、最初にフォームを送信した日まで
  • 「まだ申し込んでいない」:9月30日までに一度も申し込んでいない会員
  • 言えないこと:9月に登録した会員は、申し込むまでの時間がまだ短いので、「まだ申し込んでいない」に入りやすい

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

これが分かると

  • 新しい会員への案内を、登録の直後だけでなく、1か月ほど続けて送る根拠になります。
  • 申し込みにつながるまでの日数を目安に、登録した月の成果を早く決めつけずに済みます。
  • まだ申し込んでいない会員に、何日目に声をかけるかを決められます。

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

試してみる

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

集計SQL件数と割合だけを出します
with fv as (
  select member_id, min(accessed_at) as first_visit
  from access_log
  where member_id is not null
    and accessed_at < '2026-10-01'
  group by member_id
),
fs as (
  select member_id, min(submitted_at) as first_submit
  from form_submission
  where submitted_at < '2026-10-01'
  group by member_id
)
select case
         when fs.member_id is null then 'まだ申し込んでいない'
         when fs.first_submit::date - fv.first_visit::date = 0 then '当日'
         when fs.first_submit::date - fv.first_visit::date <= 7 then '1〜7日'
         when fs.first_submit::date - fv.first_visit::date <= 30 then '8〜30日'
         when fs.first_submit::date - fv.first_visit::date <= 60 then '31〜60日'
         else '61日以上'
       end as days_to_apply,
       count(*) as members
from member m
join fv on fv.member_id = m.member_id
left join fs on fs.member_id = m.member_id
where m.registered_at >= '2026-04-01' and m.registered_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
  and m.withdrawn_at is null
group by 1
order by min(coalesce(fs.first_submit::date - fv.first_visit::date, 9999));
AIプロンプト集計結果を貼るだけです
次の表は、会員サイトに期間中に登録した会員を、初めて利用した日から最初に申し込んだ日までの日数で分けた集計です。
days_to_apply=初めて利用してから最初に申し込むまでの日数(「まだ申し込んでいない」を含む)、members=会員数(退会者を除く)です。
個人を特定できる列は含めていません。

1. days_to_apply ごとの members を棒グラフにして、画像で描いてください。申し込んだ会員だけの中で、各区分の割合を添えてください。
2. 次の点を読み取って、3行程度で教えてください。
   ・初めて利用した日に申し込む会員は、申し込んだ会員の何割か
   ・申し込むまでに時間がかかる会員は、どれくらいいるか
   ・新しい会員への案内は、登録してからどれくらいの期間続けるべきか

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

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

使う表: member(会員)/access_log(アクセスログ)/form_submission(フォーム送信) (表の形は準備編)

試せなかったら

アクセスログとフォームの送信記録が、会員IDでつながっていないと、この問いには答えられません。
申し込みの件数は分かっても、「その人が初めて利用したのはいつか」が分からず、申し込むまでの日数を数えられないからです。

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

次に読む

会員ログの活用法 一覧へ