マーケティングメッセージ

このドキュメントでは、マーケティングメッセージを送信するための許可を相手にリクエストする方法、リクエスト送信の具体的な要件や制限、マーケティングメッセージの許可を求めるリクエストの作成方法と送信方法を紹介します。

メッセージの頻度

2023年1月31日以降、notification_messages_frequencyは廃止され、マーケティングメッセージのオプトインリクエストを送信する際にメッセージの頻度は不要になります。

  • 2023年1月31日より前に作成されたお知らせトークンのうち、頻度が毎週および毎月のものは、引き続きサポートされます。それらのトークンのメッセージ頻度は変更されず、メッセージオプトインWebhook通知でnotification_messages_frequencyが返されます。

トークンの有効期限と再オプトイン

2023年8月10日より、通知トークンの有効期限はなくなります。再オプトインリクエストとオプトアウトリマインダーも送信されなくなります。

概要

マーケティングメッセージを利用すると、標準のメッセージ時間枠外にFacebookページまたはInstagramプロアカウントから、メッセージ送信を許可してくれた人に、送信することができます。マーケティングメッセージにより、あなたやあなたのビジネスに興味のある人との関係を築くことができます。

マーケティングメッセージはオプションとして提供されている新しいプレミアム機能で、将来的には有料での提供を予定しています。現在、事業者に有料で提供しているWhatsApp Business APIからのメッセージ送信に関するカスタマーフィードバックを参考にして、価格設定を進めています。無料トライアルに関して変更があれば、お客様とパートナーの皆様に早めにお知らせします。

要件

  • マーケティングメッセージやその他のMessengerプラットフォームの機能を利用するには、適用されるすべての開発者ポリシーに従う必要があります。

  • ユーザーにマーケティングメッセージをオプトインしてもらうリクエストを送信できるのは、標準メッセージ時間枠内に限られます。ユーザーがマーケティングメッセージをオプトインするアクションをしても、標準メッセージ時間枠は開始しません。

  • アプリやメッセージのエクスペリエンスに関して、ユーザーから否定的なフィードバックが多くならないように注意する必要があります。アプリのメッセージエクスペリエンスに関して、ユーザーからの否定的なフィードバックの割合が多すぎると判断されると、メッセージ機能が制限または無効にされることがあります。

  • マーケティングメッセージをスパムのように送信しないでください。オプトインリクエストについても同様です。これには、同じユーザーに同じ内容のオプトインリクエストを高頻度で送信する行為や、開発者ポリシーで定義されたその他のタイプのスパムを送信する行為が含まれます。

  • Metaが提供しているサービスの範囲を維持するため、Messengerプラットフォームとマーケティングメッセージの機能に設けられている制限事項を守ってください。

制限

  • 特定の同一トピックについて、1人のユーザーに対してオプトインリクエストを送ることができるのは1週間に1回だけです。それには「更新情報とキャンペーン」というデフォルト値も含まれます。
  • 重複したオプトインリクエストをユーザーに送信しないでください。重複したオプトインリクエストとは、Facebookページからの場合はtitleが同じお知らせ、Instagramプロアカウントからの場合はtitleimage_urlが同じお知らせを指します
  • オプトインリクエストを送信できるのは、通常のメッセージ時間枠の間だけです
  • 相手がマーケティングメッセージをオプトインしても、そのアクションによって標準メッセージ時間枠が開始されるわけではありません
  • 確認できるのは、ある人がマーケティングメッセージを受信することをオプトインしているかどうかだけであり、オプトインリクエストの承認待ちステータスであるかどうかを確認することはできません
  • ユーザーがマーケティングメッセージの受信を停止することを選択した場合、お知らせはそのユーザーに配信されなくなり、エラーが表示されます
  • 相手はメッセージをブロックまたはミュートにしたり、報告したりすることができます
  • Instagramプロアカウントから送信するマーケティングメッセージの場合、通常、7日間で、タイトルを変えてユーザーあたり最大10件のオプトインリクエストを送信できます。また、1人のユーザーに1日に送信できるオプトインリクエストは5件までです。ただし、送信前に、オプトインリクエストがユーザーにとって関連性が高く価値があるものかどうか検討するようにしてください。

Metaは常にユーザーやビジネスに最高のエクスペリエンスを提供するよう取り組んでいるので、上記の制限や要件は変更されることがあります。

ベストプラクティス

