行銷訊息

本文件說明如何向用戶要求傳送行銷訊息的權限、傳送要求的具體規定和限制,以及如何建立和傳送行銷訊息權限要求。

傳送訊息的頻率

從 2023 年 1 月 31 日開始,notification_messages_frequency 已停用,傳送行銷訊息的選擇接收要求時,不再需要輸入傳送訊息的頻率。

  • 仍支援在 2023 年 1 月 31 日之前建立的每週和每月頻率的通知權杖。這些權杖的訊息頻率將保持不變,且訊息選擇接收 Webhook 通知將傳回 notification_messages_frequency

權杖到期和重新選擇接收

從 2023 年 8 月 10 日開始,通知權杖將不再過期。系統也將不再傳送重新選擇接收要求和選擇停止接收提醒。

總覽

行銷訊息允許 Facebook 粉絲專頁或 Instagram 專業帳號在標準訊息期間之外向授予您權限的用戶傳送訊息。行銷訊息允許您與對您或您的業務感興趣的用戶建立關係。

行銷訊息是新的選用高階功能,我們打算未來將針對此功能進行收費。目前,我們向透過 WhatsApp Business API 傳送訊息的企業收取費用,並聽取顧客意見回饋作為定價模式決策的參考。若免費試用有任何變更,我們將提前通知顧客和合作夥伴。

必備條件

  • 使用行銷訊息或其他 Messenger 開放平台功能時,必須遵守所有適用的開發商政策

  • 您只能在標準訊息期間內,向用戶發送要求,讓用戶選擇是否願意接收行銷訊息。用戶選擇接收行銷訊息的動作並不會開啟標準訊息期間

  • 您的應用程式和/或所提供的訊息體驗不得收到過多來自用戶的負面意見回饋。如果我們判斷您應用程式的訊息體驗收到過多來自用戶的負面意見回饋,訊息功能可能會受到限制或遭到移除

  • 您不得使用行銷訊息(包括選擇接收要求)發送垃圾訊息給用戶。這包括向相同的用戶頻繁發送重複的選擇接收要求和我們開發商政策所定義的其他類型垃圾訊息

  • 您必須遵守我們針對 Messenger 開放平台和行銷訊息功能所設的限制,以維護我們為您提供的服務範圍

限制

  • 您每週只能針對同一個特定標題,傳送一次選擇接收要求給同一位用戶,包括「最新消息和促銷活動」的預設值。
  • 請勿重複傳送選擇接收要求給用戶。重複的選擇接收要求定義為,來自 Facebook 粉絲專頁的通知具有相同的 title,或來自 Instagram 專業帳號的通知具有相同的 titleimage_url
  • 您只能在標準訊息期間內傳送選擇接收要求
  • 若用戶選擇接收行銷訊息,並不會因為這項操作而開始標準訊息期間
  • 您只能看到用戶是否選擇接收行銷訊息,但看不到待處理的選擇接收要求的狀態
  • 若用戶選擇停止接收行銷訊息,系統就不會再將您的通知傳送給對方,而且您會收到錯誤訊息
  • 用戶可以封鎖、關閉通知,也可以檢舉您傳送的訊息
  • 對於從 Instagram 專業帳號傳送的行銷訊息,通常每個用戶在 7 天內最多可以傳送 10 個不同標題的選擇接收要求。次要限制是一天內可以向每位用戶發送最多 5 個選擇接收要求。但是在傳送之前,您應該考量用戶是否可能會覺得每項選擇接收要求與他們相關且有價值。

由於我們持續努力提供最佳的用戶和商家體驗,這些要求和限制可能會有所變動。

最佳作法

您應該傳送具相關性、有價值的行銷訊息給用戶,以創造高品質的用戶體驗,作法如下:

  • 您的選擇接收要求(包括標題和圖像)包含用戶可能預期會收到的行銷訊息類型,例如訂單更新、商品推薦或特定優惠

  • 發送多個選擇接收要求給用戶時,每個選擇接收要求都應清楚說明用戶可以預期會收到的不同、特定類型的行銷訊息

行銷訊息應具相關性,並針對用戶可能覺得有價值的使用案例量身定做。

用戶可針對您提供的訊息體驗給予意見回饋(包括封鎖您發送的訊息),這可能會導致您使用行銷訊息時會受到限制。您應該定期檢視所發送的選擇接收要求和行銷訊息,查看是否符合上述最佳作法。

傳送訊息的頻率

適用於 2023 年 2 月 2 日之前建立的通知訊息權杖。

  • 用戶選擇接收後,您可以根據用戶選擇接收時所選取的頻率,依照每日每週每月的頻率傳送訊息給用戶。

