mcpField
E
email-marketing

email-marketing

github.com/dengineproblemマーケティング・グロース78 回インストール
リポジトリ

email-marketing について

email-marketingは、メールマーケティングの戦略と実行を支援するスキルです。セグメント分け、自動化、到達率、テストを扱い、キャンペーンを運用するチーム向けです。

主な機能

  1. 01購読者リストの構築と分類
  2. 02カレンダーとライフサイクルの計画
  3. 03自動メールシーケンスの設計
  4. 04SPF、DKIM、DMARCの設定
  5. 05A/Bテストと指標分析

活用シーン

  1. 01ウェルカムやナーチャリングのメールを計画
  2. 02行動に基づくオーディエンス分類
  3. 03到達率とリストの衛生状態を改善
  4. 04件名やメール内容をテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dengineproblem/agents-monorepo --skill email-marketing

インストール後、Claude Code で/email-marketingを入力して読み込まれたか確認します。

詳細

メールマーケティングのエキスパート

メールマーケティングの戦略立案と実行に関する包括的な専門知識です。

中核となる能力

戦略
  • リスト構築とセグメンテーション
  • メール配信カレンダーの計画
  • ライフサイクルマーケティング
  • パーソナライゼーション戦略
  • A/B テストのフレームワーク
自動化
  • ウェルカムシーケンス
  • ナーチャリングキャンペーン
  • トリガーベースのメール
  • 再エンゲージメントのワークフロー
  • 呼び戻しシーケンス
配信到達性
  • 送信者レピュテーションの管理
  • 認証(SPF、DKIM、DMARC)
  • リストの衛生管理
  • スパムトラップの回避
  • ISP との関係管理

メールの種類

マーケティングメール
  • ニュースレター
  • プロモーションキャンペーン
  • 製品のお知らせ
  • イベントへの招待
  • コンテンツの配信
自動配信シーケンス
  • ウェルカムシリーズ
  • オンボーディングシーケンス
  • リードナーチャリング
  • カート放棄
  • 再エンゲージメント
  • 呼び戻し
トランザクションメール
  • 注文確認
  • 配送状況の更新
  • パスワードのリセット
  • アカウント通知

メール認証の設定

# SPF Record
v=spf1 include:_spf.google.com include:sendgrid.net ~all

# DKIM Record
selector._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..."

# DMARC Record
_dmarc.example.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

主な指標

指標ベンチマーク説明
開封率20-25%ユニーク開封数 / 配信数
クリック率2-5%ユニーククリック数 / 配信数
クリック開封率10-15%クリック数 / 開封数
配信停止率<0.5%配信停止数 / 配信数
バウンス率<2%バウンス数 / 送信数
スパム報告率<0.1%報告数 / 配信数
コンバージョン率変動コンバージョン数 / クリック数

セグメンテーション戦略

Behavioral Segmentation:
  - Purchase history
  - Email engagement
  - Website activity
  - Product preferences
  - Cart abandonment

Demographic Segmentation:
  - Location/timezone
  - Job title/industry
  - Company size
  - Age/gender

Lifecycle Stages:
  - New subscribers
  - Active customers
  - At-risk (declining engagement)
  - Churned (re-activation target)
  - VIP/high-value

自動化ワークフロー

ウェルカムシーケンス
Day 0 - Welcome Email:
  trigger: subscription_confirmed
  content: Brand introduction, expectations
  cta: Complete profile

Day 2 - Value Email:
  trigger: previous_opened OR time_delay
  content: Top content, quick wins
  cta: Explore resources

Day 5 - Social Proof:
  trigger: time_delay
  content: Customer stories, testimonials
  cta: See case studies

Day 7 - Soft CTA:
  trigger: time_delay
  content: Product introduction
  cta: Start free trial
カート放棄のワークフロー
Hour 1 - Reminder:
  trigger: cart_abandoned
  content: Items in cart reminder
  cta: Complete purchase

Hour 24 - Urgency:
  trigger: no_purchase
  content: Items may sell out
  cta: Secure your items

Hour 72 - Incentive:
  trigger: no_purchase
  content: Special discount offer
  cta: Get 10% off

A/B テストのフレームワーク

テストする要素
Subject Lines:
  - Length (short vs long)
  - Personalization
  - Emojis
  - Questions vs statements
  - Urgency words

Content:
  - Layout (single vs multi-column)
  - Image count and placement
  - CTA button color/text
  - Copy length
  - Personalization depth

Timing:
  - Send day
  - Send time
  - Timezone optimization
統計的有意性
import scipy.stats as stats

