본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

관련사이트
  • 문서
  • 쉬운 메시지광고: 개인화 메시지광고 운영

사이드 메뉴

카카오맵

검색

쉬운 메시지광고: 개인화 메시지광고 운영

이 문서는 카카오모먼트 쉬운 메시지광고의 개인화 메시지광고 운영 및 발송 요청 API에 대한 사용 방법을 안내합니다.

시작하기 전에

개인화 메시지광고는 메시지 유형에 따라 구성 요소가 상이해 사용 가능한 파라미터와 변수가 서로 다릅니다. 자세한 내용은 자세한 내용은 개인화 메시지 유형별 구성 요소, 개인화 메시지 유형별 사용 가능 변수를 참고합니다.

발송 가능 메시지 유형

쉬운 메시지광고는 아래 유형의 메시지를 발송할 수 있습니다. 각 메시지 유형별 세부 사항은 카카오비즈니스 채널 메시지 가이드를 참고합니다.

이름메시지 유형
기본 텍스트BASIC_TEXT_MESSAGE
와이드 이미지WIDE_MESSAGE
와이드 리스트WIDE_LIST_MESSAGE
캐러셀 커머스CAROUSEL_COMMERCE_MESSAGE
캐러셀 피드CAROUSEL_FEED_MESSAGE
프리미엄 동영상(PREMIUM_VIDEO_MESSAGE) 메시지 유형은 쉬운 메시지광고 API로 발송할 수 없습니다.

개인화 메시지 유형별 구성 요소

개인화 메시지 유형별 구성 요소의 필드 경로, 규격, 필수 여부 정보에 대해 안내합니다.

기본 텍스트(BASIC_TEXT_MESSAGE)

구성 요소 및 필드 경로규격필수
홍보 영역
message.items.imageUrl
message.items.videoUrl
  • 홍보 영역 공통 규격을 준수한 이미지 또는 동영상 중 하나 적용 가능
  • 랜딩: 이미지 적용 시 버튼1 랜딩 URL로 연결(별도 설정 불가), 동영상 적용 시 카카오TV 동영상 URL로 자동 등록
X
홍보 문구
message.title
  • 글자 수: 홍보 영역 이미지 또는 동영상 적용 시 최대 300자(미포함 시 최대 400자), 링크 입력 불가
  • 개행: 최대 29개
  • 랜딩: 사용 불가
O
버튼1
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
버튼2
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
쿠폰
message.couponBook
  • 랜딩: 등록한 쿠폰 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 쿠폰 유형, 쿠폰 타이틀, 쿠폰 상세 설명, 쿠폰 모바일 랜딩 URL
X

와이드 이미지(WIDE_MESSAGE)

구성 요소 및 필드 경로규격필수
홍보 영역
message.items.imageUrl
message.items.videoUrl
  • 홍보 영역 공통 규격을 준수한 이미지 또는 동영상 중 하나 적용 가능
  • 랜딩: 이미지 적용 시 아이템 랜딩 URL 등록 필수 및 해당 URL로 연결, 동영상 적용 시 카카오TV 동영상 URL로 자동 등록
O
홍보 문구
message.title
  • 글자 수: 최대 76자, 링크 입력 불가
  • 개행: 최대 1개(필드에서 포커스 이동 시 유효성 검증)
  • 랜딩: 홍보 영역 이미지 적용 시 아이템 랜딩 URL 등록 필수 및 해당 URL로 연결, 동영상 적용 시 카카오TV 동영상 URL로 자동 등록
O
아이템 모바일 랜딩 URL
message.items.mobileLandingUrl
  • PC 카카오톡에서 별도의 URL로 랜딩이 필요한 경우 아이템 PC 랜딩 URL 추가 등록 가능
O
버튼1
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
버튼2
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
쿠폰
message.couponBook
  • 랜딩: 등록한 쿠폰 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 쿠폰 유형, 쿠폰 타이틀, 쿠폰 상세 설명, 쿠폰 모바일 랜딩 URL
X

와이드 리스트(WIDE_LIST_MESSAGE)

구성 요소 및 필드 경로규격필수
홍보 영역
message.items.imageUrl
message.items.videoUrl
  • 홍보 영역 공통 규격을 준수한 이미지 또는 동영상 중 하나 적용 가능
  • 랜딩: 이미지 적용 시 필수 등록 필요, 동영상 적용 시 카카오TV 동영상 URL로 자동 등록
  • 필수 여부*: 리스트1~3 필수, 리스트4 선택
O*
타이틀
message.title
  • 글자 수: 최대 20자, 링크 입력 불가, 개행 불가
  • 랜딩: 홍보 영역 이미지 적용 시 아이템 랜딩 URL 등록 필수 및 해당 URL로 연결, 동영상 적용 시 카카오TV 동영상 URL로 자동 등록
O
아이템 홍보 문구
message.items.title
  • 리스트1 글자 수: 최대 25자, 링크 입력 불가, 개행 불가
  • 리스트2~4 글자 수: 최대 30자, 링크 입력 불가, 개행 불가
  • 랜딩: 홍보 영역 이미지 적용 시 아이템 랜딩 URL 등록 필수 및 해당 URL로 연결, 동영상 적용 시 카카오TV 동영상 URL로 자동 등록
  • 필수 여부*: 리스트2~3 필수, 리스트1과 리스트4 선택
