会員ログの活用法 第20回
以前に申し込んだことのある会員は、申し込みページを開いたあと7割が申し込んでいる。初めての会員は5割。
講演会や資料請求の報告では、回ごとの申し込み件数が並びます。件数を増やすには、案内を広く届けることが大事に見えます。
ただ、申し込む会員の中には、以前にも申し込んだことのある会員がいます。一度申し込んで講演会に参加した会員は、次の案内にも応じやすいのかもしれません。そうだとすれば、案内の届け方も、申し込みページの作り方も変わってきます。
会員IDでアクセスログとフォームの送信記録をつなぐと、申し込みページを開いた会員を、以前に申し込んだことがあるかどうかで分けて、申し込んだ割合を比べられます。
申し込みの経験,申込ページを開いた(件),申し込んだ(件) これが初めて,868,429 以前に申し込んだことがある,546,385
このグラフの数え方
架空のサンプルデータで集計した例です。
ここに挙げた使い方は一例です。サンプルの数字は架空のもので、実際の結果や施策の効果を約束するものではありません。
ここから先は、システム担当者に渡してください。集計SQLで出た結果を、AIプロンプトと一緒にAIへ貼ると、上のようなグラフと読み取りが返ってきます。
with v as (
select a.member_id, a.content_id, min(a.accessed_at) as first_view
from access_log a
join content c on c.content_id = a.content_id
where c.content_type = '申込'
and a.member_id is not null
and a.accessed_at >= '2026-04-01' and a.accessed_at < '2026-10-01' -- 期間。実際には集計する期間に差し替える
group by a.member_id, a.content_id
)
select case
when exists (
select 1 from form_submission p
where p.member_id = v.member_id and p.submitted_at < v.first_view
) then '以前に申し込んだことがある'
else 'これが初めて'
end as history,
count(*) as viewed,
sum(case when exists (
select 1 from form_submission f
where f.member_id = v.member_id and f.content_id = v.content_id
and f.submitted_at >= v.first_view and f.submitted_at < '2026-10-01' -- 期間中に開いたあとの申し込みだけ
) then 1 else 0 end) as applied
from v
group by 1
order by 1;次の表は、会員サイトの申し込みページを開いた会員を、それより前に申し込んだことがあるかどうかで分けた集計です。
history=申し込みの経験、viewed=申し込みページを開いた数(会員×ページ)、applied=そのページで申し込んだ数です。
個人を特定できる列は含めていません。
1. history ごとに viewed と applied を並べた棒グラフを、画像で描いてください。それぞれに申し込んだ割合を添えてください。
2. 次の点を読み取って、3行程度で教えてください。
・申し込んだことのある会員と初めての会員で、申し込む割合はどれくらい違うか
・その違いは、案内の届け方にどう生かせるか
・初めての会員に申し込んでもらうには、何を見直すべきか
(ここに集計結果を貼る)-- 社内用:会員IDの一覧が出ます。社外のサービスやAIには貼らないでください
with v as (
select a.member_id, a.content_id, min(a.accessed_at) as first_view
from access_log a
join content c on c.content_id = a.content_id
where c.content_type = '申込'
and a.member_id is not null
and a.accessed_at >= '2026-04-01' and a.accessed_at < '2026-10-01' -- 期間。実際には集計する期間に差し替える
group by a.member_id, a.content_id
)
select v.member_id, c.title as entry_page, v.first_view
from v
join content c on c.content_id = v.content_id
where exists (
select 1 from form_submission p
where p.member_id = v.member_id and p.submitted_at < v.first_view
)
and not exists (
select 1 from form_submission f
where f.member_id = v.member_id and f.content_id = v.content_id
and f.submitted_at >= v.first_view and f.submitted_at < '2026-10-01'
)
order by c.title, v.first_view;SQLとプロンプトは、準備編の汎用テーブルを前提にした例です。実際のテーブル名・列名に合わせて書き換えてください。動作や結果を保証するものではありません。
使う表: content(コンテンツ)/access_log(アクセスログ)/form_submission(フォーム送信) (表の形は準備編)
フォームの送信記録とアクセスログが、会員IDでつながっていないと、この問いには答えられません。
申し込みが回ごとに別々に記録されていると、「前にも申し込んだ人か」が分からず、経験の有無で比べられないからです。
writeWiredでは、会員IDの付いたアクセスログとメール・フォームの記録が最初から同じ場所に揃っています。会員サイトCMSとしてのwriteWired