마케팅 메시지

이 문서에서는 사용자에게 마케팅 메시지를 보내기 위한 권한을 요청하는 방법, 요청을 보내기 위한 구체적인 요구 사항과 제한, 마케팅 메시지 권한 요청을 만들고 보내는 방법을 안내합니다.

메시지 빈도

2023년 1월 31일부터 notification_messages_frequency가 사용 중단되었으며, 마케팅 메시지에 대해 옵트인 요청을 보낼 때 더 이상 메시지 빈도가 필요하지 않습니다.

  • 주간 및 월간 빈도에 대해 2023년 1월 31일 전에 만든 알림 토큰은 여전히 지원됩니다. 이러한 토큰에 대한 메시지 빈도는 변경되지 않으며 notification_messages_frequency는 메시지 옵트인 Webhooks 알림에서 반환됩니다.

토큰 만료 및 재옵트인

2023년 8월 10일부터 더 이상 알림 토큰이 만료되지 않습니다. 재옵트인 요청과 옵트아웃 알림도 더 이상 전송되지 않습니다.

개요

마케팅 메시지를 사용하면 Facebook 페이지 또는 Instagram 프로페셔널 계정에서 해당 권한을 부여한 사용자에게 표준 메시지 전송 기간 외에 메시지를 전송할 수 있습니다. 마케팅 메시지를 사용하면 여러분 또는 여러분의 비즈니스에 관심이 있는 사용자와의 관계를 구축할 수 있습니다.

마케팅 메시지는 새롭게 선보이는 선택적인 프리미엄 기능으로, 향후 유료로 운영할 계획입니다. 현재는 WhatsApp Business API를 사용하여 메시지를 보내는 비즈니스에 요금을 청구하고 있으며, 가격 모델을 책정하기 위해 고객의 피드백을 경청하고 있습니다. 무료 체험에 변동이 있을 경우 충분한 기간을 두고 고객과 파트너에게 공지하겠습니다.

요구 사항

  • 마케팅 메시지나 기타 Messenger 플랫폼 기능을 사용할 때 해당하는 모든 개발자 정책을 따라야 합니다.

  • 표준 메시지 전송 기간 내에서만 사용자에게 마케팅 메시지에 옵트인할 것을 요청할 수 있습니다. 사용자가 마케팅 메시지를 옵트인하더라도 표준 메시지 전송 기간이 시작되지 않습니다.

  • 앱 및/또는 메시지 경험에 대해 사용자들이 부정적인 피드백을 지나치게 많이 제출하지 않아야 합니다. 해당 앱의 메시지 경험에 대해 사용자들이 부정적인 피드백을 지나치게 많이 제출했다고 판단되는 경우 메시지 기능이 제한되거나 삭제될 수 있습니다.

  • 옵트인 요청을 포함한 마케팅 메시지를 사용하여 사용자들에게 스팸성 메시지를 보내서는 안 됩니다. 여기에는 동일한 사용자에게 높은 빈도로 중복 옵트인 요청과 개발자 정책에 정의된 기타 유형의 스팸성 메시지를 보내는 행위가 포함됩니다.

  • Meta로부터 제공받는 서비스의 범위를 유지하려면 Messenger 플랫폼과 마케팅 메시지의 기능에 적용된 제한 사항을 준수해야 합니다.

