なぜメールパーソナライゼーションか

動画サブスクサービスのCRM施策として、メールは依然として有効なチャネルだ。プッシュ通知より熟読率が高く、コンテンツの紹介に適している。しかし「全員に同じメール」を送ると開封率が下がり、最悪の場合は購読解除につながる。

M社(動画配信サービス、メールリスト12万件)では、ClaudeとPythonを組み合わせてメルマガのパーソナライゼーションを実装し、メール開封率を19%から31%に改善した。

どのように実装したか、ステップごとに紹介する。

パーソナライゼーションの設計

セグメントの定義

完全な個別最適化は計算コストが高いため、M社では最初にユーザーをセグメントに分けることにした。視聴履歴から以下の8セグメントを設定した。

  • アニメ中心層
  • 邦画・ドラマ中心層
  • 韓国コンテンツ中心層
  • 洋画・海外ドラマ中心層
  • スポーツ・ドキュメンタリー中心層
  • 新作中心(最新コンテンツを好む)層
  • ライブラリ探索型(旧作を掘り起こす)層
  • ライトユーザー(視聴頻度が低い)層

ユーザーを直近90日の視聴データからセグメントに分類するPythonスクリプトを作成し、週次で更新している。

メールのどこをパーソナライズするか

M社がパーソナライズしているのは以下の要素だ。

  • 件名:セグメントごとに強調するコンテンツの種類が違う
  • リード文(冒頭2〜3文):呼びかけのトーンと取り上げるコンテンツを変える
  • おすすめ作品セクション:視聴傾向に基づいた3〜5作品を選出
  • CTA(ボタンテキスト):「続きを見る」「新作をチェック」など文言を変える

Claude APIを使った実装

セグメント別メール文の生成

毎週月曜日に実行するバッチスクリプトが、以下の処理を行う。

  1. ユーザーをセグメントに分類
  2. 今週配信するコンテンツリストをデータベースから取得
  3. 各セグメント向けにClaude APIでメール文を生成
  4. 生成したメール文をメール配信ツール(SendGrid)に登録
  5. ユーザーのセグメントに応じてどのメール文を送るか振り分け

Claude APIへの依頼の例(アニメ中心層向け):

prompt = f"""
動画配信サービスの週次メールの件名とリード文を作成してください。
ターゲット:最近アニメを中心に視聴しているユーザー
今週の注目コンテンツ:{anime_titles}
メール目的:新作・続編アニメへの誘導
出力形式:
件名(25字以内):
リード文(80〜100字):
CTAテキスト(15字以内):
"""

8セグメント分の生成をループで実行する。1回のバッチ処理でClaude APIを8回呼び出すだけで、全セグメントのメール文が揃う。

より個別化したアプローチ:Top-Nユーザーへの1対1メール

全ユーザーへのセグメント別メールに加えて、M社では「高価値ユーザー上位5,000名」にはより個別化したメールも送っている。各ユーザーの視聴履歴をClaude APIに渡し、「このユーザーに最も響くコンテンツ推薦理由」を生成させる。

user_history_summary = f"最近視聴:{recent_titles}、完走作品:{completed_titles}"
prompt = f"""
以下の視聴履歴を持つユーザーへのおすすめコンテンツ「{recommended_title}」の
紹介文を40字以内で書いてください。
{user_history_summary}
"""

5,000名分のAPIコールは1回あたり約0.05円×5,000=250円程度で、週次で実行しても月1,000円程度のコストだ。

A/Bテストによる効果検証

パーソナライズメールの効果を検証するため、各セグメントの20%は従来の一斉メールを送るコントロール群として設定した。4週間の比較結果は以下の通りだ。

指標コントロール群パーソナライズ群
開封率19.2%31.1%
クリック率3.8%7.2%
クリック後の視聴継続率44%61%
購読解除率0.31%0.18%

開封率とクリック率の改善に加えて、購読解除率が下がっていることも重要な成果だ。関連性の高いコンテンツを届けることで「このメールは自分に関係ない」という感覚が減ったと考えられる。

運用上の注意点

HTMLメールの体裁は別途管理する

Claudeが生成するのはテキストコンテンツのみで、HTMLテンプレートのデザインは別途必要だ。M社ではSendGridのテンプレート機能を使い、動的コンテンツ(Claude生成の件名・文章)を差し込む形を取っている。

生成コンテンツの事前確認

全ユーザー分の生成コンテンツを担当者が1件ずつ確認するのは現実的ではないが、セグメント別の8件のメール文は毎週担当者が目を通している。不適切な表現や誤った情報が含まれていないか確認した上で配信する。

まとめ

OTTサービスのメールパーソナライゼーションは、セグメント設計と Claude APIを組み合わせることで、大きなコストをかけずに実装できる。開封率の改善は直接的な視聴増加に、購読解除率の低下は長期的なLTV向上につながる。まずセグメント別メールから始め、効果が確認できたら個別最適化へとステップアップする進め方が現実的だ。