def calculate_significance(control_opens, control_sent,
                          variant_opens, variant_sent,
                          confidence=0.95):
    """Calculate if A/B test result is significant."""

    control_rate = control_opens / control_sent
    variant_rate = variant_opens / variant_sent

    # Pooled proportion
    pooled = (control_opens + variant_opens) / (control_sent + variant_sent)

    # Standard error
    se = (pooled * (1 - pooled) * (1/control_sent + 1/variant_sent)) ** 0.5

    # Z-score
    z = (variant_rate - control_rate) / se

    # P-value
    p_value = 2 * (1 - stats.norm.cdf(abs(z)))

    return {
        'control_rate': control_rate,
        'variant_rate': variant_rate,
        'lift': (variant_rate - control_rate) / control_rate * 100,
        'p_value': p_value,
        'significant': p_value < (1 - confidence)
    }

ベストプラクティス

件名
  • 50 文字未満にする
  • 好奇心や緊急性を喚起する
  • 適切な場合はパーソナライズする
  • 継続的に A/B テストを行う
  • スパムの引き金となる語句を避ける
メール本文
  • 明確な価値提案
  • 主要な CTA は 1 つにする
  • モバイルに最適化したレイアウト
  • 見出しを使って読みやすくする
  • パーソナライズ用トークン
  • 画像の代替テキスト
配信到達性
  • 定期的にリストを整理する(バウンスしたアドレスやエンゲージメントのない宛先を削除)
  • ドメインを認証する(SPF、DKIM、DMARC)
  • 一貫した送信量を維持する
  • 送信者レピュテーションを監視する
  • ダブルオプトインを使用する
  • 配信停止の要求に直ちに対応する
送信時間の最適化
def optimize_send_time(subscriber_data):
    """Analyze historical engagement to find optimal send times."""

    engagement_by_hour = {}

    for subscriber in subscriber_data:
        local_time = convert_to_local(subscriber['open_time'],
                                      subscriber['timezone'])
        hour = local_time.hour

        if hour not in engagement_by_hour:
            engagement_by_hour[hour] = {'opens': 0, 'total': 0}

        engagement_by_hour[hour]['opens'] += 1
        engagement_by_hour[hour]['total'] += 1

    # Calculate open rates by hour
    for hour, data in engagement_by_hour.items():
        data['rate'] = data['opens'] / data['total']

    # Find best hours
    sorted_hours = sorted(engagement_by_hour.items(),
                         key=lambda x: x[1]['rate'],
                         reverse=True)

    return sorted_hours[:3]  # Top 3 hours

リストの衛生管理

エンゲージメントスコアリング
-- Calculate subscriber engagement score
SELECT
    subscriber_id,
    email,
    COUNT(CASE WHEN event_type = 'open' THEN 1 END) as opens_30d,
    COUNT(CASE WHEN event_type = 'click' THEN 1 END) as clicks_30d,
    MAX(event_date) as last_activity,
    CASE
        WHEN COUNT(CASE WHEN event_type = 'open' THEN 1 END) >= 5 THEN 'highly_engaged'
        WHEN COUNT(CASE WHEN event_type = 'open' THEN 1 END) >= 2 THEN 'engaged'
        WHEN COUNT(CASE WHEN event_type = 'open' THEN 1 END) >= 1 THEN 'somewhat_engaged'
        ELSE 'unengaged'
    END as engagement_tier
FROM email_events
WHERE event_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY subscriber_id, email;
配信終了ポリシー
Re-engagement Campaign:
  trigger: no_opens_60_days
  sequence:
    - Day 0: "We miss you" email
    - Day 7: "Last chance" with offer
    - Day 14: Final warning

  action_after_sequence:
    if: no_engagement
    then: move_to_suppression_list

ツールの習熟度

ESP プラットフォーム
  • SMB: Klaviyo、Mailchimp、ConvertKit
  • ミッドマーケット: HubSpot、ActiveCampaign、Drip
  • エンタープライズ: Salesforce Marketing Cloud、Marketo、Braze
トランザクションメール
  • SendGrid、Postmark、Amazon SES、Mailgun
テストとプレビュー
  • Litmus、Email on Acid
アナリティクス
  • Google Analytics(UTM トラッキング)
  • ESP 標準のアナリティクス
  • カスタムデータウェアハウス

ベストプラクティス

  1. 許可に基づく運用 — 確認済みの購読者のみを対象にする
  2. セグメンテーション — 各セグメントに関連性の高いコンテンツを届ける
  3. テスト — 継続的に A/B テストを行う
  4. 自動化 — ライフサイクルメールを自動化する
  5. 配信到達性 — 送信者レピュテーションを監視する
  6. モバイルファースト — 開封の 60% 以上がモバイル端末

コメント