ユーザーにとって関連性が高く、価値のあるマーケティングメッセージを送信して、質の高いユーザーエクスペリエンスを提供するために、以下を行うことができます。

  • オプトインリクエストに、タイトルや画像を含め、ユーザーが受け取ることを期待できるマーケティングメッセージのタイプ(注文の更新情報、おすすめの製品、特定のクーポンなど)を含める

  • 1人のユーザーに複数のオプトインリクエストを送信する場合は、それぞれのオプトインリクエストで、ユーザーがどのタイプのマーケティングメッセージを受け取るかを明記する

マーケティングメッセージは、ユーザーにとって関連性の高い内容にし、ユースケースを参考にユーザーが価値を感じるようなものにしてください。

ユーザーは、メッセージをブロックするなどの方法でメッセージエクスペリエンスに関するフィードバックを提供でき、その結果、マーケティングメッセージの利用が制限される場合があります。オプトインリクエストとマーケティングメッセージは定期的に見直し、上述のベストプラクティスに従っているかどうかをチェックするようにしてください。

メッセージの頻度

2023年2月2日より前に作成されたお知らせメッセージトークンに適用されます。

  • オプトインした人に対しては、オプトインでその人が選択した頻度に基づいて、毎日毎週毎月メッセージを送信することができます。

マーケティングメッセージを送信するための許可をリクエストする

FacebookページまたはInstagramプロアカウントからのマーケティングメッセージを受け取るには、相手がアクセス許可を付与して、オプトインする必要があります。Messengerプラットフォームは、オプトインを取得するための複数の方法を提供しています。オプトインリクエストを次のようなメッセージエクスペリエンスに組み込むことができます。

  • Messenger誘導広告 - 広告がクリックされたとき
  • チェックボックスプラグイン – フォームのチェックボックスをオンにしてフォームが送信されたとき
  • m.meリンク – ウェブサイト、メール、ソーシャルメディア投稿などのm.meリンクがクリックされたとき
  • 非公開返信 – ビジネスのFacebookページに訪問者の投稿やコメントが公開されたとき
  • QRコード – QRコードがデジタルまたは印刷面でスキャンされたとき(m.meリンク対応)
  • Messengerプラグインに送信 - 事前定義されたCTAボタンまたはテキストを使用してスレッドが開始されたとき

オプトインリクエストの例

マーケティングメッセージのオプトインリクエストを送信するには、メッセージテンプレートのタイプをnotification_messagesに設定してPOSTリクエストを/PAGE-ID/messagesエンドポイントに送信します。ページIDは、自分のFacebookページのID、または自分のInstagramプロアカウントにリンクされているFacebookページのIDです。

注:FacebookページまたはInstagramプロアカウントからカルーセルを含むマーケティングメッセージを送信する場合は、titleパラメーターが必須です。

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"PSID-OR-IGSID"
  },
  "message":{
    "attachment":{
      "type":"template", 
      "payload":{
         "template_type":"notification_messages", 
         "notification_messages_timezone": "UTC",
         "title":"TITLE",
         "image_url":"IMAGE-URL",
         "payload": "ADDITIONAL-WEBHOOK-INFORMATION",
      }
    }
  }
}' "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/messages?access_token=PAGE-ACCESS-TOKEN"

成功すると、アプリは受信者のIDとメッセージIDが含まれた、以下のようなJSON応答を受け取ります。

