REST API: Message Feedback

世界中へのテキスト・メッセージの配信は一筋縄ではいきません。 配信率は地域、携帯電話事業者、ユースケース、そして個々の会社によってさえ変化します。 配信経路の変更や通信キャリアー設定など、Twilioが調節できる要素は多岐に渡ります。 Twilioのバックエンドは自動化されたアルゴリズムと手動による調整を組み合わせて使用し、お客様方に可能な限りベストな配達率を確保しています。 弊社ではこれらの要素を日々微調整し、常に変化を続ける電信電話のエコシステムにキャッチアップしています。 弊社が行なっている構成変更が配達率を向上させていることの確認に使用する複数の情報源を持っていますが、信頼性において皆様方からの情報に勝るものはありません。 

Message Feedback APIでは、テキスト・メッセージの配信が成功をTwilioにリアルタイムで報告する手段をユーザーの皆様に提供します。 このフィードバック情報に基づいてTwilioは配信状況を把握し、グローバルなメッセージ配信網の変化に迅速に対応できるようになり、サービス全般においてもアカウント固有においても、メッセージの配信率を向上させることができます。 これはお客様のメッセージ到達率を理解する最良のツールのひとつであり、お客様に代わってそれを自動で最適化できるようになります。

メッセージの到達率を監視し、それを理解できるように、ご報告いただいたフィードバック情報をTwilioコンソール上で表示することができます。 フィードバック情報は15分ごとに収集され、Twilioにフィードバック情報が報告された場合のみ表示されます。

送信されたメッセージに起因する、追跡可能なエンドユーザーのアクションがある場合は、Message Feedback APIは便利です。 追跡可能なユーザーアクションの霊には、以下が含まれます:

  • SMS経由でパスコードを受け取り、それをWebサイトやAppに入力

  • ワンタイムパスワードの入力

  • 電話やSMSで、メッセージに返信

  • メッセージに含まれる一意なリンクをクリック

エンドユーザーが追跡可能なアクションを取ったら、メッセージが彼らに届いたことが保証されています。 この情報をTwilioに送信するだけで、後のことはTwilioが引き受けます。

APIの使い方

Twilioへのメッセージフィードバックの送信は、3つのステップからなります。

  1. メッセージの送信時、最初のHTTP POSTリクエスト内で ProvideFeedback=true パラメーターを含めることで、追跡可能なエンド・ユーザーのアクションが期待できることをTwilioに知らせてください。
  2. POSTレスポンスからMessage SIDを取得し保存してください。 後々必要になります。
  3. ユーザーによって期待されるアクションが実行された場合、Outcome=confirmed パラメーターを含むPOSTリクエストを Message Feedbackインスタンス・サブリソースに送信することでTwilioに知らせてください。 アクションがユーザーによってなされなかった場合は、何もPOSTしないようにします。

FeedbackはMessageインスタンス・リソースのサブ・リソースです。 これは、エンドユーザーによって報告されたメッセージ配達結果を示しています。

リソース URI

/2010-04-01/Accounts/{AccountSid}/Messages/{MessageSid}/Feedback

リソースのプロパティ

Message Feedback インスタンス・リソースには下記のプロパティーがあります。

プロパティ 説明
結果 unconfirmed または confirmed です。 最初のHTTP POSTProvideFeedback=true が指定された場合、この値の既定値は unconfirmed です。 メッセージの到着後にこの値を confirmed に更新するには、HTTP POSTリクエストを発行してください。

結果の値

下記は、 Outcome パラメーターの取りうる値です。

結果 説明
unconfirmed メッセージが、まだ To 電話番号に到着していません。 これは、メッセージ送信に失敗したか、あるいはいまだ保留状態である可能性があることに注意してください。 Message Feedback APIの目的においては、この両者は同義とみなされます。 最初のHTTP POSTProvideFeedback=true が含まれる場合には自動的に設定されるため、アプリケーションではこの値をPOSTしないでください。
confirmed メッセージが To 電話番号に到達しました。 メッセージの配信が遅れた場合でも、メッセージの受信が確認され次第この値をPOSTしてください。

HTTP GET

サポートしません。

HTTP POST

元来メッセージが ProvideFeedback=true をともなって送信された場合、Message Feedbackインスタンスの Outcome は既定で unconfirmed となります。 デバイスへのメッセージの到着が確認され次第、HTTP POSTをMessage Feedbackインスタンス・リソースに発行して Outcomeconfirmed に更新してください。

HTTP PUT

サポートしません。

HTTP DELETE

サポートしません。

ヘルパーライブラリーでのサポート

Message Feedback エンドポイントは次世代ヘルパーライブラリーでサポートされますが、旧ヘルパーライブラリーではサポートされません。

まだ次世代ヘルパーライブラリーを使用していない場合でも、直接RESTエンドポイントにPOSTリクエストを発行することで、Message Feedback API を使用できます。

使用例

メッセージの送信時に、ProvideFeedback パラメーターを 'true' に設定します。

curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/ACa9b8c7d6e5f43120a9b8c7d6e5f43120/Messages.json' \
--data-urlencode 'To=+18085551234'  \
--data-urlencode 'From=+16045559876'  \
--data-urlencode 'Body=Your verification code is: 249205' \
--data-urlencode 'ProvideFeedback=true'  \
-u ACa9b8c7d6e5f43120a9b8c7d6e5f43120:[AuthToken]

レスポンスに含まれるMessage SIDを保存します。

{"sid": "SM1f2e3d4c5b6a70891f2e3d4c5b6a7089", "date_created": "Thu, 14 Jul 2016 14:18:40 +0000", ...}

ユーザーがテキスト・メッセージを受信したら、Feedbackサブリソースに追加のPOSTリクエストを発行して、Outcome を 'confirmed' に設定します。

curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/ACa9b8c7d6e5f43120a9b8c7d6e5f43120/Messages/SM1f2e3d4c5b6a70891f2e3d4c5b6a7089/Feedback.json' \
--data-urlencode 'Outcome=confirmed'  \
-u ACa9b8c7d6e5f43120a9b8c7d6e5f43120:[AuthToken]