카카오 메시지(브랜드메시지) 발송하기 (Beta)
베타 서비스 안내
브랜드메시지 API는 현재 베타 서비스로 제공되고 있습니다. 정식 출시 전까지 일부 기능이 불안정할 수 있습니다. 문의사항은 고객센터로 문의해주세요.
브랜드메시지는 카카오톡 채널을 통해 고객에게 마케팅 메시지를 발송할 수 있는 비즈니스 메시징 서비스입니다.
생성된 브랜드메시지 템플릿을 기반으로 발송되며, 채널 친구뿐만 아니라 마케팅 수신 동의한 비친구에게도 발송할 수 있어 더 넓은 고객층에게 도달 가능합니다.
브랜드메시지 발송 전 필수 준비사항
브랜드메시지를 발송하기 위해서는 다음 사항이 필요합니다:
- 카카오 비즈니스 채널 생성 및 연동
- 브랜드메시지 템플릿 생성 완료
- 발신프로필(채널) ID 확인
- 브랜드메시지 템플릿 코드 확인
targeting
값 결정 (I/M/N)
브랜드메시지 기본형 발송하기
가장 기본적인 브랜드메시지 발송 방법입니다. I그룹(채널 친구)을 대상으로 메시지를 발송합니다.
const sendon = new Sendon({
id: SENDON_EXAM_ACCOUNT,
apikey: SENDON_EXAM_API_KEY,
debug: false,
});
const result = await sendon.kakao.sendBrandMessage({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateCode: SENDON_EXAM_BRAND_TEMPLATE_CODE,
targeting: "I",
to: [SENDON_EXAM_KAKAO_TO_PHONE],
});
console.log("브랜드메시지 발송 결과:", JSON.stringify(result, null, 2));
Sendon sendon = Sendon.getInstance(SENDON_EXAM_ACCOUNT, SENDON_EXAM_API_KEY);
SendBrandMessage sendBrandMessageResult = sendon.kakao.sendBrandMessage(new BrandMessageBuilder()
.setTemplateCode(SENDON_EXAM_BRAND_TEMPLATE_CODE)
.setTargetGroup("I")
.setTo(Arrays.asList(SENDON_EXAM_KAKAO_TO_PHONE)));
여러 수신자에게 동일한 브랜드메시지 발송하기
한 번의 API 호출로 여러 수신자에게 동일한 내용의 브랜드메시지를 발송할 수 있습니다.
const result = await sendon.kakao.sendBrandMessage({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateCode: SENDON_EXAM_BRAND_TEMPLATE_CODE,
targeting: "I",
to: [
SENDON_EXAM_KAKAO_TO_PHONE,
SENDON_EXAM_KAKAO_TO_PHONE2,
SENDON_EXAM_KAKAO_TO_PHONE3,
],
});
SendBrandMessage sendBrandMessageResult = sendon.kakao.sendBrandMessage(new BrandMessageBuilder()
.setTemplateCode(SENDON_EXAM_BRAND_TEMPLATE_CODE)
.setTargetGroup("I")
.setTo(Arrays.asList(
SENDON_EXAM_KAKAO_TO_PHONE,
SENDON_EXAM_KAKAO_TO_PHONE2,
SENDON_EXAM_KAKAO_TO_PHONE3
)));
변수가 포함된 브랜드메시지 발송하기
브랜드메시지 템플릿에 변수가 포함된 경우, 각 수신자별로 다른 변수값을 적용하여 개인화된 메시지를 발송할 수 있습니다.
const result = await sendon.kakao.sendBrandMessage({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateCode: SENDON_EXAM_BRAND_TEMPLATE_CODE,
targeting: "M", // 친구 + 비친구 모두 발송
to: [
{
phone: SENDON_EXAM_KAKAO_TO_PHONE,
variables: {
"#{이름}": "홍길동",
"#{포인트}": "1,234",
"#{등급}": "VIP",
},
},
],
});
JsonObject to = new JsonObject();
to.addProperty("phone", "01012345678");
JsonObject variables = new JsonObject();
variables.addProperty("#{이름}", "홍길동");
variables.addProperty("#{포인트}", "1,234");
variables.addProperty("#{등급}", "VIP");
to.add("variables", variables);
SendBrandMessage sendBrandMessageResult = sendon.kakao.sendBrandMessage(new BrandMessageBuilder()
.setTemplateCode(SENDON_EXAM_BRAND_TEMPLATE_CODE)
.setTargetGroup("M")
.setTo(Arrays.asList(to)));
주의: 변수는 반드시
#{변수명}
형식으로 작성해야 하며, 브랜드메시지 템플릿에 정의된 모든 변수에 대한 값을 제공해야 합니다.
타겟 그룹별 발송하기
브랜드메시지는 3가지 타겟 그룹으로 발송할 수 있습니다.
타겟 그룹 종류
타겟 그룹 (targeting ) | 설명 | 발송 조건 |
---|---|---|
I그룹 (I ) | 채널 친구 중 마케팅 수신 동의자 | 제한 없음 |
M그룹 (M ) | 마케팅 수신 동의한 모든 사용자 (친구+비친구) | 채널 친구 5만명 이상 |
N그룹 (N ) | 마케팅 수신 동의한 비친구만 | 채널 친구 5만명 이상 |
N그룹(비친구) 발송 예시
채널 친구가 5만명 이상인 경우, 비친구에게도 브랜드메시지를 발송할 수 있습니다.
const result = await sendon.kakao.sendBrandMessage({
sendProfileId: SENDON_EXAM_KAKAO_PROFILE_ID,
templateCode: SENDON_EXAM_BRAND_TEMPLATE_CODE,
targeting: "N", // 비친구만 발송
to: [SENDON_EXAM_KAKAO_TO_PHONE],
});
파라미터 상세 설명
필수 파라미터
파라미터 | 타입 | 설명 |
---|---|---|
sendProfileId | string | 발신프로필(채널) ID |
templateCode | string | 브랜드메시지 템플릿 코드 |
to | string[] 또는 object[] | 수신자 정보 (전화번호 또는 전화번호와 변수값) |
선택 파라미터
파라미터 | 타입 | 설명 |
---|---|---|
targeting | string | 타겟 그룹 지정 (I , M , N ) |
reservation | object | 예약 발송 설정 ({ dateTime: ISO8601 } ) |
fallback | object | 대체 발송 설정 (fallbackType , custom 등) |
useCredit | boolean | 크레딧 우선 차감 여부 |
응답 형식
성공적으로 요청이 처리되면 다음과 같은 응답을 받습니다:
{
"code": 200,
"message": "성공",
"data": {
"groupId": "84db8cbb-db70-4e68-8ee7-c37704787e0d"
}
}
groupId
는 발송 요청 단위를 식별하는 값으로, 카카오 메시지 발송결과 조회하기에서 발송 현황을 확인할 때 사용합니다.
주의사항
- 브랜드메시지는 마케팅 메시지에만 사용해야 합니다
- 채널 친구 5만명 미만인 경우 I그룹만 발송 가능합니다
- M그룹과 N그룹은 채널 친구 5만명 이상인 경우에만 사용 가능합니다
- 비친구 발송 시 더 높은 단가가 적용됩니다 (15원 vs 8.8원)
- 전화번호는 하이픈(-) 없이 제공해야 합니다 (예: 01012345678)
관련 링크
- [카카오 브랜드메시지 템플릿 관리하기](../카카오 채널:템플릿 관리하기/카카오-브랜드메시지-템플릿.md)
- 카카오톡 레시피
Updated 20 days ago