Event Webhookのすすめ

Event Webhookのすすめ

1.Event Webhook機能とは?

「過去のイベントデータを調べてもらえませんか?」

弊社サポートチームでは、このようなお問い合わせをよくいただきます。イベントデータはSendGridを使う上で重要な情報であるものの、一定期間が経過するとActivity Feed上から削除されてしまうためです。実は、この問題はEvent Webhookという機能を使うことで解決できます。

今回は、Event Webhookを活用して「送り出したメールのその後」を知る方法をご紹介します。

2.イベントデータを見てみよう

Event Webhookを有効にした状態でメールを送信すると、あらかじめ指定したPOST先URLに、以下のようなデータが送られてきます。

あらかじめ指定したPOST先URLに送られてくるデータ

データの意味を理解するために、基本的なパラメータをいくつか押さえておきましょう。

  • ”email”:メールの宛先
  • ”event”:発生したイベントの種類
  • ”timestamp”:イベントの発生時刻(UNIXタイムスタンプ)

上記のPOSTデータは、宛先test1@example.comに対するメール送信リクエストをSendGridが受理したこと(=Processedイベント)を示しています。このように、何らかのイベントが発生するたびに、イベントデータが自動で送られてきます。Processedイベントのあとに、メールが正常に宛先サーバへ到達すれば、Deliveredイベントのデータが送られてくるでしょう。

このデータを都度DBなどに保存するようにしておけば、いくらでもイベントデータを遡れるようになります。

バウンスが発生したときのPOSTデータの一例はこちらです。

バウンスが発生したときのPOSTデータの一例

バウンス(”event”: “bounce”)のデータには”type”パラメータが含まれており、恒久的なエラーであるハードバウンスは、「“type”: “bounce”」 として通知されます。POSTデータをよく見ると、Processedイベントのときと異なり、”reason”というパラメータがあります。“reason”には、宛先サーバが返したバウンスの理由が書かれており、どのような対処を行えばよいかのヒントが示されています。今回の例であれば「宛先メールアドレスが存在しない」旨が記載されています。

また、”sg_event_id”はイベントひとつひとつに付与される文字列、”sg_message_id” はSendGridから送られるメールひとつひとつに付与される識別用の文字列です。特に”sg_message_id”はEvent Webhookのデータ活用において重要なパラメータで、発生したイベントがどのメールに対して発生したものなのかを紐付けることが可能です。詳しくは「よくあるご質問」をご覧ください。

3. Event Webhookをもっと活用する

Event Webhookの活用例をいくつかご紹介します。

例1.特定のメールの開封者数をカウントする

例えば、自社サービスに会員登録したユーザに通知メールを送ると仮定します。この通知メールの開封者数を知るにはどうすればよいでしょうか?Event Webhookを使うと、以下のような手順で解決できます。

  1. 送信リクエスト時に、通知メールを識別するためのカスタム引数を指定する。
  2. Event WebhookのPOSTデータに、指定したカスタム引数が含まれるので、これを使って「通知メールに対して発生したイベントデータ」を抽出する。
  3. 抽出したイベントデータを基に、開封者数をカウントする。同じ宛先が重複しないように計上を行うと、ユニークな開封者数をカウントすることもできる。

Event Webhookのデータを使うと、このようにActivityでは集計しにくい数値や、Statsでは確認できない独自の分析などを行うことができます!

例2.イベントの発生状況を監視する

メール配信を管理したり、レピュテーションを維持するためには、イベントの発生状況を知ることが欠かせません。重要なイベントの例としては、Bounce(ハードバウンス)があります。ハードバウンスは恒久的なエラーであるため、SendGridはバウンスが発生した宛先には再送しません。宛先サーバから返された”reason”を確認して、バウンスした原因を取り除くようにしましょう。”reason”から対応方法がわからない場合は、宛先の管理者へ詳細を確認する必要があります。SendGridにはバウンス発生をメールで通知するForward Bounceという機能もありますが、宛先サーバの挙動によっては通知が発生しないこともありますので、Event Webhookを利用してバウンスを検知することを推奨します。

イベントを見て、メール送信で起こるトラブルの原因を切り分ける方法の詳細は、こちらの記事で解説しております。ぜひ参考にしてみてください。

例3.イベントの発生をトリガーに自動処理を行う

イベントの発生に伴い何らかの自動処理を行う場合にも、Event Webhookが欠かせません。例えば、次のような活用場面が考えられます。

  • メール送信が完了(Deliveredイベント)したら、自社システムにてステータスを変更する。
  • バウンス(Bounceイベント)が発生したら、自社システムにてアラートを発生させる。
  • メール受信者のアクション(OpenイベントやClickイベントの発生)をトリガーに、追加で案内メールを送信する。

4.さいごに

今回は、Event Webhookを使って解決できることをいくつかご紹介しました。Event Webhookについて、少しでも活用のイメージを持っていただければ幸いです。設定の詳細については、ドキュメントをご覧ください。過去の記事でPythonを使ったアプリケーションの実装例も紹介しています!

アーカイブ

メールを成功の原動力に

開発者にもマーケターにも信頼されているメールサービスを利用して、
時間の節約、スケーラビリティ、メール配信に関する専門知識を手に入れましょう。