메시지 인사이트 API

이 문서에서는 비즈니스가 보내거나 받은 메시지에 대한 지표를 프로그래밍 방식으로 가져오는 방법을 설명합니다. 메시지 인사이트 API는 페이지 인사이트 API를 확장한 것으로, 이를 사용하면 Facebook 페이지의 '페이지 인사이트' 탭에 표시되는 것과 동일한 정보를 가져올 수 있습니다.

시작하기 전에

이 가이드에서는 Messenger 플랫폼 개요를 읽고 메시지와 알림을 주고받는 데 필요한 구성 요소를 구현했다고 가정합니다.

소유하거나 ANALYZE 작업을 수행할 수 있는 Facebook 페이지에 대한 지표를 보려면 앱에 다음이 필요합니다.

  • 지표를 보려는 Facebook 페이지의 페이지 ID
    • Instagram 메시지의 경우 Instagram 프로페셔널 계정에 연결된 Facebook 페이지
  • 페이지 액세스 토큰
  • 다음 권한이 필요합니다.
    • pages_messaging
    • pages_read_engagement
    • pages_show_list
    • read_insights
  • Standard Access

소유하지 않거나 페이지에서 ANALYZE 작업을 수행할 수 없는 Facebook 페이지에 대한 지표를 보려면 앱에 다음이 필요합니다.

  • 지표를 보려는 Facebook 페이지의 페이지 ID
    • Instagram 메시지의 경우 Instagram 프로페셔널 계정에 연결된 Facebook 페이지
  • 페이지에서 ANALYZE 작업을 수행할 수 있는 사용자가 요청한 페이지 액세스 토큰
  • Facebook 로그인을 통한 다음 권한:
    • pages_messaging
    • pages_read_engagement
    • pages_show_list
    • read_insights
  • Advanced Access

제한 사항

  • 새로운 대화가 집계되려면 사용자가 비즈니스에 답장을 보내는 것과 같은 행동을 해야 합니다. 사용자가 행동을 할 때까지 대화는 사용자에게만 표시되고 집계되지는 않습니다.

인사이트 지표 읽기

지표 하나 이상에 대한 정보를 읽으려면 보려는 지표를 쉼표로 구분한 리스트로 metric 매개변수를 설정하여 /PAGE-ID/insights 엔드포인트에 GET 요청을 보내세요.

요청 샘플

가독성을 높이기 위해 형식을 지정했습니다.
curl -X GET "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/insights
    ?metric=page_messages_new_conversations_unique,page_messages_blocked_conversations_unique 
    &access_token=PAGE-ACCESS-TOKEN"

성공 시 앱은 다음과 같은 JSON 응답을 받습니다.

{ 
  "data": [ 
    { 
      "name": "page_messages_new_conversations_unique", 
      "period": "day", 
      "values": [ 
        { 
          "value": "42", 
          "end_time": "1665175977" 
        }, 
      ]
    },
    { 
      "name": "page_messages_blocked_conversations_unique", 
      "period": "day", 
      "values": [ 
        { 
          "value": "0", 
          "end_time": "1665175977" 
        }, 
      ]
    } 
  ],
}

특정 범위의 합계 요청 샘플

다음 예에서는 API 호출 시 total_over_range로 설정한 period 매개변수를 포함하고 시간 범위를 sinceuntil 매개변수로 정의하여 특정 기간 동안의 새롭고 고유한 총 대화 수를 찾습니다.

가독성을 높이기 위해 형식을 지정했습니다.
curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/insights/
    ?metric=page_messages_new_conversations_unique
    &since=UNIX-TIMESTAMP-START
    &until=UNIX-TIMESTAMP-STOP
    &period=total_over_range
    &access_token=PAGE-ACCESS-TOKEN"

성공할 경우 앱은 새롭고 고유한 대화 수 및 시간 범위가 끝나는 시점과 함께 다음과 같은 JSON 응답을 받습니다.

{
  "data": [
    {
      "name": "page_messages_new_conversations_unique",
      "period": "total_over_range",
      "values": [
        {
          "value": 27
          "end_time": "1665175977"
        }
      ],
    }
  ]
}

분석 데이터 요청 샘플

다음 예에서는 특정 기간 동안 주제와 빈도별로 그룹화된 총 정기 알림 토큰 수를 찾습니다.

