이 문서에서는 사용자에게 마케팅 메시지를 보내기 위한 권한을 요청하는 방법, 요청을 보내기 위한 구체적인 요구 사항과 제한, 마케팅 메시지 권한 요청을 만들고 보내는 방법을 안내합니다.
메시지 빈도
2023년 1월 31일부터 notification_messages_frequency
가 사용 중단되었으며, 마케팅 메시지에 대해 옵트인 요청을 보낼 때 더 이상 메시지 빈도가 필요하지 않습니다.
notification_messages_frequency
는 메시지 옵트인 Webhooks 알림에서 반환됩니다.토큰 만료 및 재옵트인
2023년 8월 10일부터 더 이상 알림 토큰이 만료되지 않습니다. 재옵트인 요청과 옵트아웃 알림도 더 이상 전송되지 않습니다.
마케팅 메시지를 사용하면 Facebook 페이지 또는 Instagram 프로페셔널 계정에서 해당 권한을 부여한 사용자에게 표준 메시지 전송 기간 외에 메시지를 전송할 수 있습니다. 마케팅 메시지를 사용하면 여러분 또는 여러분의 비즈니스에 관심이 있는 사용자와의 관계를 구축할 수 있습니다.
마케팅 메시지는 새롭게 선보이는 선택적인 프리미엄 기능으로, 향후 유료로 운영할 계획입니다. 현재는 WhatsApp Business API를 사용하여 메시지를 보내는 비즈니스에 요금을 청구하고 있으며, 가격 모델을 책정하기 위해 고객의 피드백을 경청하고 있습니다. 무료 체험에 변동이 있을 경우 충분한 기간을 두고 고객과 파트너에게 공지하겠습니다.
마케팅 메시지나 기타 Messenger 플랫폼 기능을 사용할 때 해당하는 모든 개발자 정책을 따라야 합니다.
표준 메시지 전송 기간 내에서만 사용자에게 마케팅 메시지에 옵트인할 것을 요청할 수 있습니다. 사용자가 마케팅 메시지를 옵트인하더라도 표준 메시지 전송 기간이 시작되지 않습니다.
앱 및/또는 메시지 경험에 대해 사용자들이 부정적인 피드백을 지나치게 많이 제출하지 않아야 합니다. 해당 앱의 메시지 경험에 대해 사용자들이 부정적인 피드백을 지나치게 많이 제출했다고 판단되는 경우 메시지 기능이 제한되거나 삭제될 수 있습니다.
옵트인 요청을 포함한 마케팅 메시지를 사용하여 사용자들에게 스팸성 메시지를 보내서는 안 됩니다. 여기에는 동일한 사용자에게 높은 빈도로 중복 옵트인 요청과 개발자 정책에 정의된 기타 유형의 스팸성 메시지를 보내는 행위가 포함됩니다.
Meta로부터 제공받는 서비스의 범위를 유지하려면 Messenger 플랫폼과 마케팅 메시지의 기능에 적용된 제한 사항을 준수해야 합니다.
title
을 갖거나 Instagram 프로페셔널 계정에서 보내는 알림이 동일한 title
과 image_url
을 갖는 것으로 정의됩니다.Meta는 최고의 사용자 및 비즈니스 경험을 위해 언제나 최선을 다하고 있으므로 이러한 요구 사항과 제한 사항은 변경될 수 있습니다.
양질의 사용자 경험을 만들려면 다음과 같이 하여 사람들에게 관련성 높고 큰 가치를 제공하는 마케팅 메시지를 보내야 합니다.
옵트인 요청에 제목과 이미지를 비롯하여 사용자가 받을 수 있는 마케팅 메시지의 유형(예: 주문 업데이트, 제품 추천 또는 특정 혜택)을 포함합니다.
한 사용자에게 옵트인 요청을 두 번 이상 보낼 경우 각 옵트인 요청에 사용자가 받을 수 있는 마케팅 메시지의 다양한 구체적인 유형을 명시해야 합니다.
마케팅 메시지는 관련성이 높아야 하며 사용자가 가치 있다고 판단할 가능성이 높은 이용 사례에 맞게 만들어야 합니다.
사용자는 메시지를 차단하는 것을 포함하여 메시지 경험에 대한 피드백을 제공할 수 있습니다. 이러한 피드백에 따라 마케팅 메시지 사용이 제한될 수도 있습니다. 정기적으로 옵트인 요청과 마케팅 메시지 알림을 검토하여 위의 모범 사례를 따르는지 확인해야 합니다.
2023년 2월 2일 전에 생성된 알림 메시지 토큰에 적용됩니다.
사용자는 Facebook 페이지나 Instagram 프로페셔널 계정에서 마케팅 메시지를 받기 위한 권한인 옵트인을 제공해야 합니다. Messenger 플랫폼은 개발자가 옵트인을 받을 수 있는 여러 가지 방법을 제공합니다. 다음의 메시지 경험에 옵트인 요청을 빌드할 수 있습니다.
m.me
링크 – 사용자가 웹사이트, 이메일, 소셜 미디어 게시물 등에서 m.me
링크를 클릭할 때
m.me
링크에서 지원)
마케팅 메시지 옵트인 요청을 보내려면 /PAGE-ID/messages
엔드포인트로 POST
요청을 보내세요. 이때 메시지 템플릿 유형은 notification_messages
로 설정합니다. 페이지 ID는 Facebook 페이지 또는 Instagram 프로페셔널 계정에 링크된 Facebook 페이지의 ID입니다.
참고:title
매개변수는 Facebook 페이지 또는 Instagram 프로페셔널 계정 의 슬라이드가 포함된 마케팅 메시지에 필수입니다.
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가 포함된 다음 JSON 응답을 수신합니다.
{ "recipient": { "id":"PSID-OR-IGSID", "message_id":"MESSAGE-ID", }
마케팅 메시지 옵트인 요청에 대해 /PAGE-ID/messages
엔드포인트로 보내는 POST
요청에 반드시 message
attachment
JSON 개체를 포함해야 합니다.
속성 | 설명 |
---|---|
template } | 필수 항목. 값은 |
| 마케팅 메시지의 내용에는 이 마케팅 메시지 옵트인 요청에 대한 템플릿 유형, 제목, 메시지 빈도, 메시지 옵션 등이 포함됩니다. |
elements 배열 | 슬라이드에 필수 항목입니다. 옵트인을 설명하는 요소 개체를 포함하는 배열입니다. 각 요소 개체에는 |
image_aspect_ratio enum { HORIZONTAL , SQUARE } | 이미지의 가로세로비입니다.
|
image_url 문자열 | 템플릿에 표시할 이미지의 URL입니다. |
notification_messages_frequency enum { DAILY, WEEKLY, MONTHLY } | 2023년 2월 2일 이후에 생성된 토큰에 대해서 사용 중단되었습니다. 기본값은 DAILY입니다. 이 마케팅 메시지 옵트인 요청에 대한 메시지 빈도입니다.
|
notification_messages_cta_text enum { ALLOW, GET, GET_UPDATES, OPT_IN, SIGN_UP } | 행동 유도 버튼에 표시되는 텍스트
|
notification_messages_timezone 문자열 | 메시지를 받는 사람의 시간대입니다. |
payload 문자열 | 필수 항목. 이 마케팅 메시지 옵트인 요청에 대한 홍보 메시지나 제품 릴리스 메시지 등의 마케팅 메시지 유형입니다. |
template_type enum { 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일 전에 생성된 매주 또는 매월 빈도의 알림 메시지 토큰에만 적용됩니다,
알림 메시지 토큰은 반복 빈도에 따라 생성됩니다. 예를 들어 사용자가 일일 및 주별 마케팅 메시지에 모두 옵트인한 경우 두 개의 분리된 알림 메시지 토큰이 생성됩니다. 사용자가 일일, 주별 및 월별 마케팅 메시지에 옵트인한 경우에는 세 개의 분리된 알림 메시지 토큰이 생성됩니다.
마케팅 메시지 빈도 | 설명 |
---|---|
매주 | 일주일에 1개의 메시지만 보낼 수 있습니다. 일주일은 페이지가 설정한 시간대에서 월요일 오전 12시부터 일요일 오후 11시 59분까지로 정의합니다. |
매월 | 한 달에 1개의 메시지를 보낼 수 있습니다. 한 달은 페이지가 설정한 시간대에서 1일 오전 12시부터 그달의 마지막 날 오후 11시 59분까지로 정의합니다. |
토큰 만료 날짜는 마케팅 메시지 수신 옵트인을 유지하기로 한 사용자에 대해 연장됩니다. 사용자는 언제든 옵트아웃할 수 있습니다.
사용자가 마케팅 메시지 수신에 옵트인하고 나면 최대 3개의 후속 메시지를 보낼 수 있습니다. 이들 메시지는 첫 번째 후속 메시지를 보내고 나서 2분 이내에 전송해야 합니다. 두 번째와 세 번째 후속 메시지는 250자 이내여야 합니다. 이러한 후속 메시지는 표준 24시간 메시지 전송 기간이 아닐 때 전송할 수 있습니다.
후속 메시지를 보내려면 /PAGE-ID/messages
엔드포인트로 POST
요청을 보냅니다. 이때 recipient
개체에는 알림 메시지 토큰을 포함하고 message
개체에는 후속 메시지의 텍스트를 포함합니다. 모든 3개의 후속 메시지에 대한 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"
모든 유효한 알림 메시지 토큰의 리스트를 가져오려면 /PAGE-ID/notification_message_tokens
엔드포인트로 GET
요청을 보내세요.
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
매개변수는 사용할 수 없습니다.
요청이 성공하면 앱에서 토큰, 받는 사람의 ID(Instagram 범위 ID 또는 페이지 범위 ID), 토큰이 생성된 시간, 알림의 제목, 다음 마케팅 메시지를 해당 받는 사람에게 보낼 수 있는 시간을 포함한 다음 JSON 응답을 받게 됩니다.
{ "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"
요청이 성공하면 앱에서 알림 메시지 토큰, 메시지를 받는 사람의 ID, 기타 토큰 정보를 포함하는 다음 JSON 응답을 받게 됩니다. 알림 메시지 토큰과 받는 사람의 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 호출은 앱의 사용 제한에 반영됩니다.
다음과 같은 항목이 필요합니다.
MESSAGING
작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰pages_messaging
권한, Facebook 로그인 사용messaging_referrals
Webhooks 구독마케팅 메시지를 보내려면 메시지 첨부 파일에 받는 사람의 NOTIFICATION-MESSAGES-TOKEN
값과 메시지 정보를 포함하여 /PAGE-ID/messages
엔드포인트로 POST
요청을 보냅니다.
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"
요청이 성공하면 앱에서 success
가 true
로 설정된 다음 JSON 응답을 받게 됩니다.
{ "success": true }
재 옵트인을 테스트하려면 4단계에서 developer_action
매개변수를 SEND_RE_OPTIN
으로 설정하고 단계를 반복합니다.