O*
아이템 모바일 랜딩 URL
message.items.mobileLandingUrl
  • PC 카카오톡에서 별도의 URL로 랜딩이 필요한 경우 아이템 PC 랜딩 URL 추가 등록 가능
O
버튼1
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
버튼2
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
쿠폰
message.couponBook
  • 랜딩: 등록한 쿠폰 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 쿠폰 유형, 쿠폰 타이틀, 쿠폰 상세 설명, 쿠폰 모바일 랜딩 URL
X

캐러셀 커머스(CAROUSEL_COMMERCE_MESSAGE)

  • 인트로와 캐러셀(1~6)으로 구분
  • 인트로 포함 시 캐러셀1 필수, 미포함 시 캐러셀1~2 필수
인트로
구성 요소 및 필드 경로규격필수
타이틀
message.introCarousel.title
  • 글자 수: 최대 20자, 링크 입력 불가, 개행 불가
O
홍보 이미지
message.introCarousel.imageUrl
  • 홍보 영역 공통 규격을 준수한 이미지만 적용 가능
  • 권장 크기: 800x400(2:1 비율), 800x800(1:1 비율), 800x600(4:3 비율)
  • 랜딩: 등록한 인트로 랜딩 URL로 연결
O
홍보 문구
message.introCarousel.description
  • 글자 수: 최대 20자, 링크 입력 불가, 개행 불가
  • 랜딩: 등록한 인트로 랜딩 URL로 연결
O
인트로 모바일 랜딩 URL
message.introCarousel.mobileLandingUrl
  • PC 카카오톡에서 별도의 URL로 랜딩이 필요한 경우 인트로 PC 랜딩 URL 추가 등록 가능
X
캐러셀
구성 요소 및 필드 경로규격필수
타이틀
message.carousels.title
  • 글자 수: 최대 25자, 링크 입력 불가, 개행 불가
O
홍보 이미지
message.carousels.imageUrl
  • 홍보 영역 공통 규격을 준수한 이미지만 적용 가능
  • 권장 크기: 800x400(2:1 비율), 800x800(1:1 비율), 800x600(4:3 비율)
  • 랜딩: 버튼1 랜딩 URL로 연결
O
홍보 문구
message.carousels.description
  • 글자 수: 최대 50자, 링크 입력 불가
  • 개행: 최대 2개
  • 랜딩: 버튼1 랜딩 URL로 연결
O
캐러셀 모바일 랜딩 URL
message.carousels.mobileLandingUrl
  • 버튼1 랜딩 URL로 적용
  • PC 카카오톡에서 별도의 URL로 랜딩이 필요한 경우 캐러셀 PC 랜딩 URL 추가 등록 가능
O
가격 정보
message.carousels.priceAmount
  • 통화 정보가 원화(원) 또는 엔화(¥)인 경우 8자리 이하 정수(0~99999999)만 입력 가능
  • 통화 정보가 달러($) 또는 유로(€)인 경우 8자리 이하 정수 또는 8자리 이하 정수와 소수점 2자리까지 포함한 수(0~99999999.99) 입력 가능
O
통화 정보
message.carousels.priceCurrencyCode
  • 가격 정보의 통화 단위 설정
  • 원화(원), 달러($), 엔화(¥), 유로(€) 중 하나로 적용 가능
O
할인 가격 정보
message.carousels.discountedPriceAmount
  • 가격 정보값 미만의 1% 이상 차이나는 값 입력 필수
  • 할인율: 할인 가격 정보 입력 시 자동 계산 및 소수점 이하 버림 후 적용(1%~100%)
X
버튼1
message.carousels
  • 사용자 설정 불가, 아래 속성을 갖는 버튼으로 자동 생성됨
  • 버튼명: 구매하기
  • 랜딩: 등록한 캐러셀 랜딩 URL로 연결
O
버튼2
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X

캐러셀 피드(CAROUSEL_FEED_MESSAGE)

  • 캐러셀1~2 필수, 캐러셀3~6은 선택
구성 요소 및 필드 경로규격필수
타이틀
message.carousels.title
  • 글자 수: 최대 20자, 링크 입력 불가, 개행 불가
  • 랜딩: 버튼1 랜딩 URL로 연결
O
홍보 이미지
message.carousels.imageUrl
  • 홍보 영역 공통 규격을 준수한 이미지만 적용 가능
  • 캐러셀1~6 모두 동일한 비율의 이미지 등록 필수
  • 권장 크기: 800x400(2:1 비율), 800x600(4:3 비율)
  • 랜딩: 버튼1 랜딩 URL로 연결
O
홍보 문구
message.carousels.description
  • 글자 수: 최대 180자, 링크 입력 불가, 개행 불가
  • 랜딩: 버튼1 랜딩 URL로 연결