curl -i -X GET "https://graph.facebook.com/LATEST-API-VERSION/PAGE-ID/insights/
    ?metric=recurring_notifications_tokens   
    &since=UNIX-TIMESTAMP-START
    &until=UNIX-TIMESTAMP-STOP
    &period=total_over_range
    &breakdown=recurring_notifications_topic,recurring_notifications_frequency 
    &access_token=PAGE-ACCESS-TOKEN"

성공할 경우 앱은 다음과 같은 JSON 응답을 받습니다. 이때 토큰은 주제('newproducts' 및 '10percentsale')와 각 주제에 사용 가능한 메시지 빈도('newproducts'의 경우 'daily', 'weekly', 'monthly', '10percentsale'의 경우 'daily' 및 'weekly')별로 그룹화됩니다.

{
  "data": [
    {
      "name": "recurring_notifications_tokens",
      "period": "total_over_range",
      "values": [ 
        {
          "value": 3,
          "end_time": "1665175977",
          "recurring_notifications_topic": "newproducts",
          "recurring_notifications_frequency": "daily"
        },
        {
          "value": 15,
          "end_time": "1665175977",
          "recurring_notifications_topic": "newproducts",
          "recurring_notifications_frequency": "weekly"
        },
        {
          "value": 8,
          "end_time": "1665175977",
          "recurring_notifications_topic": "newproducts",
          "recurring_notifications_frequency": "monthly"
        },
        {
          "value": 17,
          "end_time": "1665175977",
          "recurring_notifications_topic": "10percentsale",
          "recurring_notifications_frequency": "daily"
        },
        {
          "value": 14,
          "end_time": "1665175977",
          "recurring_notifications_topic": "10percentsale",
          "recurring_notifications_frequency": "weekly"
        },
      ]
    }
  ]
}

인사이트 매개변수

매개변수 설명

breakdown

응답이 그룹화되는 차원입니다. 다음 중 하나 이상일 수 있습니다.

이름설명

campaign_id

캠페인 ID 번호를 기준으로 데이터를 확인합니다. 예를 들어 'abc123', 'Summer messaging campaign', 'Spring sale 2'가 있습니다.

engagement_source

정기 알림을 통한 참여 유형 기준으로 데이터를 확인합니다. 예를 들어 (CTA가 클릭된) 기본 및 보조 CTA ID가 있습니다.

message_type

비즈니스가 보낸 메시지 유형을 기준으로 데이터를 확인합니다. 예를 들어 마케팅 메시지가 있습니다.

messaging_channel

사용자에게 메시지를 전달하는 데 사용한 채널을 기준으로 데이터를 확인합니다. 예를 들어 Messenger와 Instagram이 있습니다.

recurring_notifications_entry_point

정기 알림으로의 진입점을 기준으로 데이터를 확인합니다. 예를 들어 스레드 내, 채팅 플러그인, CTM 광고, 확인란 플러그인, m.me 또는 ig.me 링크, Facebook 페이지가 있습니다.

recurring_notifications_frequency

정기 알림 옵트인에서 허용한 빈도를 기준으로 데이터를 확인합니다. 예를 들어 매일, 매주, 매월이 있습니다.

recurring_notifications_topic

정기 알림 주제를 기준으로 데이터를 확인합니다. 예를 들어 홍보 메시지, 제품 출시, 딜이 있습니다.

date_preset

sinceuntil을 대신하여 사용할 수 있는 상대적 날짜 범위입니다. last_week, last_month, last_quarter, 그 밖의 값일 수 있습니다. 페이지 인사이트 가이드에서 더 많은 값을 확인하세요.

metric

필수 항목. 반환할 지표를 쉼표로 구분한 리스트입니다.

period

since/until 또는 date_preset 범위 내에 제공된 집계 값입니다. total_over_range 값은 지정된 기간 동안 지표에 대한 단일 값을 제공합니다. day, week, month, days_28 또는 total_over_range일 수 있습니다.

since

데이터를 보려는 기간의 시작 날짜입니다. 설정된 날짜의 데이터가 오전 12시부터 포함됩니다. 값 형식은 YYYY-MM-DD입니다. 값을 2022-01-31로 설정하면 2022년 1월 31일 오전 12시부터 데이터가 제공됩니다.

until

데이터를 보려는 기간의 종료 날짜입니다. 설정된 날짜의 데이터가 오전 12시부터 제외됩니다. 값 형식은 YYYY-MM-DD입니다. 값을 2022-02-01로 설정하면 2022년 1월 31일 오후 11시 59분까지 데이터가 제공됩니다.

