알림톡/브랜드메시지 통계 api

안녕하세요.

비즈고 omni API로 알림톡·브랜드메시지를 발송하는 서비스를 개발 중입니다. 발송은 정상인데 읽음(오픈)·버튼클릭 통계만 계속 0으로 와서 문의드립니다.

영업 담당자분을 통해 문의드렸더니 실호출 전문을 첨부해 달라고 하셔서, 2026-08-31에 운영 서버에서 직접 호출한 요청·응답을 그대로 올립니다.

환경

  • BASE: https://mars.ibapi.kr / 인증 정상(authCode: A000)
  • 발신프로필(senderKey) 단위 조회. 아래 전문의 senderKey는 f851957d…로 가렸습니다(40자)
  1. 알림톡 통계 조회 — successCount는 맞는데 readCount만 0

GET /api/comm/v1/center/statistics/alimtalk?senderKey=f851957d…&startDate=20260820&endDate=20260826
{“common”:{“authCode”:“A000”,“infobankTrId”:“M-260831121814041PRD42375”,“authResult”:“SUCCESS”},
“data”:{“code”:“A000”,“result”:“Success”,“data”:{“statistics”:[
{“successCount”:14,“failCount”:1,“readCount”:0,“buttonClickCount”:0,“listClickCount”:0,
“thumbnailClickCount”:0,“etcClickCount”:0,“sendRate”:93.3,“readRate”:0.0,“clickRate”:0.0,“ctr”:0.0}]}}}
successCount 14 · failCount 1 · sendRate 93.3은 저희 DB 발송 기록과 정확히 일치합니다. readCount·readRate·buttonClickCount만 0입니다.

  1. 템플릿별 조회 — 동일

GET /api/comm/v1/center/statistics/alimtalk/template?senderKey=f851957d…&startDate=20260820&endDate=20260826
{“common”:{“authCode”:“A000”,“infobankTrId”:“M-260831121814120PRD42376”,“authResult”:“SUCCESS”},
“data”:{“code”:“A000”,“result”:“Success”,“data”:{“statistics”:[
{“templateCode”:“PH2_00576534”,“templateName”:“마운자로 채널추가2”,
“successCount”:14,“failCount”:1,“readCount”:0,“buttonClickCount”:0,“listClickCount”:0,
“thumbnailClickCount”:0,“etcClickCount”:0,“sendRate”:93.3,“readRate”:0.0,“clickRate”:0.0,“ctr”:0.0}]}}}
이 템플릿은 정상 등록·승인(APR) 된 템플릿이고, 이 발신프로필로 실제 발송된 건입니다.

  1. 시간별 반응 조회 — 동일

GET /api/comm/v1/center/statistics/alimtalk/reaction/hourly?senderKey=f851957d…&startDate=20260820&endDate=20260826
{“common”:{“authCode”:“A000”,“infobankTrId”:“M-260831121814218PRD99467”,“authResult”:“SUCCESS”},
“data”:{“code”:“A000”,“result”:“Success”,“data”:{“statistics”:[
{“hour”:“10”,“successCount”:1,“failCount”:0,“readCount”:0,“buttonClickCount”:0,
“sendRate”:100.0,“readRate”:0.0,“clickRate”:0.0,“ctr”:0.0},
{“hour”:“11”,“successCount”:1,“failCount”:0,“readCount”:0,“buttonClickCount”:0,
“sendRate”:100.0,“readRate”:0.0,“clickRate”:0.0,“ctr”:0.0}]}}}
시간대별로 발송 건수는 제대로 나뉘는데 읽음만 0입니다.

  1. 브랜드메시지도 동일

GET /api/comm/v1/center/statistics/brandmessage?senderKey=f851957d…&startDate=20260820&endDate=20260826
{“common”:{“authCode”:“A000”,“infobankTrId”:“M-260831121841322PRD99922”,“authResult”:“SUCCESS”},
“data”:{“code”:“A000”,“result”:“Success”,“data”:{“statistics”:[
{“successCount”:3,“failCount”:0,“readCount”:0,“buttonClickCount”:0,“listClickCount”:0,
“thumbnailClickCount”:0,“etcClickCount”:0,“sendRate”:100.0,“readRate”:0.0,“clickRate”:0.0,“ctr”:0.0}]}}}