O
버튼1
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
O
버튼2
message.buttons
  • 버튼명: 띄어쓰기 포함 최대 8자
  • 랜딩: 등록한 버튼 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 버튼명, 버튼 모바일 랜딩 URL
X
쿠폰
message.couponBook
  • 랜딩: 등록한 쿠폰 랜딩 URL로 연결
  • 해당 요소 포함 시 필수: 쿠폰 유형, 쿠폰 타이틀, 쿠폰 상세 설명, 쿠폰 모바일 랜딩 URL
X

홍보 영역 공통 규격

  • 이미지
    • 포멧: JPG, JPEG, PNG
    • 크기: 가로 80px 초과(권장: 800x400, 800x800, 800x600)
    • 용량: 10MB 이하
    • 비율: 가로:세로 비율 1:2.5 미만(권장: 2:1, 1:1, 4:3)
  • 동영상
    • 카카오TV 채널에 업로드 된 공개 영상만 등록 가능

개인화 메시지 유형별 사용 가능 변수

개인화 메시지광고로 발송하는 개인화 메시지의 변수 사용 정책에 대해 안내합니다.

각 메시지 유형 항목에서 구성 요소별 사용 가능한 변수 유형을 확인할 수 있습니다. 변수 유형별 세부 규격 및 제약 사항은 변수 유형 목록을 참고합니다.

변수 사용 시 구성 요소 글자 수

메시지 유형별 구성 요소의 글자 수는 변수를 포함하면 변수 유형 목록의 최대 길이까지 작성할 수 있지만, 변수를 제외한 실제 노출 글자 수는 개인화 메시지 유형별 구성 요소의 규격을 따라야 합니다.

기본 텍스트(BASIC_TEXT_MESSAGE)

구성 요소 및 필드 경로사용 가능 변수
홍보 영역
message.items.imageUrl
message.items.videoUrl
이미지 URL: 미디어 중 [이미지 URL] 만 사용 가능
동영상 URL: 미디어 중 [동영상 URL] 만 사용 가능
랜딩: 이미지 적용 시 랜딩 사용 가능, 동영상 적용 시 카카오TV 동영상 URL로 자동 적용
홍보 문구
message.title
텍스트
버튼1
message.buttons
버튼명: 텍스트
랜딩: 랜딩
버튼2
message.buttons
버튼명: 텍스트
랜딩: 랜딩
쿠폰
message.couponBook
쿠폰명: 텍스트
랜딩: 랜딩

와이드 이미지(WIDE_MESSAGE)

구성 요소 및 필드 경로사용 가능 변수
홍보 영역
message.items.imageUrl
message.items.videoUrl
이미지 URL: 미디어 중 [이미지 URL] 만 사용 가능
동영상 URL: 미디어 중 [동영상 URL] 만 사용 가능
랜딩: 이미지 적용 시 랜딩 사용 가능, 동영상 적용 시 카카오TV 동영상 URL로 자동 적용
홍보 문구
message.title
텍스트
버튼1
message.buttons
버튼명: 텍스트
랜딩: 랜딩
버튼2
message.buttons
버튼명: 텍스트
랜딩: 랜딩
쿠폰
message.couponBook
쿠폰명: 텍스트
랜딩: 랜딩

와이드 리스트(WIDE_LIST_MESSAGE)

구성 요소 및 필드 경로사용 가능 변수
아이템 홍보 영역
message.items.imageUrl
message.items.videoUrl
이미지 URL: 미디어 중 이미지 URL
동영상 URL: 미디어 중 동영상 URL
랜딩: 이미지 적용 시 랜딩 사용 가능, 동영상 적용 시 카카오TV 동영상 URL로 자동 적용
아이템 홍보 문구
message.items.title
텍스트
버튼1
message.buttons
버튼명: 텍스트
랜딩: 랜딩
버튼2
message.buttons
버튼명: 텍스트
랜딩: 랜딩
쿠폰
message.couponBook
쿠폰명: 텍스트
랜딩: 랜딩

캐러셀 커머스(CAROUSEL_COMMERCE_MESSAGE)

인트로
구성 요소 및 필드 경로사용 가능 변수
홍보 이미지
message.introCarousel.imageUrl
이미지 URL: 미디어 중 이미지 URL
랜딩: 랜딩
홍보 문구
message.introCarousel.description
텍스트
캐러셀
구성 요소 및 필드 경로사용 가능 변수
타이틀
message.carousels.title
텍스트
홍보 이미지
message.carousels.imageUrl
이미지 URL: 미디어 중 [이미지 URL] 만 사용 가능
랜딩: 랜딩
홍보 문구
message.carousels.description
텍스트
가격 정보
message.carousels.priceAmount
가격 중 [상품 정상 가격] 만 사용 가능
할인 가격 정보
message.carousels.discountedPriceAmount
가격 중 [상품 할인 가격] 만 사용 가능
버튼1
message.carousels
버튼명: 구매하기로 고정
랜딩: 랜딩
버튼2
message.buttons
버튼명: 텍스트
랜딩: 랜딩

캐러셀 피드(CAROUSEL_FEED_MESSAGE)