要求傳送行銷訊息的權限

用戶必須授予權限、選擇接收來自您 Facebook 粉絲專頁或 Instagram 專業帳號的行銷訊息。Messenger 開放平台提供多種選擇接收的方式。您可以在下列訊息體驗中建立選擇接收要求:

選擇接收要求範例

若要傳送行銷訊息選擇接收要求,請傳送 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 物件,才能傳送行銷訊息選擇接收要求。

屬性說明

type

列舉 { template }

必要項目。值必須為 template

payload

物件

行銷訊息的內容,包含用於此行銷訊息選擇接收要求的範本類型、標題、傳送訊息頻率、訊息選項等等

elements
陣列

輪播廣告的必要項目。陣列,包含說明選擇接收項目的元素物件。每個元素物件皆必須包含 payloadnotification_messages_frequency,且可包含自訂的 titleimage_url,和 notification_messages_reoptin。支援最少 1 個、最多 5 個元素。

image_aspect_ratio
列舉 { HORIZONTAL, SQUARE }

圖像的長寬比。

  • SQUARE – 呈現正方形圖像(1:1)。如有需要會裁切圖像
  • HORIZONTAL – 呈現橫向圖像(1.91:1)。如有需要會裁切圖像
image_url
字串

顯示在範本中的圖像網址

notification_messages_frequency
列舉 { DAILY, WEEKLY, MONTHLY }

對於 2023 年 2 月 2 日之後建立的權杖已停用。預設值為 DAILY。此行銷訊息選擇接收要求的傳送訊息頻率。

  • DAILY – 選擇每 24 小時接收一次通知
  • WEEKLY – 選擇每 7 天接收一次通知
  • MONTHLY – 選擇每 1 個月接收一次通知
notification_messages_cta_text
列舉 { ALLOW, GET, GET_UPDATES, OPT_IN, SIGN_UP }

顯示在行動呼籲按鈕上的文字

  • ALLOW – 將選擇接收訊息按鈕文字設為「允許傳送訊息」
  • GET – 將選擇接收訊息按鈕文字設為「取得訊息」
  • GET_UPDATES – 將選擇接收訊息按鈕文字設為「取得更新」,這也是未設定 notification_messages_cta_text 時的預設值
  • OPT_IN – 將選擇接收訊息按鈕文字設為「選擇接收訊息」
  • SIGN_UP – 將選擇接收訊息按鈕文字設為「訂閱以接收訊息」
notification_messages_timezone
字串

接收訊息之用戶的時區

payload
字串

必要項目。行銷訊息的類型,例如此行銷訊息選擇接收要求的促銷活動宣傳內容或產品上市宣傳內容

template_type
列舉 { notification_messages }

必要項目。值必須為 notification_messages

title
字串

要顯示在範本中的標題,不可超過 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 日之前建立的每週或每月頻率的通知訊息權杖。

系統會按照每種定期頻率產生通知訊息權杖。例如,如果用戶選擇接收每日和每週行銷訊息,就會分別產生兩個通知訊息權杖。如果用戶選擇接收每日、每週和每月行銷訊息,則會分別產生三個通知訊息權杖。

行銷訊息頻率說明

每週

每個日曆週您只能發送一則訊息。一週是指在粉絲專頁設定的時區中,從週一上午 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 呼叫會依應用程式的速限計算。

傳送行銷訊息

準備工作

必備資料:

  • 已經選擇接收通知之用戶的通知訊息權杖
  • 商家 Facebook 粉絲專頁的編號
  • 向可在粉絲專頁執行 MESSAGING 任務之用戶要求的粉絲專頁存取權杖
  • 使用「Facebook 登入」的 pages_messaging 權限
  • 要包含在行銷訊息中的任何素材
  • 應用程式的 messaging_referrals Webhook 訂閱

若要傳送行銷訊息,請傳送 POST 要求至 /PAGE-ID/messages 端點,並在訊息附件中加入收件人的 NOTIFICATION-MESSAGES-TOKEN 值和訊息資訊。

限制

  • 每天只能就每個通知訊息權杖傳送一則訊息。如果您要傳送多則訊息,請務必將後續訊息延遲 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:確認測試對象點擊對話中的選擇接收訊息按鈕,例如接收 50% 折扣優惠訊息
  • 步驟 3:傳送第一則行銷訊息給測試對象
  • 步驟 4:在第一則行銷訊息之後立即傳送另一則行銷訊息,並將 developer_action 參數設為 ENABLE_FOLLOWUP_MESSAGE
  • 步驟 5:傳送另一則行銷訊息給測試對象,這是您的測試訊息。

要求範例

格式化以方便讀取。
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

後續步驟

另請參閱

開發人員支援