사용 가능한 지표

메시지 인사이트 API를 통해 다음과 같은 지표를 사용할 수 있습니다.

metric 이름설명

page_messages_blocked_conversations_unique

차단된 페이지 대화 수입니다.

page_messages_engagement

고객이 비즈니스 페이지에서 보낸 마케팅 메시지의 행동 유도 버튼을 눌러서 상호작용한 횟수입니다.

가능한 breakdown 값:

  • campaign_id
  • engagement_source
  • message_type
  • messaging_channel
  • recurring_notifications_topic

이 지표는 개발 중입니다.

page_messages_new_conversations_unique

전에 비즈니스와 메시지를 주고받은 적이 없는 사람들과 시작한 Messenger상의 메시지 대화 수입니다.

page_messages_order_count

메시지 대화 또는 메시지 대화를 관리하는 데 사용된 타사 앱 또는 웹사이트에서 주문을 생성한 횟수입니다.


이 지표는 개발 중입니다.

page_messages_paid_order_earnings

메시지 대화 또는 메시지 대화를 관리하는 데 사용된 타사 앱 또는 웹사이트에서 생성된 주문을 통해 얻은 대략적인 수익입니다. 통화 변환으로 인해 최종 수익은 다를 수 있습니다.


이 지표는 개발 중입니다.

page_messages_read_ratio

읽은 마케팅 메시지의 수를 페이지가 보낸 마케팅 메시지 수로 나눈 값입니다.

경우에 따라 일부 메시지 확인이 파악되지 않을 수 있습니다. 고객이 메시지 확인여부를 해제한 경우가 여기에 해당합니다.

가능한 breakdown 값:

  • campaign_id
  • message_type
  • messaging_channel
  • recurring_notifications_topic

이 지표는 개발 중입니다.

page_messages_reported_conversations_unique

스팸이거나 부적절한 콘텐츠를 포함했다는 등의 이유로 사람들이 신고한 페이지의 대화 수입니다.

page_messages_sent

비즈니스 페이지가 고객에게 보낸 마케팅 메시지의 수입니다.


가능한 breakdown 값:

  • campaign_id
  • messsage_type
  • messaging_channel
  • recurring_notifications_topic

이 지표는 개발 중입니다.

page_messages_total_messaging_connections

비즈니스가 메시지를 보낼 수 있는 사람의 수입니다.


이 지표는 Messenger에서 비즈니스에 메시지를 보낸 적이 있는 사람의 수를 표시합니다. Messenger에서 비즈니스를 차단하거나 신고한 사람은 여기에 포함되지 않습니다. 연결된 연락처에 메시지를 보내는 기능에 몇 가지 제약이 적용될 수도 있습니다(특정 기간에 보낼 수 있는 메시지 수에 대한 제한 등). 또한 이 지표에는 해당 데이터를 사용할 수 있게 된 2016년 10월 이후에 연결된 연락처만 포함됩니다.

page_messages_with_business_outcomes

최소 한 건의 주문을 생성한 적이 있는 메시지 상대의 수입니다.


이 지표는 개발 중입니다.

recurring_notifications_tokens

계정이 비즈니스로부터 마케팅 메시지를 받기 위해 구독한 횟수입니다. 계정이 여러 주제를 구독한 경우 각 주제에 대해 다시 집계됩니다.


계산 방법: 이 지표는 계정이 정기 메시지 수신에 동의한 횟수에서 계정이 구독 취소한 횟수를 뺀 횟수를 집계합니다.


가능한 breakdown 값:

  • messaging_channel
  • recurring_notifications_frequency
  • recurring_notifications_topic

이 지표는 개발 중입니다.

개발 중인 지표에 대해 자세히 알아보세요.

응답 속성

인사이트 API 호출 시 다음과 같은 정보가 반환될 수 있습니다.

속성 설명

data

개체 배열

지표 개체 리스트입니다.

name
문자열

지표의 이름입니다.

period
문자열

데이터가 보고된 기간입니다.

values
개체 배열

지표를 위한 데이터 리스트입니다.

value
정수

지정된 기간 동안 요청된 지표의 수입니다.

end_time
unix 타임스탬프

지표에 대한 종료 시간의 UTC 타임스탬프입니다.