구성 요소 및 필드 경로사용 가능 변수
타이틀
message.carousels.title
텍스트
홍보 이미지
message.carousels.imageUrl
이미지 URL: 미디어 중 [이미지 URL] 만 사용 가능
랜딩: 랜딩
홍보 문구
message.carousels.description
텍스트
버튼1
message.buttons
버튼명: 텍스트
랜딩: 랜딩
버튼2
message.buttons
버튼명: 텍스트
랜딩: 랜딩
쿠폰
message.couponBook
버튼명: 텍스트
랜딩: 랜딩

변수 유형 목록

텍스트
변수명필드명타입변수 패턴최대 개수최대 길이
날짜dateString${date1} ~
${date4}
420
사이트명site_nameString${site_name1}130
브랜드명brand_nameString${brand_name1}130
고객 이름user_nameString${user_name1}120
고객 IDuser_idString${user_id1}120
고객 등급user_ratingString${user_rating1}120
적립금available_pointInteger${available_point1}110
쿠폰 개수available_couponInteger${available_coupon1}110
상품 IDproduct_idString${product_id1} ~
${product_id7}
750
상품명product_nameString${product_name1} ~
${product_name7}
725
할인율discount_percentInteger${discount_percent1} ~
${discount_percent7}
72
가격
변수명필드명타입변수 패턴최대 개수최대 길이
상품 정상 가격priceInteger${price1} ~
${price7}
78
상품 할인 가격sale_priceInteger${sale_price1} ~
${sale_price7}
78
할인 금액discount_amountInteger${discount_amount1} ~
${discount_amount7}
78
미디어
변수명필드명타입변수 패턴최대 개수최대 길이
이미지 URLimage_urlString${image_url1} ~
${image_url7}
71000
동영상 URLvideo_urlString${video_url1} ~
${video_url4}
41000
랜딩
변수명필드명타입변수 패턴최대 개수최대 길이
모바일 URLmobile_urlString${mobile_url1} ~
${mobile_url13}
131000
PC URLpc_urlString${pc_url1} ~
${pc_url13}
131000

인코딩

URL에 UTF-8 코드로 인코딩(Encoding)되지 않은 특수문자나 한글이 포함될 경우, iOS 기기의 카카오톡 인앱브라우저에서 광고가 정상 랜딩되지 않을 수 있습니다. 아래는 랜딩 오류가 발생할 수 있는 특수문자의 예시입니다.

  • %
  • |

또한 파라미터 및 매크로 치환이 필요한 딥링크(Deeplink) 형식의 URL은 공식 지원하지 않습니다.

개인화 메시지광고 저장

기본 정보
메서드URL인증 방식
POSThttps://apis.moment.kakao.com/openapi/message/v1/message-ads/personal비즈니스 토큰

카카오톡 채널에서 발송될 개인화 메시지광고 내용을 저장합니다.

메시지 유형(type)에 따라 파라미터의 사용 가능 여부와 필수 여부가 다릅니다. 관련된 자세한 내용은 메시지 유형별 구성 요소를 참고합니다.

비즈니스 토큰과 카카오톡 채널 프로필 ID를 헤더에 담아 POST로 요청합니다. 요청 성공 시 응답은 생성된 메시지의 상세 정보를 포함합니다. 실패 시 에러 코드상세 에러 코드로 원인을 확인합니다.

이 API는 사용자 계정과 광고계정마다 1초에 1회만 요청 가능하도록 제한되어 있습니다.

요청

헤더
이름설명필수
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
인증 방식, 비즈니스 토큰으로 인증 요청
O
channel-profile-idchannel-profile-id: ${CHANNEL_PROFILE_ID}
카카오톡 채널 프로필 ID
O
Content-TypeContent-Type: application/json
요청 데이터 타입
O
본문
이름타입설명필수
nameString메시지 이름
최대 50자
X
ageVerificationBoolean연령인증 필요 메시지 여부
  • true: 연령인증 필요 메시지
  • false: 일반 메시지(기본값)
X
messageMessage생성할 메시지 정보O

응답

본문

예제

요청
curl -X POST "https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "channel-profile-id: ${CHANNEL_PROFILE_ID}" \
-H "Content-Type: application/json" \
-d '{
"name": "개인화_메시지광고_테스트_베이직_텍스트",
"ageVerification": false,
"message": {
"type": "BASIC_TEXT_MESSAGE",
"title": "홍보문구",
"adFlag": false,
"items": [
{
"imageUrl": "${image_url1}"
}
],
"buttons": [
{
"title": "버튼 1 버튼명",
"pcLandingUrl": "${pc_url1}",
"mobileLandingUrl": "${mobile_url1}"
},
{
"title": "버튼 2 버튼명",
"pcLandingUrl": "https://daum.net/1",
"mobileLandingUrl": "https://daum.net/1"
}
],
"couponBook": {
"couponBookTitleType": "UPGRADE",
"couponBookTitle": "쿠폰 타이틀",
"title": "쿠폰 상세 설명",
"pcLandingUrl": "https://daum.net",
"mobileLandingUrl": "https://daum.net"
}
}
}'
응답
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"messageAdId": "msg-ad-1195203776475586560",
"name": "개인화_메시지광고_테스트_베이직_텍스트",
"type": "BASIC_TEXT_MESSAGE",
"title": "홍보문구",
"items": [
{
"imageUrl": "${image_url1}"
}
],
"buttons": [
{
"title": "버튼 1 버튼명",
"pcLandingUrl": "${pc_url1}",
"mobileLandingUrl": "${mobile_url1}"
},
{
"title": "버튼 2 버튼명",
"pcLandingUrl": "https://daum.net/1",
"mobileLandingUrl": "https://daum.net/1"
}
],
"couponBook": {
"title": "쿠폰 상세 설명",
"pcLandingUrl": "https://daum.net",
"mobileLandingUrl": "https://daum.net",
"couponBookTitle": "쿠폰 타이틀",
"couponBookTitleType": "UPGRADE"
},
"ageVerification": false,
"adFlag": false
}