제한 사항

  • 동일한 특정 제목을 사용하여 한 명의 사용자에게 일주일에 하나의 옵트인 요청만 보낼 수 있습니다. 여기에는 기본값인 '업데이트 및 프로모션'이 포함됩니다.
  • 사용자에게 중복 옵트인 요청을 보내지 마세요. 중복 옵트인 요청은 Facebook 페이지에서 보내는 알림이 동일한 title을 갖거나 Instagram 프로페셔널 계정에서 보내는 알림이 동일한 titleimage_url을 갖는 것으로 정의됩니다.
  • 표준 메시지 전송 기간에만 옵트인 요청을 보낼 수 있습니다.
  • 사용자가 마케팅 메시지를 옵트인하더라도 표준 메시지 전송 기간이 시작되지 않습니다.
  • 사용자가 마케팅 메시지 수신을 옵트인했는지만 확인할 수 있을 뿐 대기 중인 옵트인 요청 상태는 확인할 수 없습니다.
  • 사용자가 마케팅 메시지를 받지 않기로 선택한 경우 해당 사용자에게 더 이상 알림이 전송되지 않고 오류가 발생합니다.
  • 사용자는 메시지를 차단, 일시 차단 또는 신고할 수 있습니다.
  • Instagram 프로페셔널 계정에서 전송된 마케팅 메시지의 경우에는 일반적으로 서로 다른 제목에 대해 최대 10개의 옵트인 요청을 사용자 1명당 7일에 걸쳐 전송할 수 있습니다. 하위 제한에 따라 하루에 사용자에게 보낼 수 있는 옵트인 요청은 최대 5개입니다. 하지만 옵트인 요청을 보내기 전에 사용자들이 각 요청이 관련성 높고 큰 가치를 제공한다고 판단할 가능성이 높은지 여부를 생각해 보아야 합니다.

Meta는 최고의 사용자 및 비즈니스 경험을 위해 언제나 최선을 다하고 있으므로 이러한 요구 사항과 제한 사항은 변경될 수 있습니다.

모범 사례

양질의 사용자 경험을 만들려면 다음과 같이 하여 사람들에게 관련성 높고 큰 가치를 제공하는 마케팅 메시지를 보내야 합니다.

  • 옵트인 요청에 제목과 이미지를 비롯하여 사용자가 받을 수 있는 마케팅 메시지의 유형(예: 주문 업데이트, 제품 추천 또는 특정 혜택)을 포함합니다.

  • 한 사용자에게 옵트인 요청을 두 번 이상 보낼 경우 각 옵트인 요청에 사용자가 받을 수 있는 마케팅 메시지의 다양한 구체적인 유형을 명시해야 합니다.

마케팅 메시지는 관련성이 높아야 하며 사용자가 가치 있다고 판단할 가능성이 높은 이용 사례에 맞게 만들어야 합니다.

사용자는 메시지를 차단하는 것을 포함하여 메시지 경험에 대한 피드백을 제공할 수 있습니다. 이러한 피드백에 따라 마케팅 메시지 사용이 제한될 수도 있습니다. 정기적으로 옵트인 요청과 마케팅 메시지 알림을 검토하여 위의 모범 사례를 따르는지 확인해야 합니다.

메시지 빈도

2023년 2월 2일 전에 생성된 알림 메시지 토큰에 적용됩니다.

  • 사용자가 옵트인하고 나면, 사용자가 옵트인 중에 선택한 빈도에 따라 매일, 매주 또는 매월의 빈도로 메시지를 보낼 수 있습니다.

마케팅 메시지를 보내기 위한 권한 요청

사용자는 Facebook 페이지나 Instagram 프로페셔널 계정에서 마케팅 메시지를 받기 위한 권한인 옵트인을 제공해야 합니다. Messenger 플랫폼은 개발자가 옵트인을 받을 수 있는 여러 가지 방법을 제공합니다. 다음의 메시지 경험에 옵트인 요청을 빌드할 수 있습니다.

  • Messenger 연결 광고 – 사용자가 광고를 클릭할 때
  • 확인란 플러그인 – 사용자가 양식에서 확인란을 클릭하고 양식을 제출할 때
  • m.me 링크 – 사용자가 웹사이트, 이메일, 소셜 미디어 게시물 등에서 m.me 링크를 클릭할 때
  • 비공개 답장 – 사용자가 비즈니스의 Facebook 페이지에 방문자 게시물이나 댓글을 게시할 때
  • QR 코드 – 사용자가 디지털 및 인쇄 표면에서 QR 코드를 스캔할 때(m.me 링크에서 지원)
  • Messenger로 보내기 플러그인 – 사용자가 사전 정의된 CTA 버튼 또는 텍스트의 리스트를 사용하여 대화를 시작할 때

옵트인 요청 샘플

마케팅 메시지 옵트인 요청을 보내려면 /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 요청에 반드시 messageattachment JSON 개체를 포함해야 합니다.

속성설명

type

