FirebaseとSendGridでメルマガサービスを作る時の注意!

記事
IT・テクノロジー

FirebaseとSendGridでメルマガサービスを作る時の注意!

FirebaseとSendGridを利用してメルマガ(ニュースレター)を配信するサービスは意外に簡単に実現できます。その際気を付ける点にサポートされているAPIがどこからSendGridのサービスを利用するかで変わってくることです。
日本では構造計画研究所がサービスを提供しています。
私は現在海外在住なので本家本元のSendGridからサービスを受けています。
ところが、この2つのサービスSendGridと言っても微妙に違う部分があって同じではありません。

どんなところが違うか?

まずは、利用プランから見てみるとどちらも無料プランがありますが、
無料プランの内容も少し違います

有料プランになると余り差がなくなります。 マーケティング機能は、アメリカのプランの場合は基本プランの料金に含まれているようですが、構造計画研究所のプランはリストの登録人数で料金が変わってくるようです。登録数が2000件以下の場合は無料で利用できるようですが、これを超えると超過分に10,000件単位で1,300円の料金が毎月発生するようです。

機能上の違いは?

機能上の大きな違いは、利用できるAPIが一部違うことです。 料金も一つのポイントだと思いますが、機能の方もサービスを実装するうえでは重要なポイントになります。
基本的には、マーケティング機能に関連したAPIが違います
* アメリカのSendGrid:New Marketing Campagins
* 構造計画研究所:Legacy Marketing Campagins
という大きな違いがあります。どちらも機能的には同じような物をサポートしています。 実際の機能的な実装では大きな問題はないと思います。しかし、不明確な点は将来的にいつNew Marketing Campaginに切り替えるのかどうかは現時点ではわかりません。そのあたりが長期的にサービスを提供する場合に迷う点です。
実装の方は、どちらも利用したことがあります。どちらも一長一短で良い部分とそれ以外の部分を合わせ持っている感じのため判断には迷います。
New Campaginの方は、送付先の登録の際の個人のプロフィールの種類が多く、実際には利用しないような項目が多いように思います。一方で、Legacy Campaginの方は、基本はE-Mailと名前で、必要に応じてカスタムフィールドを追加することで対応するような仕組みになっています。 New Campaiginでもカスタムフィールドは使えますが、Legacy CampaginのAPIの方が使いやすいと感じました。
全体としては、Legacy Campaginの方が必要な機能が全てサポートされていると思います。New Campaignの方はいくつか必要な機能が抜けている部分があるように思います。例えば、送信者の登録のAPIはありますが、登録した送信者のリストを取得するAPIはありません。最近は確認していないので最新の状況は分からない部分もありますが、以前はアメリカのサービスでは、Legacy Campaginの機能で使えないものもあってFirebaseのデータベースで足りない部分を補うような形で実装しました。

どちらを使うのがよいか?

個人的な見解を書くと、日本で利用する場合は構造計画研究所のサービスを利用して、Legacy Campaginを利用する方がお勧めです。理由はいくつかあります。
利用料金が円建(日本にいる人から考えると為替リスクがなく、毎月定額)
必要な機能が揃っている
サービスのレスポンスがアメリカのサービスより良いと思います

ドキュメントには注意を!

構造計画研究所がサポートを提供しているので日本語のドキュメントも提供されていて便利です。 ただし、よく見ると、ドキュメントの内容がアメリカの英語のドキュメントと違っている部分もあって、混乱する場合も多くなっています。基本的にサービス自体はアメリカのSendGridのサービスを利用しているはずなので、機能に違いはないはずですが、どちらのドキュメントにも間違いがあるようです。
実際に試しながら実装する必要があるかと思います。特にSendGridに送付するデータの誤りに関するレスポンスは不明確な部分も多く、実際に実験しながら実装する必要があると思います。
(例)エラーのケース エラーの場合、レスポンスのデータに「error」のタグが含まれますが、正常レスポンスに「空」の「error」タグが含まれている場合と、正常レスポンスの場合は「error」が含まれない場合もあります。判別の為には別のタグのデータ「error_count」をチェックして、この値が「0」の場合は正常として扱うなどの処理が必要になる場合もあります。
(例)通所のメッセージ送信時にメッセージのID これは別の記事でも紹介していますが、通常メッセージを送った際のメッセージIDはメッセージを送った時の応答から抜き出して保存する必要があります。このIDがないとメッセージの追跡時にメッセージの特定ができません。さらに、このメッセージIDは送信時のSendGridからのレスポンスのボディ(body)には含まれておらず、ヘッダーから抜き出す必要があります。これもドキュメントにははっきり書かれておらず、検索して探さないとわかりませんでした。
細かい点をきちんと処理しようと思うと、実際の返答を実際に見て処理をしないと処理が抜ける可能性もあります。

まとめ

SendGridとFirebaseを利用してメルマガ(ニュースレター)のサービスを作る場合、SendGridのサービスをどこから受けるかは事前に検討して決める必要があります。 利用できるAPIなども異なっています。
日本で利用する場合は、お勧めは構造計画研究所からのサービスを受ける方が開発のサポートを含めて便利だと思います。ドキュメントに関しては完全にはカバーされていないので実際の実装時にはSendGridの応答を見ながら最終調整する必要があります。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す