会員ログの活用法 第13回

何度もメールを開封するのに、一度もクリックしない会員

3回以上メールを開封した会員の半分は、一度もリンクを押していない。

よくある状況

メール配信の報告では、配信ごとの開封率とクリック率が並びます。開封率が保たれていれば、メールは読まれていると受け取られます。

ただ、配信ごとの率では、同じ会員が毎回どう反応しているかは分かりません。毎回開いているのに、一度もリンクを押さない会員がいます。件名には関心があるけれど、本文の案内が合っていないのかもしれません。

会員IDでメールの開封とクリックを会員ごとにまとめると、開いた回数ごとに、一度もクリックしていない会員を数えられます。

開封した回数ごとに、一度もクリックしていない会員の人数が分かるグラフ

3回以上開封した会員560人のうち、273人(49%)は一度もクリックしていない。開封した回数が多いほど、その割合は下がる。

このグラフの数え方

  • 対象:2026年4〜9月の12回の配信で、1回以上開封した会員
  • 「開封した回数」:開封した配信の数。同じ配信を何度開いても1回と数える
  • 「クリック」:メールの中のリンクを押したこと
  • 言えないこと:クリックしない会員が、メールの内容で用が足りているのか、関心がないのかは区別できない

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

これが分かると

  • 何度も開くのにクリックしない会員に、本文の案内を変えたメールを試せます。
  • 件名で開かせることと、本文でサイトに来てもらうことを、分けて見直せます。
  • 配信ごとの率ではなく、会員ごとの反応で配信の手応えを見られます。

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

試してみる

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

集計SQL件数と割合だけを出します
with x as (
  select member_id,
         count(distinct case when event_type = 'open' then campaign_id end) as opened,
         count(distinct case when event_type = 'click' then campaign_id end) as clicked
  from mail_event
  where event_at >= '2026-04-01' and event_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
  group by member_id
)
select case
         when opened <= 2 then '1〜2回'
         when opened <= 5 then '3〜5回'
         when opened <= 8 then '6〜8回'
         else '9回以上'
       end as opened_times,
       count(*) as members,
       sum(case when clicked = 0 then 1 else 0 end) as never_clicked
from x
where opened > 0
group by 1
order by 1;
AIプロンプト集計結果を貼るだけです
次の表は、会員向けメールについて、会員ごとに開いた回数とクリックした回数をまとめ、開いた回数で分けた集計です。
opened_times=期間中に開封した配信の数、members=会員数、never_clicked=そのうち一度もリンクを押していない会員数です。
個人を特定できる列は含めていません。

1. opened_times ごとに members と never_clicked を並べた棒グラフを、画像で描いてください。各区分に「一度もクリックしていない割合」を添えてください。
2. 次の点を読み取って、3行程度で教えてください。
   ・3回以上開いているのに一度もクリックしていない会員は、何人・何割か
   ・開く回数とクリックの関係に、傾向はあるか
   ・配信ごとの開封率とクリック率だけで、メールの手応えを判断してよいか

(ここに集計結果を貼る)
社内用SQL会員IDの一覧が出ます。社外のサービスやAIには貼らないでください
-- 社内用:会員IDの一覧が出ます。社外のサービスやAIには貼らないでください
select member_id,
       count(distinct case when event_type = 'open' then campaign_id end) as opened
from mail_event
where event_at >= '2026-04-01' and event_at < '2026-10-01'  -- 期間。実際には集計する期間に差し替える
group by member_id
having count(distinct case when event_type = 'open' then campaign_id end) >= 3
   and count(distinct case when event_type = 'click' then campaign_id end) = 0
order by opened desc;

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

使う表: mail_event(メール送信と反応) (表の形は準備編)

試せなかったら

メール配信のツールで、開封とクリックが会員ごとに記録されていないと、この問いには答えられません。
配信ごとの率しか見られない場合、「毎回開くのにクリックしない人」が誰なのか、何人いるのかが分からないからです。

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

次に読む

会員ログの活用法 一覧へ