저희가 먼저 확인해 본 것들

집계 지연은 원인이 아닌 것 같습니다. 안내받기로는 D+1 1차 → D+2 2차 → D+3부터 고정이라고 했는데, D+3이 한참 지난 7월 발송분도 readCount가 0입니다.
GET …/statistics/alimtalk?senderKey=f851957d…&startDate=20260701&endDate=20260707
→ {“infobankTrId”:“M-260831121841455PRD05587”, …
“statistics”:[{“successCount”:10,“failCount”:0,“readCount”:0, … “sendRate”:100.0,“readRate”:0.0}]}

하루만 조회해도 동일합니다.
GET …/statistics/alimtalk?senderKey=f851957d…&startDate=20260824&endDate=20260824
→ {“infobankTrId”:“M-260831121841417PRD05586”, …
“statistics”:[{“successCount”:6,“failCount”:0,“readCount”:0, … “sendRate”:100.0,“readRate”:0.0}]}

계정 기본 발신프로필로 조회하면 빈 배열이 옵니다. (발송이 일어난 발신프로필이 아니라서로 이해했습니다)
GET …/statistics/alimtalk/template?senderKey=(계정 기본키)&startDate=20260801&endDate=20260807
→ {“infobankTrId”:“M-260831161921218PRD96850”, … “statistics”:}

참고로 /api/comm/v1/message/statistics는 값이 정상적으로 옵니다.
→ {“infobankTrId”:“M-260831122351733PRD11270”, …
“statistics”:[{“statDate”:“20260820”,“serviceType”:“ALIMTALK”,“recvTotalCnt”:1,“recvSuccCnt”:1, …},
{“statDate”:“20260824”,“serviceType”:“ALIMTALK”,“recvTotalCnt”:6,“recvSuccCnt”:6, …}]}
다만 여기엔 읽음 항목이 없고 계정 전체 기준이라, 저희가 필요한 읽음 통계는 못 얻습니다.