개인화 메시지 수정

기본 정보
메서드URL인증 방식
PATCH https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/message비즈니스 토큰

카카오톡 채널에서 발송될 개인화 메시지광고 내용을 수정합니다.

메시지 수정 정책은 아래와 같습니다.

  • 기존의 메시지와 동일한 포맷이어야 합니다. 이름을 제외한 다른 파라미터는 무시됩니다.
  • 메시지 집행 가이드와 맞지 않는 이미지와 문구는 사용할 수 없습니다.

메시지 유형(type)에 따라 파라미터의 사용 가능 여부와 필수 여부가 다릅니다. 관련된 자세한 내용은 메시지 유형별 구성 요소를 참고합니다.

비즈니스 토큰과 카카오톡 채널 프로필 ID를 헤더에 담아 PATCH로 요청합니다. 요청 성공 시 응답은 수정된 메시지의 상세 정보를 포함합니다. 실패 시 에러 코드상세 에러 코드로 원인을 확인합니다.

요청

헤더
이름설명필수
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
인증 방식, 비즈니스 토큰으로 인증 요청
O
channel-profile-idchannel-profile-id: ${CHANNEL_PROFILE_ID}
카카오톡 채널 프로필 ID
O
Content-TypeContent-Type: application/json
요청 데이터 타입
O
경로 변수
이름타입설명필수
MESSAGE_AD_IDString메시지광고 번호(messageAdId)O
본문
이름타입설명필수
nameString메시지 이름
최대 50자
X
ageVerificationBoolean연령인증 필요 메시지 여부
  • true: 연령인증 필요 메시지
  • false: 일반 메시지
미지정 시 false로 자동 설정
X
messageMessage생성할 메시지 정보O

응답

본문

예제

요청
curl -X PATCH "https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/message" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "channel-profile-id: ${CHANNEL_PROFILE_ID}" \
-H "Content-Type: application/json" \
-d '{
"name": "개인화_메시지광고_테스트_베이직_텍스트",
"ageVerification": false,
"message": {
"type": "BASIC_TEXT_MESSAGE",
"title": "홍보문구 변경",
"adFlag": false,
"items": [
{
"imageUrl": "${image_url1}"
}
],
"buttons": [
{
"title": "버튼 1 버튼명",
"pcLandingUrl": "${pc_url1}",
"mobileLandingUrl": "${mobile_url1}"
},
{
"title": "버튼 2 버튼명",
"pcLandingUrl": "https://daum.net/1",
"mobileLandingUrl": "https://daum.net/1"
}
]
}
}'
응답
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"messageAdId": "msg-ad-1195203776475586560",
"name": "개인화_메시지광고_테스트_베이직_텍스트",
"type": "BASIC_TEXT_MESSAGE",
"title": "홍보문구 변경",
"items": [
{
"imageUrl": "${image_url1}"
}
],
"buttons": [
{
"title": "버튼 1 버튼명",
"pcLandingUrl": "${pc_url1}",
"mobileLandingUrl": "${mobile_url1}"
},
{
"title": "버튼 2 버튼명",
"pcLandingUrl": "https://daum.net/1",
"mobileLandingUrl": "https://daum.net/1"
}
],
"ageVerification": false,
"adFlag": false
}

개인화 메시지광고 테스트 발송

기본 정보
메서드URL인증 방식
POSThttps://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/send-test비즈니스 토큰

개인화 메시지광고의 테스트 발송을 요청합니다.

발송 시 홍보문구 영역에 [테스트 발송]이 추가되어 발송됩니다. 친구 관계인 전화번호 대상으로만 발송되며 사용자 계정, 광고계정마다 1분에 1회씩 테스트 발송이 가능합니다.

비즈니스 토큰과 카카오톡 채널 프로필 ID를 헤더에 담아 POST로 요청합니다. 요청 성공 시 응답 본문은 없습니다. 실패 시 에러 코드상세 에러 코드로 원인을 확인합니다.

요청