{ 
        "recipient": {
          "id":"PSID-OR-IGSID",
          "message_id":"MESSAGE-ID",
}

メッセージ添付オブジェクトのリファレンス

マーケティングメッセージのオプトインリクエストで/PAGE-ID/messagesエンドポイントに送信するPOSTリクエストに、messageattachment JSONオブジェクトを含める必要があります。

プロパティ説明

type

enum { template }

必須。値はtemplateにする必要があります

payload

object

このマーケティングメッセージオプトインリクエストのマーケティングメッセージの内容(テンプレートタイプ、タイトル、メッセージ頻度、メッセージオプションなど)

elements
array

カルーセルの場合は必須。オプトインを記述する要素オブジェクトを含む配列。各elementオブジェクトには、payloadnotification_messages_frequencyが含まれていなければなりません。また、カスタムのtitleimage_urlnotification_messages_reoptinを含めることができます。最小で1個の要素、最大で5個の要素がサポートされています。

image_aspect_ratio
enum { HORIZONTAL, SQUARE }

画像のアスペクト比。

  • SQUARE – 正方形の画像(1:1)をレンダリングします。必要に応じて画像はトリミングされます
  • HORIZONTAL – 横長の画像(1.91:1)をレンダリングします。必要に応じて画像はトリミングされます
image_url
string

テンプレートに表示する画像のURL

notification_messages_frequency
enum { DAILY, WEEKLY, MONTHLY }

2023年2月2日より後に作成されたトークンでは廃止。デフォルトはDAILY。このマーケティングメッセージオプトインリクエストのメッセージの頻度。

  • DAILY – 24時間に1通のお知らせを受け取ることをオプトイン
  • WEEKLY – 7日に1通のお知らせを受け取ることをオプトイン
  • MONTHLY – 1か月に1通のお知らせを受け取ることをオプトイン
notification_messages_cta_text
enum { ALLOW, GET, GET_UPDATES, OPT_IN, SIGN_UP }

CTAボタンに表示されるテキスト

  • ALLOW – オプトインメッセージボタンのテキストを「メッセージを許可」に設定します
  • GET – オプトインメッセージボタンのテキストを「メッセージを受け取る」に設定します
  • GET_UPDATES – オプトインメッセージボタンのテキストを「アップデートを受け取る」に設定します。これは、notification_messages_cta_textが設定されていない場合のデフォルトになります
  • OPT_IN – オプトインメッセージボタンのテキストを「メッセージの受信をオプトイン」に設定します
  • SIGN_UP – オプトインメッセージボタンのテキストを「メッセージの受信を申し込む」に設定します
notification_messages_timezone
string

メッセージ受信側のタイムゾーン

payload
string

必須。このマーケティングメッセージオプトインリクエストのマーケティングメッセージのタイプ(宣伝用メッセージや製品リリースメッセージなど)

template_type
enum { notification_messages }

必須。値はnotification_messagesでなければなりません

title
string

テンプレートに表示するタイトルは65文字以下にしてください。値が割り当てられていない場合、デフォルトの「更新情報とキャンペーン」になります

お知らせメッセージトークン

オプトインされると、ビジネスはmessaging_optin Webhooks通知を受け取ります。そこに、お知らせメッセージトークン、およびメッセージタイトルやオプトインした人のタイムゾーンなどの情報が含まれています。お知らせメッセージトークンにより、マーケティングメッセージをその人に送信することが許可されます。

オプトインWebhook通知

{
  "sender": {
    "id": "PSID",
  },
  "recipient": {
    "id": "PAGE-ID",
  },
  "timestamp": "TIMESTAMP",
  "optin": {
    "type": "notification_messages", 
      "payload": "ADDITIONAL-WEBHOOK-INFORMATION",
      "notification_messages_token": "NOTIFICATION-MESSAGES-TOKEN", 
      "notification_messages_timezone": "TIMEZONE-ID",
      "token_expiry_timestamp": "TIMESTAMP",
      "user_token_status": "TOKEN-STATUS"  
      "notification_messages_status": "MESSAGE-STATUS", 
      "title": "TITLE-FOR-THE-NOTIFICATION"
    }
}

以下の内容は、2023年2月2日より前に作成されたお知らせメッセージトークンのうち、頻度が毎週または毎月であるものだけに適用されます。

お知らせメッセージトークンは、繰り返す頻度ごとに生成されます。例えば、ユーザーがマーケティングメッセージを受信する頻度として毎日と毎週を選んだ場合、2件のお知らせメッセージトークンが個別に生成されます。ユーザーが毎日、毎週、そして毎月のマーケティングメッセージをオプトインした場合は、3つの別個のお知らせメッセージトークンが生成されます。

マーケティングメッセージの頻度説明

毎週

暦上の1週間ごとに1通のメッセージのみ送信できます。1週間は、ページで設定されたタイムゾーンの毎週月曜日の午前0時から日曜日の午後11時59分までと定義されます。

毎月

暦上の1か月ごとに1通のメッセージのみ送信できます。月は、ページが設定したタイムゾーンの毎月1日の午前0時からその月の末日の午後11時59分までと定義されます

マーケティングメッセージを受信するオプトインを利用者が継続した場合、トークンの有効期限は延長されます。いつでもオプトアウトできます。

オプトインフォローアップメッセージ

マーケティングメッセージの受信をオプトインした人に対しては、最大3通のフォローアップメッセージを送信できます。それらのメッセージは、最初のフォローアップメッセージから2分以内に送信する必要があります。2番目と3番目のフォローアップメッセージは、250文字以下でなければなりません。これらのフォローアップメッセージは、標準の24時間メッセージ時間枠外に送信できます。

フォローアップメッセージを送信するには、お知らせメッセージトークンが含まれるrecipientオブジェクト、そしてフォローアップメッセージのテキストが含まれるmessageオブジェクトを使って、/PAGE-ID/messagesエンドポイントに対してPOSTリクエストを送信します。APIリクエストの構文は、3通のフォローアップメッセージのすべてについて同じです。

リクエストの例

読みやすくするためにフォーマットを調整しています。
curl -X POST -H "Content-Type: application/json" -d 
    '{ 
        "recipient":{ 
            "notification_messages_token":"NOTIFICATION-MESSAGE-TOKEN" 
        }, 
        "message":{ 
            "text":FOLLOWUP-MESSAGE-TEXT-HERE, 
        } 
    }' 