enum { template }

필수 항목. 값은 template이어야 합니다

payload

개체

마케팅 메시지의 내용에는 이 마케팅 메시지 옵트인 요청에 대한 템플릿 유형, 제목, 메시지 빈도, 메시지 옵션 등이 포함됩니다.

elements
배열

슬라이드에 필수 항목입니다. 옵트인을 설명하는 요소 개체를 포함하는 배열입니다. 각 요소 개체에는 payloadnotification_messages_frequency를 포함해야 하고 맞춤 title, image_urlnotification_messages_reoptin을 포함할 수 있습니다. 최소 1개에서 최대 5개의 요소가 지원됩니다.

image_aspect_ratio
enum { HORIZONTAL, SQUARE }

이미지의 가로세로비입니다.

  • SQUARE – 정사각형 이미지(1:1)를 렌더링합니다. 필요한 경우 이미지가 잘립니다.
  • HORIZONTAL – 수평 이미지(1.91:1)를 렌더링합니다. 필요한 경우 이미지가 잘립니다.
image_url
문자열

템플릿에 표시할 이미지의 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 }

행동 유도 버튼에 표시되는 텍스트

  • ALLOW – 옵트인 메시지 버튼 텍스트를 '메시지 허용'으로 설정합니다.
  • GET – 옵트인 메시지 버튼 텍스트를 '메시지 받기'로 설정합니다.
  • GET_UPDATES – 옵트인 메시지 버튼 텍스트를 '업데이트 받기'로 설정합니다. notification_messages_cta_text를 설정하지 않을 경우에도 이 값이 기본으로 설정됩니다.
  • OPT_IN – 옵트인 메시지 버튼 텍스트를 '메시지 옵트인'으로 설정합니다.
  • SIGN_UP – 옵트인 메시지 버튼 텍스트를 '메시지 신청'으로 설정합니다.
notification_messages_timezone
문자열

메시지를 받는 사람의 시간대입니다.

payload
문자열

필수 항목. 이 마케팅 메시지 옵트인 요청에 대한 홍보 메시지나 제품 릴리스 메시지 등의 마케팅 메시지 유형입니다.

template_type
enum { notification_messages }

필수 항목. 값은 notification_messages여야 합니다.

title
문자열

템플릿에 표시할 제목이며, 65자 이내여야 합니다. 값을 할당하지 않을 경우 기본값은 '업데이트 및 프로모션'으로 지정됩니다.

알림 메시지 토큰

사용자가 옵트인하면 비즈니스는 알림 메시지 토큰과 메시지 제목, 옵트인한 사용자의 시간대와 같은 정보가 포함된 messaging_optin Webhooks 알림을 받게 됩니다. 알림 메시지 토큰을 사용하면 사용자에게 마케팅 메시지를 보낼 수 있습니다.

옵트인 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 호출은 앱의 사용 제한에 반영됩니다.

마케팅 메시지 보내기

시작하기 전에

다음과 같은 항목이 필요합니다.

  • 알림을 받기로 옵트인한 사용자의 알림 메시지 토큰
  • 비즈니스의 Facebook 페이지 ID
  • 페이지에서 MESSAGING 작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰
  • pages_messaging 권한, Facebook 로그인 사용
  • 마케팅 메시지에 포함할 모든 자산
  • 앱의 messaging_referrals Webhooks 구독

마케팅 메시지를 보내려면 메시지 첨부 파일에 받는 사람의 NOTIFICATION-MESSAGES-TOKEN 값과 메시지 정보를 포함하여 /PAGE-ID/messages 엔드포인트로 POST 요청을 보냅니다.

제한 사항

  • 알림 메시지 토큰당 하루에 하나의 메시지만 전송할 수 있습니다. 여러 메시지를 보내는 경우 이후의 메시지는 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"

요청이 성공하면 앱에서 successtrue로 설정된 다음 JSON 응답을 받게 됩니다.

{ "success": true }

재 옵트인을 테스트하려면 4단계에서 developer_action 매개변수를 SEND_RE_OPTIN으로 설정하고 단계를 반복합니다.

다음 단계

기타 참고 자료

개발자 지원