헤더
이름설명필수
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
인증 방식, 비즈니스 토큰으로 인증 요청
O
channel-profile-idchannel-profile-id: ${CHANNEL_PROFILE_ID}
카카오톡 채널 프로필 ID
O
Content-TypeContent-Type: application/json
요청 데이터 타입
O
경로 변수
이름타입설명필수
MESSAGE_AD_IDString메시지광고 번호(messageAdId)O
본문
이름타입설명필수
phoneNumberString발송 대상 전화번호, 010-1234-5678 형식O
variablesJSON메시지 템플릿 사용 변수의 키-값 쌍을 가지는 객체O

예제

요청
curl -X POST "https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/send-test" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "channel-profile-id: ${CHANNEL_PROFILE_ID}" \
-H "Content-Type: application/json" \
-d '{
"phoneNumber": "010-1234-5678",
"variables": {
"image_url1": "https://partner.com/img/message/001.jpg",
"user_name1": "테스트유저"
}
}'
응답
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json;charset=UTF-8

개인화 메시지광고 한 건 발송 요청

기본 정보
메서드URL인증 방식
POSThttps://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/send-single비즈니스 토큰

개인화 메시지광고 한 건의 발송을 요청합니다.

한 번에 한 사용자에게만 발송 요청할 수 있으며, 동기 방식으로 처리되어 해당 요청이 완료될 때까지 다른 발송 요청을 할 수 없습니다.

비즈니스 토큰과 카카오톡 채널 프로필 ID를 헤더에 담아 POST로 요청합니다. 요청 성공 시 응답은 발송 결과 정보를 포함합니다. 실패 시 에러 코드상세 에러 코드로 원인을 확인합니다.

요청

헤더
이름설명필수
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
인증 방식, 비즈니스 토큰으로 인증 요청
O
channel-profile-idchannel-profile-id: ${CHANNEL_PROFILE_ID}
카카오톡 채널 프로필 ID
O
Content-TypeContent-Type: application/json
요청 데이터 타입
O
경로 변수
이름타입설명필수
MESSAGE_AD_IDString메시지광고 번호(messageAdId)O
본문
이름타입설명필수
requestIdString메시지광고 발송 요청 ID, 개인화 메시지광고 발송 요청을 구분하기 위한 고유값으로 아래 규칙에 맞춰 생성 후 전달 필요
yyyyMMdd-${messageAdId}-${uniqueId_for_request} 형식, uniqueId_for_request는 9자리 이하의 영문 또는 숫자
O
receiverPersonalMessageSendRequest발송 요청 메시지광고 정보O
PersonalMessageSendRequest
이름타입설명필수
receiverTypeString발송 유형, 아래 중 하나
  • APP_USER_ID: channel-profile-id에 연결된 앱의 회원번호
  • PHONE_NUMBER: 전화번호
O
receiverKeyString발송 대상 식별자
유저식별자 혹은 전화번호
O
variablesJSON메시지 템플릿 사용 변수의 키-값 쌍을 가지는 객체O

응답

본문
이름타입설명
requestIdString메시지광고 발송 요청 ID, 메시지광고 발송 상태 조회 시 사용
receiverTypeString발송 유형, 아래 중 하나
  • APP_USER_ID: channel-profile-id에 연결된 앱의 회원번호
  • PHONE_NUMBER: 전화번호
receiverKeyString발송 대상 식별자
유저식별자 혹은 전화번호
statusString발송 상태, 발송 성공 시 SUCCEEDED 전달, 실패 시 에러 코드와 에러 메시지 전달
sendAtString발송 일시, yyyy-MM-dd HH:mm:ss 형식

예제

요청
curl -X POST "https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/send-single" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "channel-profile-id: ${CHANNEL_PROFILE_ID}" \
-H "Content-Type: application/json" \
-d '{
"requestId": "20240115-msg-ad-1196300604236693504-unique1",
"receiver": {
"receiverType": "PHONE_NUMBER",
"receiverKey": "010-1234-5678",
"variables": {
"image_url1": "https://partner.com/img/message/001.jpg"
}
}
}'
응답
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"requestId": "20240115-msg-ad-1196300604236693504-unique1",
"receiverType": "PHONE_NUMBER",
"receiverKey": "821012347936",
"status": "SUCCEEDED",
"sendAt": "2024-01-15 13:00:36"
}

개인화 메시지광고 여러 건 발송 요청

기본 정보
메서드URL인증 방식
POSThttps://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/send-multi비즈니스 토큰

개인화 메시지광고 여러 건의 발송을 요청합니다.

한 번에 최대 100명의 사용자에게 발송 요청할 수 있으며, 비동기 방식으로 처리되어 요청 결과는 개인화 메시지광고 발송 상태 조회로 확인해야 합니다.

비즈니스 토큰과 카카오톡 채널 프로필 ID를 헤더에 담아 POST로 요청합니다. 요청 성공 시 응답은 메시지광고 발송 요청 ID를 포함합니다. 실패 시 에러 코드상세 에러 코드로 원인을 확인합니다.

요청

