FirebaseとSendGridでメルマガサービスを送る準備

記事
IT・テクノロジー

FirebaseとSendGridでメルマガサービスを送る準備

FirebaeとSendGridを使ってメルマガ(ニュースレター)配信サービスを作る場合の詳細の続編です。 既に、メルマガ(ニュースレター)を受け取る為の登録のフォームの実装については説明しました。 この記事では実際に、メッセージを配信するための準備について解説します。
メッセージの送信方法は、どのSendGridのAPIを利用するかで変わってきます。
メッセージを送るには通常のE-Mailと似た送信方法(Mail SENDのAPI)とマーケティングメッセージ(Campagins/SingleSends)があります。多くの人に同時に送信できて、メッセージの追跡が簡単な方法がマーケティングメッセージです。この記事ではマーケティングメッセージを利用してメッセージを配信する方法について解説します。
マーケティングメッセージは2つのAPIがあって、サービスの提供をどこから受けるかで変わります。
* 本家アメリカのSendGridから直接サービスを受ける場合 ➞ New Markeging Campagin API
* 日本の構造計画研究所経由でサービスを受ける場合 ➞ Legacy Marketing Campagin API

になります。この記事では日本の構造計画研究所経由でサービスを受けることを前提に解説していきます。

利用するAPIを調べる

利用するAPIはLegary Marketing Campaign APIです。このAPIは送付先を登録したリストを使って配信できます。リストも、全ての登録者(All Contacts)から登録者をグループ分けでした、カスタムのリストを利用して送信することも可能です。(リストの管理の仕方については別途記事を書く予定です。)
日本とのドキュメントは構造計画研究所のSendGridのサイトにあります。
Web API v3 -> Marketing Campaigns -> campaigns API
で参照できます。本家アメリカのドキュメントは、もう少し詳しく記述されているのと、サンプルコードを生成する機能もついていて、APIを実際にWebから試すこともできるので便利です。日本語のドキュメントと合わせて利用すると便利です。

メッセージを送る手順

マーケティングキャンペーンのメッセージを送る手順は、一般のE-Mailベースのメッセージを送る場合とは少し違います。手順は
* キャンペーン(campagin)の作成
* キャンペーンの送信(送信予約)

の二段階になっています。キャンペーンを作成した後に一部の情報の変更(更新)も可能です。 また、送信も「すぐに送信」と「指定した日時に送信」、さらに「テスト送信が可能です」 送信日時を指定した場合は、指定日時の変更とキャンセルが可能です。
また送信後もキャンペーンの情報はSendGridのサーバーに残されていて、メッセージの控えとして利用できます。また、キャンペーンのIDを使ってメッセージの追跡情報も取得して利用が可能になります。

実装する機能は?

こうした機能をサポートするため、メッセージ関連で実装する機能は
* キャンペーンの作成
* キャンペーンの更新
* キャンペーンの削除
* キャンペーンの送信
* キャンペーンの送信予約
* キャンペーンの送信予約の変更
* キャンペーンの送信予約のキャンセル
* キャンペーンのテスト送信
* SendGridのキャンペーンのリストの取得

になります。個々の実装は簡単ですが、項目は多くなるので解説は個別に行います。
ドキュメントを見ると、キャンペーンの作成に「必須」なのは、タイトル(title)だけになっています。 しかし、ドキュメントの更新で指定できるのは
* タイトル(title)
* 件名(subject)
* カテゴリ(category)
* メッセージの内容(html_content/plain_content)

しかし送信時に、送付先のリストと送信者送信者の指定は必須なので、この情報はキャンペーンを作成するときに指定しておく必要があります。(リストだけでなく、セグメントの情報を利用する場合はセグメントを指定する必要があります) 登録の取り消しをする場合に個別のリストを使う場合もリストの指定はキャンペーン作成時にする必要があります。
このように、一連の操作でAPI間に依存関係がある場合があるので、実装の前に全体の処理の流れと必要な情報を把握しておくと、検証時の問題を最小限にする事ができます。

入力の間違いも最小限に!

サービスを作るうえで大切なのは利用者の使いやすさです。キャンペーン作成時に必要な入力項目を全てタイプして入力してもらうことは可能ですが、タイプミスが起こる可能性があります。そうした場合は、利用者側では完全に防ぐことが難しくなります。実装側ではエラーのチェックをする必要があります。 そうした事態をできるだけ避けるために、リストの中から選択できるようなインターフェース設計が重要です。
キャンペン作成時にリストから選択可能なのは
* 登録されている送信者
* 登録されている送付先リスト
* (セグメントを使用する場合は登録されているセグメントのリスト)
* (個別の登録取り消しリストを利用する場合は登録取り消しのリストの一覧)

当然こうした情報を取得するための実装も必要になります。
個別の送付先リストへの登録(紹介した送付先リストは一括登録のリストのみ)

* 送付先リストの取得
* セグメントの登録
* セグメントの取得
* 個別の登録取り消しリストの作成、削除、リストの取得

も実装する必要があります。この記事では実装をシンプルにするため幾つかの機能はサポートしないことにして解説する予定です。
* 送付先リストは全ての登録者のみ(個別のリストの管理機能が省けます)
* セグメントは使用しない(セグメントの管理機能が不要になります)
* 個別の取り消しリストは利用しない(個別の登録取り消しリストの管理は不良になります)

以上のように仮定すると必要なのは「登録送信者の管理機能」だけになります。

実装が必要な機能は?

以上の情報から、実装に必要な機能は
* 送付先リストの管理機能(作成、更新、削除、一覧の取得)
* マーケティングキャンペーンの機能(作成、更新、削除、送信、送信予約、予約更新、予約キャンセル、テスト、一覧の取得)

になります。

まとめ

シンプルなE-Mailベースのメッセージ送信に比べて、マーケティングキャンペーンのメッセージの送信は複雑です。 APIの仕様をよく理解したうえで必要な機能を実装する必要があります。
実装はやや複雑になりますが、リストで一括送信ができることに加えて、送信したメッセージの控えがSendGridのサーバーに残されて、メッセージの追跡もシンプルになります。実際にメルマガ(ニュースレター)を運用するにはより便利で価値のあるサービスになります。
今回リストした内容を元に実装の詳細を解説していく予定です。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら