카카오 브랜드메시지 템플릿 관리하기 (Beta)

브랜드메시지 템플릿을 생성하고 관리하는 방법을 안내합니다

🧪

베타 서비스 안내

브랜드메시지 API는 현재 베타 서비스로 제공되고 있습니다. 정식 출시 전까지 일부 기능이 불안정할 수 있습니다. 문의사항은 고객센터로 문의해주세요.

브랜드메시지는 카카오의 새로운 비즈 메시지 상품으로, 카카오톡 채널 친구뿐 아니라 마케팅 수신에 동의한 비친구까지 도달할 수 있는 광고성 메시지 서비스입니다. 알림톡과 달리 카카오 검수 없이 즉시 사용 가능한 브랜드메시지 템플릿을 통해 빠르게 캠페인을 운영할 수 있습니다.


브랜드메시지 주요 특징

타겟 그룹

  • I그룹: 채널 친구 중 마케팅 수신 동의한 사용자 (기본)
  • M그룹: 카카오톡 채널 마케팅 수신 동의한 전체 사용자 (채널 친구 + 비친구)
  • N그룹: 마케팅 수신 동의했지만 채널 친구가 아닌 사용자
ℹ️

발송 조건

  • 채널 친구 5만명 미만: I그룹만 발송 가능
  • 채널 친구 5만명 이상: M그룹, N그룹 발송 가능
📖

타겟 그룹 상세 가이드

각 타겟 그룹의 특징과 활용 전략에 대한 자세한 내용은 카카오 브랜드메시지 타게팅 타입 이해하기 문서를 참고하세요.


브랜드메시지 템플릿 타입

1. 텍스트형 (Text Type)

가장 기본적인 메시지 타입으로, 텍스트와 버튼으로만 구성됩니다.

특징

  • 최대 1000자 텍스트
  • 버튼 최대 5개
  • 간단한 공지사항이나 안내 메시지에 적합

요청 예제

async function createTextBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

  const result = await sendon.kakao.createBrandMessageTextTemplate(
    sendProfileId,
    {
      templateName: "여름 세일 안내",
      content:
        "안녕하세요 #{이름}님!\n\n여름 특별 세일이 시작되었습니다.\n최대 70% 할인 혜택을 놓치지 마세요!",
      buttons: [
        {
          name: "세일 상품 보기",
          linkType: "WL",
          linkM: "https://m.example.com/sale",
          linkP: "https://www.example.com/sale",
        },
      ],
    }
  );

  console.log("텍스트형 템플릿 생성:", JSON.stringify(result, null, 2));
}

2. 이미지형 (Image Type)

500x250 사이즈의 이미지와 함께 텍스트, 버튼을 포함할 수 있습니다.

특징

  • 이미지: 500x250 픽셀 (JPG, PNG, 최대 2MB)
  • 텍스트: 최대 400자
  • 버튼: 최대 5개
  • 제품 소개, 이벤트 홍보 등 시각적 효과가 필요한 마케팅 메시지에 적합

요청 예제

async function createImageBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

  // 먼저 이미지 업로드
  const imageUpload = await sendon.kakao.uploadBrandMessageImage(imageFile);

  const result = await sendon.kakao.createBrandMessageImageTemplate(
    sendProfileId,
    {
      templateName: "신제품 출시",
      imageUrl: imageUpload.data.image,
      imageName: "브랜드 이미지",
      imageLink: "https://www.example.com/new",
      content: "#{이름}님을 위한 특별한 신제품!\n지금 바로 만나보세요.",
      buttons: [
        {
          name: "자세히 보기",
          linkType: "WL",
          linkM: "https://m.example.com/new",
          linkP: "https://www.example.com/new",
        },
      ],
    }
  );

  console.log("이미지형 템플릿 생성:", JSON.stringify(result, null, 2));
}

3. 와이드형 (Wide Type)

800x600 사이즈의 큰 이미지를 사용하여 강력한 시각적 효과를 제공합니다.

특징

  • 이미지: 800x600 픽셀 (JPG, PNG, 최대 2MB)
  • 텍스트 없음 (이미지와 버튼만)
  • 버튼: 최대 2개
  • 브랜드 이미지 강조, 대형 프로모션에 효과적

요청 예제

async function createWideBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

  // 먼저 와이드 이미지 업로드
  const imageUpload = await sendon.kakao.uploadBrandMessageWideImage(
    wideImageFile
  );

  const result = await sendon.kakao.createBrandMessageWideTemplate(
    sendProfileId,
    {
      templateName: "브랜드 캠페인",
      wideImageUrl: imageUpload.data.image,
      buttons: [
        {
          name: "캠페인 참여하기",
          linkType: "WL",
          linkM: "https://m.example.com/campaign",
          linkP: "https://www.example.com/campaign",
        },
      ],
    }
  );

  console.log("와이드형 템플릿 생성:", JSON.stringify(result, null, 2));
}

4. 와이드 리스트형 (Wide Item List Type)

와이드 이미지와 함께 여러 개의 항목을 리스트 형태로 표시합니다.

특징

  • 와이드 이미지: 800x600 픽셀
  • 리스트 항목: 최대 5개 (각 항목은 제목 + 설명)
  • 버튼: 최대 2개
  • 여러 제품이나 서비스를 한 번에 소개할 때 효과적

요청 예제