헤더
이름설명필수
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
인증 방식, 비즈니스 토큰으로 인증 요청
O
channel-profile-idchannel-profile-id: ${CHANNEL_PROFILE_ID}
카카오톡 채널 프로필 ID
O
Content-TypeContent-Type: application/json
요청 데이터 타입
O
경로 변수
이름타입설명필수
MESSAGE_AD_IDString메시지광고 번호(messageAdId)O
본문
이름타입설명필수
requestIdString메시지광고 발송 요청 ID, 개인화 메시지광고 발송 요청을 구분하기 위한 고유값으로 아래 규칙에 맞춰 생성 후 전달 필요
yyyyMMdd-${messageAdId}-${uniqueId_for_request} 형식, uniqueId_for_request는 9자리 이하의 영문 또는 숫자
O
receiverPersonalMessageSendRequest[]발송 요청 메시지광고 정보(최소: 2개, 최대: 100개)O
PersonalMessageSendRequest
이름타입설명필수
receiverTypeString발송 유형, 아래 중 하나
  • APP_USER_ID: channel-profile-id에 연결된 앱의 회원번호
  • PHONE_NUMBER: 전화번호
O
receiverKeyString발송 대상 식별자
유저식별자 혹은 전화번호
O
variablesJSON메시지 템플릿 사용 변수의 키-값 쌍을 가지는 객체O

응답

본문
이름타입설명
requestIdString메시지광고 발송 요청 ID, 메시지광고 발송 상태 조회 시 사용

예제

요청
curl -X POST "https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/send-multi" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "channel-profile-id: ${CHANNEL_PROFILE_ID}" \
-H "Content-Type: application/json" \
-d '{
"requestId": "20240115-msg-ad-1196300604236693504-unique2",
"receivers": [
{
"receiverType": "PHONE_NUMBER",
"receiverKey": "010-1234-5678",
"variables": {
"image_url1": "https://partner.com/img/message/001.jpg",
"user_name1": "테스트유저1"
}
},
{
"receiverType": "PHONE_NUMBER",
"receiverKey": "010-4321-4321",
"variables": {
"image_url1": "https://partner.com/img/message/002.jpg",
"user_name1": "테스트유저2"
}
}
]
}'
응답
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"requestId": "20240115-msg-ad-1196300604236693504-unique2"
}

개인화 메시지광고 발송 상태 조회

기본 정보
메서드URL인증 방식
GEThttps://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/status/${REQUEST_ID}비즈니스 토큰

개인화 메시지광고 발송 요청에 대한 결과를 조회합니다.

발송 요청으로부터 90일 이내에만 결과만 조회 가능합니다.

비즈니스 토큰과 카카오톡 채널 프로필 ID를 헤더에 담아 GET으로 요청합니다. 요청 성공 시 응답은 메시지광고 발송 요청 ID를 포함합니다. 실패 시 에러 코드상세 에러 코드로 원인을 확인합니다.

요청

헤더
이름설명필수
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
인증 방식, 비즈니스 토큰으로 인증 요청
O
channel-profile-idchannel-profile-id: ${CHANNEL_PROFILE_ID}
카카오톡 채널 프로필 ID
O
Content-TypeContent-Type: application/json
요청 데이터 타입
O
경로 변수
이름타입설명필수
MESSAGE_AD_IDString메시지광고 번호(messageAdId)O
REQUEST_IDString메시지광고 발송 요청 ID(requestId)O

응답

본문
이름타입설명
completedBoolean발송 완료 여부
  • true: 모든 발송 완료
  • false: 발송 미완료
resultsPersonalMessageResult발송 시도 결과, completed값이 false인 경우 빈 배열([])로 응답
PersonalMessageResult
이름타입설명
receiverTypeString발송 유형, 아래 중 하나
  • APP_USER_ID: channel-profile-id에 연결된 앱의 회원번호
  • PHONE_NUMBER: 전화번호
receiverKeyString발송 대상 식별자
유저식별자 혹은 전화번호
statusString발송 결과, 아래 중 하나
  • SUCCEEDED: 발송 성공
  • FAILED: 발송 실패
statusReasonString발송 결과에 대한 상세 원인
sendAtString발송 일시, yyyy-MM-dd HH:mm:ss 형식

예제

요청
curl -X GET "https://apis.moment.kakao.com/openapi/message/v1/message-ads/personal/${MESSAGE_AD_ID}/status/${REQUEST_ID}" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "channel-profile-id: ${CHANNEL_PROFILE_ID}
응답
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"completed": true,
"results": [
{
"receiverType": "PHONE_NUMBER",
"receiverKey": "821012345678",
"status": "SUCCEEDED",
"statusReason": "발송 결과 상세 원인",
"sendAt": "2023-07-31 16:00:01"
}
]
}

공통 파라미터

Message
이름타입설명
typeString메시지 유형, 아래 중 하나 지정 필수
  • BASIC_TEXT_MESSAGE: 기본 텍스트
  • WIDE_MESSAGE: 와이드 이미지
  • WIDE_LIST_MESSAGE: 와이드 리스트
  • CAROUSEL_COMMERCE_MESSAGE: 캐러셀 커머스형
  • CAROUSEL_FEED_MESSAGE: 캐러셀 피드형