"https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/messages?access_token=TOKEN"

トークンのリストの取得

すべての有効なお知らせメッセージトークンを取得するには、GETリクエストを/PAGE-ID/notification_message_tokensエンドポイントに送信します。

リクエストの例

読みやすくするためにフォーマットを調整しています。
curl -i -X GET "https://graph.facebook.com/API-VERSION-NUMBER/PAGE-ID/notification_message_tokens
    ?access_token=PAGE-ACCESS-TOKEN"

デフォルトでは最大25個のトークンのリストが、更新時刻順に返されます。さらに多くのトークンを読み取るには、limitパラメーターを追加します。現在、返すことができるトークンは100個までです。afterパラメーターをページ分割に使用することができますが、beforeパラメーターは利用できません。

成功すると、アプリは以下のようなJSON応答を受け取ります。それには、トークン、受信者ID (Instagram-scoped IDまたはPage-scoped ID)、トークンの作成時刻、お知らせのタイトル、受信者に次のマーケティングメッセージを送信できる時刻が含まれています。

{
  "data":[
    {
      "notification_messages_token":"NOTIFICATION-MESSAGE-TOKEN-ID-1",
      "recipient_id":"PAGE-OR-INSTAGRAM-SCOPED-ID-1",
      "notification_messages_reoptin":"RE-OPT-IN-STATUS",
      "creation_timestamp":TIMESTAMP,
      "token_expiry_timestamp":UNIX-TIMESTAMP-EXPIRATION-DATE,
      "user_token_status":"TOKEN-STATUS",
      "topic_title":"NOTIFICATION-TITLE",
      "notification_messages_timezone":"TIMEZONE-ID",
      "next_eligible_time": TIMESTAMP
    },
...
    {
      "notification_messages_token":"NOTIFICATION-MESSAGE-TOKEN-ID-25",
      "recipient_id":"PAGE-OR-INSTAGRAM-SCOPED-ID-25",
      "notification_messages_reoptin":"RE-OPT-IN-STATUS",
      "creation_timestamp":TIMESTAMP,
      "token_expiry_timestamp":UNIX-TIMESTAMP-EXPIRATION-DATE,
      "user_token_status":"TOKEN-STATUS",
      "topic_title":"NOTIFICATION-TITLE",
      "notification_messages_timezone":"TIMEZONE-ID",
      "next_eligible_time": TIMESTAMP
    }
  ],
  "paging":{"cursors":{"before":"QVFIU...","after":"QVFIU..."},"next":"https:\/\/graph.facebook.com\/LATEST-API-VERSION\/PAGE-ID\/notification_message_tokens?access_token=PAGE-ACCESS-TOKEN"}
}

トークン情報を取得する

マーケティングメッセージに関する情報を収集するには、messaging_optin Webhooksを使用することをおすすめしています。しかし、トークンがnotification_messages_notification_messages_NOTIFICATION-MESSAGES-TOKENに付加されるトークンエンドポイントにGETリクエストを送信してトークン情報を取得することもできます。

リクエストの例

読みやすくするためにフォーマットを調整しています。
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/notification_messages_NOTIFICATION-MESSAGES-TOKEN
    ?access_token=PAGE-ACCESS-TOKEN"

成功すると、アプリは以下のようなJSON応答を受け取ります。それには、お知らせメッセージトークン、メッセージ受信者のID、その他のトークン情報が含まれています。そのお知らせメッセージトークンと受信者のIDを使って、マーケティングメッセージを送信します。