[질문]

  1. readCount·readRate·buttonClickCount가 계속 0인 원인이 무엇인가요? 카카오 채널 인사이트를 별도로 신청·설정해야 값이 쌓이기 시작하는 건가요?
  2. 알림톡도 읽음(오픈) 집계가 제공되나요? 아니면 브랜드메시지(친구톡) 전용인가요?
  3. 발송할 때(POST /api/comm/v1/send/omni) 읽음 집계를 켜기 위해 넣어야 하는 파라미터가 따로 있나요? 저희는 지금 destinations + messageFlow + ref만 보내고 있습니다.
  4. 읽음 집계가 시작되는 조건이 있나요? (예: 채널 친구 수, 일정 발송량 이상, 특정 메시지 유형 등)
  5. buttonClickCount는 알림톡의 웹링크 버튼 클릭도 잡히나요?
  6. 읽음 수치가 D+2까지 갱신된다면, 일별로 쌓아 보관하려면 startDate=endDate=하루로 부른 값을 D+2까지 여러 번 다시 긁어서 덮어써야 하는 게 맞나요? 권장 방식이 있으면 알려주세요.
  7. /api/comm/v1/center/statistics/* 는 조회 기간이 7일을 넘으면 거부됩니다. 문서에 안 적혀 있어 부딪혀보고 알았습니다.
    [7일 20260820~20260826] A000 Success
    [8일 20260820~20260827] A213 The query period cannot exceed 7 days.
    [31일 20260801~20260831] A213 The query period cannot exceed 7 days.
    {“common”:{“authCode”:“A000”,“infobankTrId”:“M-260831121714125PRD04113”,“authResult”:“SUCCESS”},
    “data”:{“code”:“A213”,“result”:“The query period cannot exceed 7 days.”}}
    (HTTP 400)

감사합니다.

안녕하세요, 비즈고입니다 :blush:

먼저 문의 주셨는데 답변이 늦어져 죄송합니다.
기다리시는 동안 불편하셨을 텐데 양해해 주셔서 감사합니다.
실호출 전문까지 상세히 정리해 주신 덕분에 원인은 명확하게 확인되었습니다.

순서대로 답변드립니다.

1. readCount·readRate·buttonClickCount가 계속 0인 원인이 무엇인가요? 카카오 채널 인사이트를 별도로 신청·설정해야 값이 쌓이기 시작하는 건가요?

카카오 정책상 발송 성공 10건 이하인 집계 단위는 읽음·클릭 데이터가 제공되지 않고, 이 기준은 기간 합계가 아닌 일자별·시간대별로 각각 적용됩니다.
보내주신 구간은 주간 합계 14건이지만 일자별로는 1건·6건, 시간대별로는 1건씩이며 브랜드메시지 3건, 7월분 10건으로 모두 해당 구간에 들어갑니다. 오류가 아니라 발송량이 아직 임계치에 닿지 않은 상태입니다.

해당 조건이 규격서에 명시되어 있지 않아 확인에 어려움을 드렸습니다.
읽음·클릭 지표의 제공 조건(10건 이하 미제공, 일자별·시간대별 개별 적용)을 규격서에 추가하겠습니다.
알려주셔서 감사합니다

2. 알림톡도 읽음(오픈) 집계가 제공되나요? 아니면 브랜드메시지(친구톡) 전용인가요?

알림톡도 제공됩니다. 단, 2025년 11월 1일 발송분부터 집계되어 그 이전 발송분은 조회되지 않습니다.

3. 발송할 때(POST /api/comm/v1/send/omni) 읽음 집계를 켜기 위해 넣어야 하는 파라미터가 따로 있나요? 저희는 지금 destinations + messageFlow + ref만 보내고 있습니다.

추가 파라미터는 없습니다.
반응 지표는 발송 요청과 무관하게 발신프로필·템플릿 단위로 집계되므로 현재 구성 그대로 두셔도 됩니다.

4. 읽음 집계가 시작되는 조건이 있나요? (예: 채널 친구 수, 일정 발송량 이상, 특정 메시지 유형 등)

세 가지입니다.
① 2025년 11월 1일 이후 발송분
② 발송 후 약 2시간 경과
③ 일자별·시간대별 각 단위에서 발송 성공 10건 초과.

채널 친구 수나 메시지 유형 조건은 없습니다.
한 템플릿을 특정 시간대에 모아 발송하시면 임계치를 넘기기 수월합니다.

5. buttonClickCount는 알림톡의 웹링크 버튼 클릭도 잡히나요?

네, 웹링크 버튼 클릭도 집계 대상입니다.
현재는 4번의 10건 조건으로 값 확인이 어려운 상태이며, 발신프로필 단위 응답에서의 반영 형태는 한 번 더 점검해 확인되는 대로 안내드리겠습니다.

6. 읽음 수치가 D+2까지 갱신된다면, 일별로 쌓아 보관하려면 startDate=endDate=하루로 부른 값을 D+2까지 여러 번 다시 긁어서 덮어써야 하는 게 맞나요? 권장 방식이 있으면 알려주세요.

이해하신 방식이 맞고, 권장 방식도 동일합니다.
일자별로 조회해 저장하시고 해당 일자 기준 D+2까지 재조회하여 덮어쓴 뒤, D+3 이후 값을 확정치로 고정하시면 됩니다. D+3 이후 값이 늘지 않는 것은 정상이며, 10건 이하 구간은 시간이 지나도 채워지지 않으니 배치 설계 시 참고해 주세요.

7. /api/comm/v1/center/statistics/ 는 조회 기간이 7일을 넘으면 거부됩니다. 문서에 안 적혀 있어 부딪혀보고 알았습니다.

정확히 짚어주셨습니다. 조회 기간 최대 7일, 초과 시 A213이 맞습니다.
문서 안내가 누락되어 직접 확인하시게 만든 점 죄송합니다.
7일 제한과 A213 코드, 그리고 위 반응 지표 제공 조건까지 개발자센터 문서에 함께 보완하겠습니다 :folded_hands:

추가로 궁금하신 점이 있으시면 편하게 남겨주세요. 감사합니다 :blush:

  1. "집계 단위"의 정확한 기준을 알고 싶습니다

"발송 성공 10건 이하인 집계 단위는 제공되지 않고, 기간 합계가 아닌 일자별·시간대별로 각각 적용된다"는 안내에서, 무엇을 하나로 묶어 10건을 세는지가 저희 쪽에서 갈리지 않습니다. 아래 경우들을 각각 알려주시면 정확히 이해할 수 있겠습니다.

(가) 같은 1시간 안에 템플릿 A 5건 + 템플릿 B 6건 = 11건
→ 두 템플릿을 합쳐 11건이니 집계되나요? 아니면 각각 5건·6건이라 둘 다 안 되나요?

(나) 같은 1시간 안에 템플릿 A 11건 + 템플릿 B 3건
→ A는 되고 B만 안 되나요? 아니면 그 시간대 합계가 14건이라 둘 다 되나요?

(다) 13:05에 템플릿 A 9건, 14:05에 템플릿 A 5건 (하루 14건)
→ 시간대별로는 각각 9건·5건이니 하루 14건이어도 전부 안 잡히나요?

(라) 일자 단위가 따로 자격을 갖나요?
저희 2026-09-03은 하루 합계 23건이었는데 readCount는 22였고, 1건만 보낸 15시 구간은 5시간이 지나도 0이었습니다.
→ 일자 값은 "조건을 넘은 시간대들의 합"이고, 일자 합계가 10건을 넘는 것만으로는 자격이 생기지 않는 것으로 이해했는데 맞나요?

(마) "10건 초과"의 경계
정확히 10건이면 제공되지 않고 11건부터 제공되는 것이 맞나요? 저희는 11건짜리 템플릿에서 값을 받았습니다.

(바) 발신프로필도 묶는 단위인가요?
한 계정에 발신프로필이 여러 개일 때, 10건은 발신프로필별로 세는 것이 맞나요?

정리하면, 10건을 세는 묶음이 (일자 + 시간대)인지 (일자 + 시간대 + 템플릿)인지가 핵심 질문입니다. 저희가 어느 단위로 발송을 몰아야 지표가 나오는지 설계에 직접 걸리는 부분이라 여쭙습니다.

  1. 발송 성공 건수(successCount)도 2시간이 지나야 나오나요?

조건 ②를 "읽음만 2시간"으로 이해했는데, 실제로는 2시간이 지나기 전에는 그 시간대 구간 자체가 응답에 나오지 않았습니다(위 결과). 의도된 동작인지 확인 부탁드립니다.

  1. buttonClickCount에 어떤 버튼이 포함되나요?

웹링크(WL)는 확인했습니다. 채널추가(AC)·봇키워드(BK)·배송조회(DS) 등 다른 타입도 포함되나요?
그리고 listClickCount·thumbnailClickCount·etcClickCount는 각각 어떤 클릭인가요?

  1. failCount와 각 비율의 분모를 알려주세요
  • failCount에는 어떤 실패가 들어가나요? (카카오 발송 실패만인지, 대체발송으로 넘어간 건도 포함인지)
  • sendRate = successCount ÷ (successCount + failCount) 인가요?
  • readRate = readCount ÷ successCount 인가요?
  • clickRate와 ctr은 무엇이 다른가요? 저희 값은 17.4와 18.2로 달랐습니다.
  1. 브랜드메시지 통계도 같은 조건인가요?

/api/comm/v1/center/statistics/brandmessage 도 2시간·10건 조건이 동일한지 궁금합니다.

  1. 2시간 만에 나온 값과 D+3 확정값이 다를 수 있나요?

D+2까지 재조회해 덮어쓰라는 안내는 잘 이해했습니다. 다만 이번엔 발송 2시간 만에 22/22가 나왔는데, 이 값이 D+1·D+2에 더 늘어날 수 있는 성격인지(예: 뒤늦게 읽은 사람이 반영) 확인 부탁드립니다. 그리고 만약 D+1, D+2 에 발송수가 더늘어나지 않았더라도 값이 업데이트가 되는지도 확인부탁드립니다.

감사합니다.