titleString메시지 홍보 문구
itemsItem[]아이템 정보
buttonsButton[]버튼 정보
couponBookCouponBook[]쿠폰 정보
introCarouselIntroCarousel인트로 정보
carouselsCarousel[]캐러셀 정보
adFlagBoolean광고성 메시지
  • true: 광고성 메시지
  • false: 정보성 메시지
Item
이름타입설명
imageUrlString아이템 이미지 URL, 메시지 내 포함할 홍보 이미지 URL
videoUrlString아이템 동영상 URL, 메시지 내 포함할 홍보 카카오TV 동영상 URL
titleString아이템 홍보 문구
pcLandingUrlString아이템 PC 랜딩 URL, 사용 시 PC 카카오톡에서 별도의 URL로 랜딩
http:// 또는 https:// 형식의 접속 가능한 URL 입력
mobileLandingUrlString아이템 모바일 랜딩 URL
http:// 또는 https:// 형식의 접속 가능한 URL 입력
Button
이름타입설명
titleString버튼명
pcLandingUrlString버튼 PC 랜딩 URL, 사용 시 PC 카카오톡에서 별도의 URL로 랜딩
http:// 또는 https:// 형식의 접속 가능한 URL 필요
mobileLandingUrlString버튼 모바일 랜딩 URL
http:// 또는 https:// 형식의 접속 가능한 URL 필요
CouponBook
이름타입설명
couponBookTitleTypeString쿠폰 유형, 아래 중 하나
  • DISCOUNT_PRICE: 할인금액
  • DISCOUNT_RATE: 할인율
  • FREE_SHIPPING: 배송비 할인
  • FREE_GIFT: 무료 증정
  • UPGRADE: 업그레이드
couponBookTitleString쿠폰 타이틀, 쿠폰 유형(couponBookTitleType)값에 따라 아래 값 입력 가능
  • DISCOUNT_PRICE: 8자리 이하 숫자
  • DISCOUNT_RATE: 2자리 이하 숫자
  • FREE_SHIPPING: 입력 불가
FREE_GIFT, UPGRADE: 최대 7자
titleString쿠폰 상세 설명(최대: 12자)
pcLandingUrlString쿠폰 PC 랜딩 URL, 사용 시 PC 카카오톡에서 별도의 URL로 랜딩
http:// 또는 https:// 형식의 접속 가능한 URL 필요
mobileLandingUrlString쿠폰 모바일 랜딩 URL
http:// 또는 https:// 형식의 접속 가능한 URL 필요
IntroCarousel
이름타입설명
titleString인트로 타이틀(최대 25자)
descriptionString인트로 홍보 문구(최대 50자)
imageUrlString인트로 홍보 영역 이미지 URL
pcLandingUrlString인트로 PC 랜딩 URL, 사용 시 PC 카카오톡에서 별도의 URL로 랜딩
http:// 또는 https:// 형식의 접속 가능한 URL 필요
mobileLandingUrlString인트로 모바일 랜딩 URL
http:// 또는 https:// 형식의 접속 가능한 URL 필요
Carousel
이름타입설명
titleString캐러셀 타이틀
descriptionString캐러셀 홍보 문구
imageUrlString캐러셀 홍보 영역 이미지 URL
pcLandingUrlString캐러셀 PC 랜딩 URL, 사용 시 PC 카카오톡에서 별도의 URL로 랜딩
http:// 또는 https:// 형식의 접속 가능한 URL 필요
mobileLandingUrlString캐러셀 모바일 랜딩 URL
http:// 또는 https:// 형식의 접속 가능한 URL 필요
buttonsButton[]캐러셀 버튼 정보
priceAmountInteger캐러셀 가격 정보
priceCurrencyCodeString캐러셀 통화 정보, 아래 중 하나
  • KRW: 원화(원)
  • USD: 달러($)
  • JPY: 엔화(¥)
  • EUR: 유로(€)
discountedPriceAmountInteger캐러셀 할인 가격 정보, priceAmount 보다 1% 이상 작은 값 필요

공통 응답

ResponseMessage
이름타입설명
messageAdIdString메시지광고 번호, 최초 생성 시 부여된 메시지 식별용 번호
nameString메시지 이름(최대: 50자), 최초 생성 시 미입력한 경우 자동 생성 규칙이 적용된 값
typeString메시지 유형, 아래 중 하나
  • BASIC_TEXT_MESSAGE: 기본 텍스트
  • WIDE_MESSAGE: 와이드 이미지
  • WIDE_LIST_MESSAGE: 와이드 리스트
  • CAROUSEL_COMMERCE_MESSAGE: 캐러셀 커머스형
  • CAROUSEL_FEED_MESSAGE: 캐러셀 피드형
titleString메시지 홍보 문구
itemsItem[]아이템 정보
buttonsButton[]버튼 정보
couponBookCouponBook[]쿠폰 정보
introCarouselIntroCarousel인트로 정보
carouselsCarousel[]캐러셀 정보
ageVerificationBoolean연령인증 메시지 여부
  • true: 연령인증 메시지
  • false: 일반 메시지
adFlagBoolean광고성 메시지
  • true: 광고성 메시지
  • false: 정보성 메시지

더 보기

도움이 되었나요?