{
  "notification_messages_token": "NOTIFICATION-MESSAGES-TOKEN",
  "recipient_id": "PAGE-OR-INSTAGRAM-SCOPED-ID",
  "creation_timestamp": "TIMESTAMP",
  "token_expiry_timestamp": "TIMESTAMP",
  "user_token_status": "REFRESHED",
  "notification_messages_reoptin": "ENABLED",
  "notification_messages_timezone": "TIMEZONE-ID"
  "next_eligible_time": TIMESTAMP
}

これらのAPI呼び出しは、アプリのレート制限にカウントされます。

マーケティングメッセージを送信する

開始する前に

以下の情報が必要です。

  • お知らせの受信をオプトインした人のお知らせメッセージトークン
  • 自分のビジネスのFacebookページのID
  • ページでMESSAGINGタスクを実行できる人がリクエストした、ページアクセストークン
  • Facebookログインを使用した、pages_messagingの許可
  • マーケティングメッセージに含めるアセット(ある場合)
  • アプリのmessaging_referrals Webhookサブスクリプション

マーケティングメッセージを送信するには、受信者のNOTIFICATION-MESSAGES-TOKEN値、およびmessageのattachmentにメッセージ情報を入れて、POSTリクエストを/PAGE-ID/messagesエンドポイントに送信します。

制限

  • お知らせメッセージトークンごとに、1日に1つのメッセージしか送信できません。複数のメッセージを送信する場合は、後続のメッセージを24時間遅らせるようにしてください。そうしないと、エラーが送信されます。(オプトインフォローアップメッセージには適用されません。)

推奨事項

  • マーケティングメッセージを送信する際には、適切な時間に受信者にメッセージが送信されるように、受信者のタイムゾーンを確認することを強くおすすめします。

リクエストの例

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "notification_messages_token": "NOTIFICATION-MESSAGES-TOKEN"
  },
  "message":{
    "attachment":{
      "type":"template",
      "payload":{
        "template_type":"generic",
        "elements":[
           {
            "title":"Welcome!",
            "image_url":"https://raw.githubusercontent.com/fbsamples/original-coast-clothing/main/public/styles/male-work.jpg",
            "subtitle":"We have the right hat for everyone.",
            "default_action": {
              "type": "web_url",
              "url": "https://www.originalcoastclothing.com/",
              "webview_height_ratio": "tall"
            },
            "buttons":[
              {
                "type":"web_url",
                "url":"https://www.originalcoastclothing.com/",
                "title":"View Website"
              },{
                "type":"postback",
                "title":"Start Chatting",
                "payload":"ADDITIONAL-WEBHOOK-INFORMATION"
              }              
            ]      
          }
        ]
      }
    }
  }
}' "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/messages?access_token=PAGE-ACCESS-TOKEN"

成功すると、アプリは次の応答を受け取ります。

{ 
  "recipient": "PAGE-OR-INSTAGRAM-SCOPED-ID",
  "message_id": "MESSAGE-ID"      
}

マーケティングメッセージをテストする

マーケティングメッセージのテストは、いつでも実行できます。

開始する前に

以下の情報が必要です。

  • お知らせを受け取る人(テスター)。これはアプリで役割を持つ人でなければなりません。

オプトインをテストする

マーケティングメッセージのテストは、以下のステップに従っていつでも実行できます。

  • ステップ1. マーケティングメッセージのオプトインテンプレートを使ってメッセージをテスターに送信します。
  • ステップ2. テスターがスレッドで、[半額セールのメッセージを受け取る]などのオプトインボタンをクリックします。
  • ステップ3. 初めてのマーケティングメッセージをテスターに送信する
  • ステップ4. developer_actionパラメーターをENABLE_FOLLOWUP_MESSAGEに設定し、最初のメッセージの直後に別のマーケティングメッセージを送信します。
  • ステップ5. テスターにマーケティングメッセージをもう1件送信します。これがテストメッセージとなります。

リクエストの例

読みやすくするためにフォーマットを調整しています。
curl -X POST "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/notification_messages_dev_support
    ?recipient={
        "notification_messages_token": "NOTIFICATION-MESSAGES-TOKEN"
    }
    &developer_action=ENABLE_FOLLOWUP_MESSAGE
    &access_token=PAGE-ACCESS-TOKEN"

成功すると、アプリは、successtrueに設定された以下のようなJSON応答を受け取ります。

{ "success": true }

再オプトインをテストするには、ステップ4でdeveloper_actionパラメーターをSEND_RE_OPTINに設定して、上記のステップを実行します。

次のステップ

参考情報

開発者サポート