Mailchimp
Mailchimpメール配信サービスとの統合を提供し、Drupal内からオーディエンス管理、購読フォーム、キャンペーン作成、行動イベントトラッキングを可能にします。
mailchimp
インストール
composer require 'drupal/mailchimp:^3.1'
composer require 'drupal/mailchimp:^2.2'
概要
Mailchimpモジュールは、Mailchimpメール配信サービスとの包括的な統合を提供します。自前のサーバーからメールを送信するツールは存在しますが、Mailchimpのような専用メールプロバイダーの洗練さと使いやすさには及びません。
コアモジュールは基本的な設定とAPI統合を提供し、機能とサイト機能性はサブモジュール群によって提供されます。これらのサブモジュールにより、匿名登録フォーム、Entityベースのオーディエンス購読、キャンペーンの作成と送信、マーケティングオートメーション用の行動イベントトラッキングが可能になります。
主な機能には、OAuth認証(推奨)またはAPIキー認証(非推奨)、無制限のオーディエンスサポート、マージフィールドマッピング、インタレストグループ、Connected Sites統合、リアルタイム同期用のWebhook処理、購読操作用のcronベースのバッチ処理が含まれます。
Features
- OAuth認証(推奨)またはAPIキー(非推奨)を使用したMailchimpとのAPI統合
- 無制限のMailchimpオーディエンス(メーリングリスト)をサポート
- 任意のオーディエンスの組み合わせに対してBlockまたはスタンドアロンページとして表示される匿名登録フォーム
- カスタムFieldタイプによるEntityベースのオーディエンス購読。購読ルールがEntityの権限とコントロールに従うことを可能にします
- UsersにMailchimp SubscriptionFieldを追加することで、登録時のユーザー購読が可能
- DrupalのEntityFieldの値をMailchimpのマージフィールドにマッピング
- マージフィールドとインタレストグループをサポートするスタンドアロンの購読・購読解除フォーム
- cronバッチ処理またはリアルタイム更新による購読管理
- Entityコンテンツを使用してDrupalから直接Mailchimpキャンペーンを作成・送信
- Mailchimpの自動キャンペーン用の行動イベントトラッキング
- Mailchimpからの購読変更をリアルタイムで同期するWebhook統合
- Mailchimp JavaScriptとポップアップフォームを埋め込むためのConnected Sites統合
- 登録フォーム用のGDPR同意チェックボックスサポート
- オートメーションワークフロー用のECA(Entity Control Actions)モジュールとの統合
- フォーム送信時にMailchimpイベントをトリガーするWebformハンドラー
Use Cases
ウェブサイト訪問者向けニュースレター購読
Mailchimp Signupサブモジュールを使用して匿名登録フォームを作成します。サイドバーやフッターにBlockとしてフォームを表示したり、/newsletterのようなスタンドアロンページとして表示できます。マージフィールドを設定して名前や好みなどの追加情報を収集し、興味グループを有効にして購読者がコンテンツカテゴリを選択できるようにします。コンプライアンスのためにGDPR同意チェックボックスを使用してください。
オーディエンス購読付きユーザー登録
Mailchimp AudiencesサブモジュールでUser EntityタイプにMailchimp Subscription Fieldを追加します。ユーザーは登録時に購読したり、プロフィールから購読を管理できます。ユーザープロフィールField(名前、場所など)をMailchimpマージフィールドにマッピングして、パーソナライズされたメールコンテンツを実現します。
ロールベースの自動購読
RulesまたはECA統合を使用して、ロールに基づいてユーザーを特定のオーディエンスに自動購読させます。Usersに非表示のMailchimp Subscription Fieldを作成し、特定のロールが割り当てられたときにメンバーを購読させる自動化ルールを設定します(例:プレミアムロール用のPremium Membersオーディエンス)。
Drupalコンテンツを使用したメールキャンペーン
Mailchimp Campaignサブモジュールを使用して、Drupalコンテンツを含むメールキャンペーンを作成します。Entity インポート機能を使用して、記事、製品、またはタイトルを持つ任意のEntityをキャンペーンテンプレートにインポートします。特定のView Modeを選択して、メールでのコンテンツの表示方法を制御します。
Eコマース向け行動ターゲティング
Mailchimp EventsサブモジュールをWebform統合と組み合わせて使用し、ユーザー行動を追跡します。Mailchimpで自動メールシーケンスをトリガーする「completed_purchase」や「abandoned_cart」などのイベントを作成します。パーソナライズされたフォローアップメールのために、注文詳細や製品情報をイベントプロパティとして渡します。
リアルタイム購読同期
DrupalをMailchimpと同期させるためにWebhookを設定します。ユーザーがMailchimpで直接購読解除やプロフィール更新を行った場合(例:メール設定リンク経由)、WebhookがDrupalのキャッシュされた購読データを更新し、正確な購読ステータス表示を保証します。
複数オーディエンス購読フォーム
複数のオーディエンスに同時に購読できる登録フォームを作成します。異なるニュースレタータイプ(例:ニュース、イベント、プロモーション)を持つ組織で、訪問者が受け取りたいコミュニケーションを選択できる場合に便利です。
ポップアップフォーム付きConnected Sites
Connected Sitesを有効にして、特定のページにMailchimpのJavaScriptを埋め込みます。これにより、Mailchimpでデザインし、ユーザー行動(ページ滞在時間、スクロール深度、離脱意図)に基づいてトリガーできるMailchimpのポップアップ購読フォームを使用できます。
Tips
- APIキーではなくOAuth認証を使用してください - APIキー認証は非推奨であり、OAuthの方がセキュリティが向上します
- ユーザーがMailchimpで直接購読を変更した場合にDrupalを同期させるためにWebhookを設定してください
- 多くの購読者がいるサイトではタイムアウト問題を避けるためにバッチ処理を使用してください。ただし、変更はcron実行まで反映されないことに注意してください
- Connected Sites機能を使用すると、Drupalフォーム設定なしでMailchimpのポップアップフォームを使用できます
- キャンペーン作成時は、保存前に「Preview content」ボタンでEntityトークンが正しくレンダリングされることを確認してください
- 興味グループはタグよりも詳細な購読者設定を提供します - 購読者向けの選択肢にはグループを、内部整理にはタグを使用してください
- ダブルオプトイン設定はリスト品質の維持に役立ち、有効なメールアドレスを確認することで配信性を向上させることができます
- Entity FieldをマージフィールドにマッピングしてMailchimpキャンペーンで*|FNAME|*などのマージタグを使用したパーソナライゼーションを可能にしてください
- Mailchimp Eventsのデバッグには、mailchimp_events_exampleサブモジュールを有効にしてイベントの作成と取得を手動でテストしてください
Technical Details
Admin Pages 9
/admin/config/services/mailchimp
認証方法、APIタイムアウト、Connected Sites、バッチ処理、Webhook設定を含むMailchimpのグローバル設定を行います。
/admin/config/services/mailchimp/oauth
MailchimpとのOAuth認証を設定・完了します。これは推奨される認証方法です。
/admin/config/services/mailchimp/lists
Drupalサイトと同期されたMailchimp Audienceを表示・管理します。各AudienceのWebhook設定を行います。
/admin/config/services/mailchimp/list_cache_clear
キャッシュされたAudienceデータをクリアして、Mailchimpから情報を更新します。
/admin/config/services/mailchimp/fields
Drupalサイトのエンティティタイプ全体で設定されているMailchimp Subscriptionフィールドをすべて表示します。Merge Variableのバッチ更新機能を提供します。
/admin/config/services/mailchimp/signup
Mailchimp Audience向けの匿名登録フォームを作成・管理します。フォームはBlockまたはスタンドアロンページとして表示できます。
/admin/config/services/mailchimp/signup/add
表示モード、Audience選択、mergeフィールド、インタレストグループ、GDPR設定を設定可能な新しいMailchimp登録フォームを作成します。
/admin/config/services/mailchimp/campaigns
Drupalから直接Mailchimpメールキャンペーンを作成、表示、編集、送信、管理します。
/admin/config/services/mailchimp/campaigns/add
Audience選択、テンプレート設定、DrupalのEntityコンテンツインポートを備えた新しいMailchimpキャンペーンを作成します。
権限 4
Hooks 7
hook_mailchimp_subscribe_success
オーディエンスへの購読が成功した際にアクションを実行します。
hook_mailchimp_unsubscribe_success
オーディエンスからの購読解除が成功した際にアクションを実行します。
hook_mailchimp_process_webhook
Mailchimp webhookの発火時にアクションを実行します。購読解除やプロフィール更新などのイベントでMailchimpがwebhook通知を送信した際に呼び出されます。
hook_mailchimp_lists_mergevars_alter
購読または更新操作時にMailchimpに送信される前のmergevarsを変更します。
hook_mailchimp_lists_interest_groups_alter
Mailchimpに送信される前のインタレストグループを変更します。
hook_mailchimp_campaign_alter
Mailchimpへの保存前にキャンペーンの受信者とテンプレートを変更します。
hook_mailchimp_campaign_content_alter
送信前にキャンペーンテンプレートとフィルタリングされたコンテンツを変更します。
Troubleshooting 8
Drupalキャッシュをクリアしてページをリロードしてください。モジュールはパフォーマンス向上のためにMailchimpデータをキャッシュしています。設定ページの「Refresh Audiences」ボタンやキャンペーンフォームの「Refresh current template」ボタンも使用できます。
キャンペーンが既に送信済みかどうか確認してください。送信済みキャンペーンはMailchimpでもDrupalでも編集できません。
Mailchimp Webhookには公開アクセス可能なURLが必要です。Mailchimpシステムはローカル開発環境に到達できません。Webhook テストにはngrokなどのトンネリングサービスを使用してローカルサイトを公開してください。
ブラウザでサイトのポップアップを有効にしてください。OAuth認証フローはMailchimpログイン用の新しいウィンドウを開きます。ブロックされると、認証が不完全な状態になる場合があります。
バッチ処理が有効な場合、購読変更はcron処理のためにキューに入れられます。変更は次のcron実行後に反映されます。即時更新が必要な場合は、設定でバッチ処理を無効にするか、cronを手動で実行してください。
Mailchimpアカウントで少なくとも1つのオーディエンスを作成していることを確認してください。「Reset Mailchimp Audience Cache」ページでオーディエンスキャッシュをクリアしてください。また、各Mailchimpオーディエンスは1つのSubscription Fieldにのみ割り当て可能です - オーディエンスが既に使用中の場合、他のFieldのオプションとして表示されません。
Subscription Field設定でEntity FieldがMailchimpマージフィールドに正しくマッピングされていることを確認してください。複数値Fieldは最初の値のみ同期されます。必須マージフィールドは必須または計算済みのEntity Fieldにマッピングする必要があります。
適切に定義された編集可能コンテンツエリアを持つカスタムHTMLテンプレートのみが完全にサポートされています。ドラッグアンドドロップテンプレートはDrupalから編集できません。Mailchimpでmc:editリージョンを持つカスタムHTMLテンプレートを作成してください。
Security Notes 6
- 「administer mailchimp」権限はAPI認証情報へのアクセスを許可するため、信頼できる管理者にのみ付与してください
- Webhookエンドポイントはハッシュベースの検証を使用します - Webhookハッシュを秘密に保ち、漏洩した場合は変更してください
- OAuthトークンはDrupalのstateシステムに保存されます - データベースとstate APIへの適切なアクセス制御を確保してください
- APIキー(使用する場合)はログやエラーメッセージに公開しないでください - モジュールはUIでそれらを隠蔽します
- GDPR同意チェックボックス機能はコンプライアンスに役立ちますが、組織は全体的なプライバシー慣行が要件を満たしていることを確認する必要があります
- Connected Sites JavaScriptは指定されたパスで実行されます - セキュリティとパフォーマンスのため、どのページに外部スクリプトを含めるか注意してください