(又稱為「定期通知」)
本文件說明如何向用戶要求傳送行銷訊息(又稱為「定期通知」)的權限、傳送要求時的特定規定和限制,以及如何建立和傳送行銷訊息權限要求。
Messenger 行銷訊息(又稱為「定期通知」)將於 2026 年 2 月 10 日停用。
自 2025 年 9 月 1 日起,行銷訊息(又稱為「定期通知」)會有以下限制:
自 2025 年 7 月 1 日起,全球合作夥伴都可以與新的 Messenger 行銷訊息 API 整合。合作夥伴和終端客戶應於 2025 年移轉到新的 Messenger 行銷訊息 API。
行銷訊息允許 Facebook 粉絲專頁或 Instagram 專業帳號在標準訊息期間之外向授予您權限的用戶傳送訊息。行銷訊息允許您與對您或您的業務感興趣的用戶建立關係。
行銷訊息是新的選用高階功能,我們打算未來將針對此功能進行收費。目前,我們向透過 WhatsApp Business API 傳送訊息的企業收取費用,並聽取顧客意見回饋作為定價模式決策的參考。若免費試用有任何變更,我們將提前通知顧客和合作夥伴。
使用行銷訊息或其他 Messenger 開放平台功能時,必須遵守所有適用的開發商政策
您只能在標準訊息期間內,向用戶發送要求,讓用戶選擇是否願意接收行銷訊息。用戶選擇接收行銷訊息的動作並不會開啟標準訊息期間
您的應用程式和/或所提供的訊息體驗不得收到過多來自用戶的負面意見回饋。如果我們判斷您應用程式的訊息體驗收到過多來自用戶的負面意見回饋,訊息功能可能會受到限制或遭到移除
您不得使用行銷訊息(包括選擇接收要求)發送垃圾訊息給用戶。這包括向相同的用戶頻繁發送重複的選擇接收要求和我們開發商政策所定義的其他類型垃圾訊息
您必須遵守我們針對 Messenger 開放平台和行銷訊息功能所設的限制,以維護我們為您提供的服務範圍
title,或來自 Instagram 專業帳號的通知具有相同的 title 和 image_url由於我們持續努力提供最佳的用戶和商家體驗,這些要求和限制可能會有所變動。
您應該傳送具相關性、有價值的行銷訊息給用戶,以創造高品質的用戶體驗,作法如下:
您的選擇接收要求(包括標題和圖像)包含用戶可能預期會收到的行銷訊息類型,例如訂單更新、商品推薦或特定優惠
發送多個選擇接收要求給用戶時,每個選擇接收要求都應清楚說明用戶可以預期會收到的不同、特定類型的行銷訊息
行銷訊息應具相關性,並針對用戶可能覺得有價值的使用案例量身定做。
用戶可針對您提供的訊息體驗給予意見回饋(包括封鎖您發送的訊息),這可能會導致您使用行銷訊息時會受到限制。您應該定期檢視所發送的選擇接收要求和行銷訊息,查看是否符合上述最佳作法。
subscription_token 有 24 小時的訊息發送冷卻期。這表示使用相同 subscription_token 發送的行銷訊息需要間隔 24 小時才能再次發送。
自 2025 年 9 月 1 日起,subscription_token 訊息發送冷卻期將從每 24 小時可傳送訊息給每位訂閱者一次,變更為每 48 小時可傳送一次。
適用於 2023 年 2 月 2 日之前建立的通知訊息權杖。
用戶必須授予權限、選擇接收來自您 Facebook 粉絲專頁或 Instagram 專業帳號的行銷訊息。Messenger 開放平台提供多種選擇接收的方式。您可以在下列訊息體驗中建立選擇接收要求:
– 當用戶點擊您的廣告時
– 當用戶點擊表單中的核取方塊並提交表單時
m.me 連結
– 當用戶點擊網站、電子郵件、社群媒體貼文等內容中的 m.me 連結時
– 當用戶發佈訪客貼文或留言至商家的 Facebook 粉絲專頁時
– 當用戶掃描您放在數位和實體平面上的 QR 碼時(「m.me 連結」技術支援)
– 當用戶使用預先定義的 CTA 按鈕或文字清單主動開始對話時
若要傳送行銷訊息選擇接收要求,請傳送 POST 要求至 /PAGE-ID/messages 端點,並將訊息範本類型設為 notification_messages。粉絲專頁編號為 Facebook 粉絲專頁或與 Instagram 專業帳號連結之 Facebook 粉絲專頁的編號。
注意:如果行銷訊息包含來自您的 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"成功後,應用程式將收到以下 JSON 回應,其中包含收件人的編號和訊息編號。
{
"recipient": {
"id":"PSID-OR-IGSID",
"message_id":"MESSAGE-ID",
}必須在傳送至 /PAGE-ID/messages 端點的 POST 要求中加入 messageattachment JSON 物件,才能傳送行銷訊息選擇接收要求。
| 屬性 | 說明 |
|---|---|
template } | 必要項目。值必須為 |
| 行銷訊息的內容,包含用於此行銷訊息選擇接收要求的範本類型、標題、傳送訊息頻率、訊息選項等等 |
elements陣列 | 輪播廣告的必要項目。陣列,包含說明選擇接收項目的元素物件。每個元素物件皆必須包含 |
image_aspect_ratio列舉 { HORIZONTAL, SQUARE } | 圖像的長寬比。
|
image_url字串 | 顯示在範本中的圖像網址 |
notification_messages_frequency列舉 { DAILY, WEEKLY, MONTHLY } | 對於 2023 年 2 月 2 日之後建立的權杖已停用。預設值為 DAILY。此行銷訊息選擇接收要求的傳送訊息頻率。
|
notification_messages_cta_text列舉 { ALLOW, GET, GET_UPDATES, OPT_IN, SIGN_UP } | 顯示在行動呼籲按鈕上的文字
|
notification_messages_timezone字串 | 接收訊息之用戶的時區 |
payload字串 | 必要項目。行銷訊息的類型,例如此行銷訊息選擇接收要求的促銷活動宣傳內容或產品上市宣傳內容 |
template_type列舉 { notification_messages } | 必要項目。值必須為 |
title字串 | 要顯示在範本中的標題,不可超過 65 個字元。如果未指派任何值,則該值預設為「最新消息和促銷活動」 |
用戶選擇接收訊息時,商家會收到 messaging_optin Webhooks 通知,內容包含通知訊息權杖,以及訊息標題、選擇接收訊息之用戶所在時區等資訊。通知訊息權杖可讓您傳送行銷訊息給用戶。
{
"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 日之前建立的每週或每月頻率的通知訊息權杖。
系統會按照每種定期頻率產生通知訊息權杖。例如,如果用戶選擇接收每日和每週行銷訊息,就會分別產生兩個通知訊息權杖。如果用戶選擇接收每日、每週和每月行銷訊息,則會分別產生三個通知訊息權杖。
| 行銷訊息頻率 | 說明 |
|---|---|
每週 | 每個日曆週您只能發送一則訊息。一週是指在粉絲專頁設定的時區中,從週一上午 12:00 開始到週日下午 11:59 結束。 |
每月 | 每個日曆月您只能發送一則訊息。一個月是指在粉絲專頁設定的時區中,從每月第一天上午 12:00 開始到每月最後一天下午 11:59 結束。 |
如果用戶選擇繼續接收行銷訊息,權杖到期日會展延。用戶隨時可以選擇退出。
用戶選擇接收行銷訊息後,您最多可以發送三則後續追蹤訊息。這些訊息必須在第一則後續追蹤訊息的兩分鐘內發送。第二則和第三則後續追蹤訊息不能超過 250 個字元。您可以在標準 24 小時訊息期間外發送這些後續追蹤訊息。
若要發送後續追蹤訊息,請使用包含通知訊息權杖的 recipient 物件和包含後續追蹤訊息文字的 message 物件發出 POST 要求至 /PAGE-ID/messages 端點。所有三個後續追蹤訊息的 API 要求的語法是相同的。
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 回應,其中包含權杖、接收者編號(Instagram 範圍編號或粉絲專頁範圍編號)、權杖建立的時間、通知的標題,以及您可以傳送下一則行銷訊息給該收件人的時間。
{
"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 Webhook 收集行銷訊息資訊,但若要取得權杖資訊,您可以傳送 GET 要求至權杖端點,您的權杖會附加在 notification_messages_、notification_messages_NOTIFICATION-MESSAGES-TOKEN 後面。
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/notification_messages_NOTIFICATION-MESSAGES-TOKEN
?access_token=PAGE-ACCESS-TOKEN"成功後,您的應用程式將收到以下 JSON 回應,其中包括通知訊息權杖、接收訊息的用戶編號,和其他權杖資訊。您將使用通知訊息權杖和收件人的編號發送行銷訊息。
{
"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 呼叫會依應用程式的速限計算。
必備項目:
MESSAGING 任務之用戶要求的粉絲專頁存取權杖pages_messaging 權限messaging_referrals Webhook 訂閱若要傳送行銷訊息,請傳送 POST 要求至 /PAGE-ID/messages 端點,並在訊息附件中加入收件人的 NOTIFICATION-MESSAGES-TOKEN 值和訊息資訊。
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"
}您隨時可以測試行銷訊息。
必備項目:
您隨時可以按照下列步驟測試行銷訊息。
developer_action 參數設為 ENABLE_FOLLOWUP_MESSAGE。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"成功後,您的應用程式將收到以下 JSON 回應,其中包含 success 設定為 true。
{ "success": true }若要測試重新選擇接收設定,請重複以上步驟,但將步驟 4 中的 developer_action 參數設為 SEND_RE_OPTIN。
,瞭解您可以傳送的各種訊息類型。
,以取得定期訊息可用欄位的詳細資訊。