async function createWideItemListBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

  const result = await sendon.kakao.createBrandMessageWideItemListTemplate(
    sendProfileId,
    {
      templateName: "이달의 베스트 상품",
      wideImageUrl: "https://cdn.example.com/wide-banner.jpg",
      items: [
        { title: "상품 A", description: "인기 1위 상품" },
        { title: "상품 B", description: "신규 회원 추천" },
        { title: "상품 C", description: "재구매율 1위" },
      ],
      buttons: [
        {
          name: "전체 상품 보기",
          linkType: "WL",
          linkM: "https://m.example.com/products",
          linkP: "https://www.example.com/products",
        },
      ],
    }
  );

  console.log("와이드 리스트형 템플릿 생성:", JSON.stringify(result, null, 2));
}

5. 캐러셀 피드형 (Carousel Feed Type)

여러 개의 카드를 좌우로 스와이프하여 볼 수 있는 형태입니다.

특징

  • 카드 개수: 최소 2개, 최대 6개
  • 각 카드: 헤더(최대 20자) + 본문(최대 180자) + 이미지(500×250) + 버튼(최대 2개)
  • 다양한 제품이나 콘텐츠를 순차적으로 소개할 때 효과적

요청 예제

async function createCarouselFeedBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

  const result = await sendon.kakao.createBrandMessageCarouselFeedTemplate(
    sendProfileId,
    {
      templateName: '추천 상품 컬렉션',
      carousel: {
        list: [
          {
            header: '인기 상품 1',
            content: '베스트셀러 1위',
            imageUrl: 'https://cdn.example.com/product1.jpg',
            imageLink: 'https://www.example.com/product/1',
            buttons: [
              {
                name: '구매하기',
                linkType: 'WL',
                linkM: 'https://m.example.com/product/1',
                linkP: 'https://www.example.com/product/1',
              },
            ],
          },
          {
            header: '인기 상품 2',
            content: '리뷰 평점 4.9',
            imageUrl: 'https://cdn.example.com/product2.jpg',
            buttons: [
              {
                name: '구매하기',
                linkType: 'WL',
                linkM: 'https://m.example.com/product/2',
                linkP: 'https://www.example.com/product/2',
              },
            ],
          },
          // ... 최소 2개, 최대 6개까지 추가 가능
        ],
        // tail은 선택값입니다. 캐러셀 하단에 공통 이동 버튼을 노출할 때 사용하세요.
        tail: {
          linkM: 'https://m.example.com/products',
          linkP: 'https://www.example.com/products',
        },
      },
    }
  )

  console.log('캐러셀 피드형 템플릿 생성:', JSON.stringify(result, null, 2))
}

브랜드메시지 템플릿 관리

템플릿 목록 조회

생성된 브랜드메시지 템플릿 목록을 조회합니다.

async function getBrandMessageTemplates() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

const result = await sendon.kakao.getBrandMessageTemplates(sendProfileId, {
    messageType: 'BMI', // BMT(텍스트), BMI(이미지), BMW, BMWL, BMCF
    status: 'APPROVED', // PENDING, APPROVED, REJECTED
    limit: 20,
    cursor: undefined, // 다음 페이지 조회 시 이전 응답의 cursor 사용
  });

  console.log('브랜드메시지 템플릿 목록:', JSON.stringify(result, null, 2));
}

> `messageType` 값은 브랜드메시지 템플릿 타입을 의미합니다. `BMT`(텍스트), `BMI`(이미지), `BMW`(와이드), `BMWL`(와이드 리스트), `BMCF`(캐러셀 피드) 중에서 선택할 수 있습니다.

템플릿 상세 조회

특정 브랜드메시지 템플릿의 상세 정보를 조회합니다.

async function getBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID
  const templateCode = "BM_001";

  const result = await sendon.kakao.getBrandMessageTemplate(
    sendProfileId,
    templateCode
  );

  console.log("템플릿 상세 정보:", JSON.stringify(result, null, 2));
}

템플릿 수정

브랜드메시지 템플릿을 수정합니다. 수정 즉시 적용되며 별도의 검수 과정이 없습니다.

async function updateBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID
  const templateCode = "BM_001";

  const result = await sendon.kakao.updateBrandMessageTextTemplate(
    sendProfileId,
    templateCode,
    {
      templateName: "수정된 템플릿명",
      content: "수정된 내용입니다.",
      buttons: [
        {
          name: "수정된 버튼",
          linkType: "WL",
          linkM: "https://m.example.com/updated",
          linkP: "https://www.example.com/updated",
        },
      ],
    }
  );

  console.log("템플릿 수정 결과:", JSON.stringify(result, null, 2));
}

템플릿 삭제

더 이상 사용하지 않는 브랜드메시지 템플릿을 삭제합니다.

async function deleteBrandMessageTemplate() {
  const sendProfileId = SEND_PROFILE_ID; // 발신프로필(채널) ID

  const result = await sendon.kakao.deleteBrandMessageTemplate(
    sendProfileId,
    "BM_001"
  );

  console.log("템플릿 삭제 결과:", JSON.stringify(result, null, 2));
}


주의사항

⚠️

브랜드메시지 템플릿 사용 시 주의사항

  1. 템플릿 즉시 사용: 검수 없이 바로 사용 가능하므로 내용 검토 필수
  2. 개인화 변수: #{변수명} 형식으로 작성하며, 발송 시 실제 값으로 치환
  3. 이미지 업로드: 템플릿 생성 전 이미지를 먼저 업로드해야 함
  4. 메시지 타입별 제한: 각 타입별 텍스트 길이, 버튼 개수 등 제한 준수

모범 사례

  • ✅ 메시지 타입별 특성을 활용한 효과적인 템플릿 설계
  • ✅ 개인화 변수를 활용한 맞춤형 메시지 구성
  • ✅ 명확하고 간결한 메시지 작성
  • ✅ 버튼 텍스트와 링크의 일관성 유지
  • ✅ 정기적인 템플릿 관리 및 정리

관련 문서