카카오 비즈니스폼 API 활용 관련 문의

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


안녕하세요,
카카오비즈니스 통한 당사 대고객 업무 수행 간 문의 드립니다.

https://developers.kakao.com/docs/ko/kakaomoment/talk-business-form
상기 페이지에서, 비즈니스폼을 통해 수집한 설문 응답 DB를 광고주 측에서 활용할 수 있도록 API를 제공하고 있다고 이해했습니다.

해당 제공되는 API 기반으로 당사에서 활용하기 위해서는, 해당 API로 당사 sftp 서버에도 연동을 받을 수 있을지 문의 드립니다.
이를 통해 파일 형태로 일정 주기 간격(daily, hourly 등)으로 비즈니스폼 응답 DB를 수신받을 수 있을지 기술 검토를 부탁드리고자 합니다.

감사합니다.

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 전체 앱 목록에 표시되는 ID 값 입니다.
숫자로된 ID 입니다
ex) 123456

[@tim.l @woody.ho]

150024 인 것 같습니다.

혹시 아니라면, 앱 ID 확인 방법 말씀주시면 감사하겠습니다

안녕하세요.

비즈니스폼의 결과 보고서는 비즈니스폼 관리자센터의 결과보기 탭에서 확인하실 수 있으며 그외 방식은 제공하고 있지 않습니다. (결과보기 탭은 비즈니스폼 목록에서 확인하고자 하는 완료된 폼 선택 하시면 확인 가능합니다)

API를 이용하여 서비스측 시스템과 연동하고자 하신다면 비즈니스폼+ 기능 이용을 고려 부탁드립니다.

https://developers.kakao.com/docs/ko/kakaomoment/bizformplus - 비즈니스폼+ API가이드
https://kakaobusiness.gitbook.io/main/ad/moment/engagement/bizformplus/manage - 비즈니스폼+ 관리페이지 가이드

안녕하세요,
종전 문의에 더해 추가로 몇 가지 확인하고자 합니다.

우선 해당 기능 통하여 비즈니스에 활용할 수 있게 제공해주시는 점 감사합니다.

API를 이용하여 저희쪽 비즈니스 시스템과 연동하고자 하는 목적이며, 기능 이용 간 사전 확인이 필요한 요소들이 있어 질의 드리는 점 참고 부탁드립니다.

  1. 시간당 API 호출 가능 횟수 (Rate Limit)
  2. 1000개 이상의 응답값 존재 시 받아오는 방법(페이징 처리 방식 및 성능)
    • 한번의 API 호출로 가져올 수 있는 최대 응답 수
    • 대량 데이터 조회 시 소요 예상 시간
  3. 카카오 서버 내 데이터값 결과 보관 주기 (언제까지 조회가 가능한지)
  4. 중복 제출(카카오 비즈폼 가정) 및 데이터 무결성
    • 동일 사용자가 폼을 여러번 제출한 경우 식별할 수 있는 방법(제출 고유 id값? 그외 방식?)
    • 네트워크 오류로 인한 재전송 시, 중복 방지 방법

감사합니다.

@kakao_moment 비즈니스폼+ 관련 문의 확인 부탁드려요.

참고로 실제 사용하고자 하는 카카오 계정의 디밸로퍼스 앱 ID는 1558514 입니다.

@민윤기6191
안녕하세요. 카카오 참여형광고 비즈니스폼+ 입니다.

비즈니스폼+ > 응답 결과 조회 API 스펙
https://developers.kakao.com/docs/ko/kakaomoment/bizformplus

기준으로 문의 주신 항목 순서대로 답변드립니다.

1. 호출 제한
광고계정(adAccountId) 기준 5초당 1회입니다.

5초 안에 다시 부르셔도 에러를 돌려드리지는 않습니다. 남은 대기 시간이 지난 뒤에 응답이 나가는 방식이라 클라이언트에서는 응답이 늦게 온 것처럼 보입니다.

대기가 응답 지연으로 흡수되는 구조라 호출 간격을 5초 이상으로 두고 설계하시는 편이 안전합니다.

2. 페이징 방식과 1회 최대 조회 건수
커서 방식입니다.

  • size: 한 번에 가져올 건수. 기본값 100, 최대 1,000
  • cursorId: 이어서 조회할 위치
  • 응답의 hasNext가 true면 함께 내려온 nextCursor를 다음 요청의 cursorId에 넣어 다시 호출합니다. hasNext가 false면 마지막 페이지입니다.

1,000건이 넘는 응답은 이 방식으로 나눠 받으시면 됩니다.

3. 대량 조회 소요 시간
내부 측정에서 호출 한 번은 400~500ms 수준으로 나왔습니다. 다만 전체 소요 시간은 위의 5초 제한이 결정합니다.

예를 들어 1만 건이면 size=1000으로 10회를 호출해야 하고, 5초 간격을 지키면 약 45~50초가 걸립니다. 배치 주기를 잡으실 때 이 계산을 기준으로 보시면 됩니다. 성능 보장치(SLA)는 아니라는 점 참고 부탁드립니다.

또한 응답은 applyId 오름차순이고 cursorId는 그보다 큰 응답만 돌려줍니다. 배치 종료 시 마지막으로 받은 applyId를 저장해 두었다가 다음 배치의 cursorId로 넣으시면 새로 추가된 응답만 받으실 수 있습니다. 전체 내역을 매번 다시 받으실 필요는 없습니다.

4. 데이터 보관 기간
응답 제출 시점부터 90일입니다.

응답마다 expiresAt 필드에 만료 일시가 내려가고 이 시점이 지난 응답은 조회 대상에서 빠집니다. 90일이 지나면 API로도 조회되지 않으니 그 안에 수집해 가시는 구조로 잡으셔야 합니다.

5. 동일 사용자의 중복 제출 식별

비즈니스폼+는 같은 폼에 동일 카카오계정이 두 번 응답할 수 없습니다. 폼 ID 기준으로 이미 응답한 카카오계정이 다시 진입하면 "이미 참여한 이벤트예요"가 표시되고 응답이 막힙니다.

그래서 응답 1건이 곧 응답자 1명이고 applyId(응답 ID)가 그 고유 키입니다. 별도로 사용자를 특정하는 키값은 제공하지 않습니다.

6. 재전송 시 중복 방지
두 가지로 나눠서 보시면 됩니다.

  • 응답자의 폼 제출: 5번대로 중복 제출 자체가 막혀 있어 별도 처리가 필요 없습니다.
  • 연동 시스템의 조회 재시도: 조회 API는 GET이라 같은 cursorId로 다시 호출하면 같은 결과가 나옵니다. 재시도가 데이터를 새로 만들지 않습니다. 적재하실 때 applyId를 유니크 키로 잡아 두시면 중복 적재도 함께 막으실 수 있습니다.

추가로 문의사항 있으시면 저한테 멘션 주시고 문의해주시면 됩니다.
이상입니다.