이 문서는 메시지 소재 API 사용 방법을 안내합니다.
시작일이 지난 발송 그룹에 소재를 생성하는 경우 광고그룹 상태에 따라 소재 저장 시 즉시 메시지가 발송될 수 있습니다. 소재 생성시 상위 광고그룹의 시작기간과 상태를 확인하시기 바랍니다.
유형 | 발송시작 5분전 | 발송시작 5분전~발송시점 | 집행기간 내 | 집행 종료 후 |
---|---|---|---|---|
일반 메시지 | 등록 가능 | 등록가능 | 등록가능 | 등록 불가 |
소재 최적화 | 등록 가능/ 추가 가능 | 등록가능/ 광고그룹 OFF일때 추가 가능 | 등록가능/ 광고그룹 OFF일때 추가 가능 | 등록 불가/ 소재 추가 불가 |
캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE), 프리미엄동영상(PREMIUM_VIDEO_MESSAGE) 유형 및 쿠폰북 에셋 그룹(CouponBookAssetGroup)이 포함된 소재는 오픈API로 생성이 불가합니다.
메시지 집행 가이드와 맞지 않는 이미지와 문구는 사용할 수 없습니다.
요소 | 필수 | 랜딩: URL | 랜딩: 포스트 | 랜딩: 쿠폰 | 랜딩: 애드뷰 | 랜딩: 비즈니스폼 |
---|---|---|---|---|---|---|
홍보이미지 | X | X | X | X | X | X |
홍보동영상 | X | 카카오 TV 랜딩 | 카카오 TV 랜딩 | 카카오 TV 랜딩 | 카카오 TV 랜딩 | 카카오 TV 랜딩 |
홍보문구 | O | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
버튼 1 | X | O | O | O | X | X |
버튼 2 | X | O | O | O | O | O |
공유하기 | X | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
요소 | 필수 | 랜딩: URL | 랜딩: 포스트 | 랜딩: 쿠폰 | 랜딩: 애드뷰 | 랜딩: 비즈니스폼 |
---|---|---|---|---|---|---|
홍보이미지 | O 홍보이미지, 홍보동영상 중 하나 필수 |
O | O | O | X | X |
홍보동영상 | O 홍보이미지, 홍보동영상 중 하나 필수 |
카카오 TV 랜딩 | 카카오 TV 랜딩 | 카카오 TV 랜딩 | 카카오 TV 랜딩 | 카카오 TV 랜딩 |
홍보문구 | O | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
버튼 | X | O | O | O | O | O |
공유하기 | X | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
요소 | 필수 | 랜딩: URL | 랜딩: 포스트 | 랜딩: 쿠폰 | 랜딩: 애드뷰 | 랜딩: 비즈니스폼 |
---|---|---|---|---|---|---|
리스트1 타이틀 | 필수 아님 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
리스트2~3 타이틀 | O | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
리스트1~3 홍보이미지 | O 홍보이미지, 홍보동영상 중 하나 필수 |
O | O | O | X | X |
리스트1~3 홍보동영상 | O 홍보이미지, 홍보동영상 중 하나 필수 |
카카오TV로만 랜딩 | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 |
리스트1~3 홍보문구 | O | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 |
리스트4 홍보이미지 | X | O | O | O | X | X |
리스트4 홍보동영상 | X | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 | 카카오TV로만 랜딩 |
리스트4 홍보문구 | X | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 | 각 항목에 설정된 홍보이미지, 홍보동영상과 동일 |
버튼 | X | O | O | O | O | O |
공유하기 | X | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 | 랜딩 없음 |
수정은 기존의 메시지와 동일한 포맷이어야 합니다. 집행 5분전 이후부터는 소재의 이름만 수정가능합니다. 이름을 제외한 다른 파라미터는 무시됩니다.
메시지 집행 가이드와 맞지 않는 이미지와 문구는 사용할 수 없습니다.
유형 | 발송시작 5분전 | 발송시작 5분전~발송시점 | 집행기간 내 | 집행 종료 후 |
---|---|---|---|---|
일반 메시지 | 가능 | 불가 | 불가 | 불가 |
소재 최적화 | 가능 | 불가 | 불가 | 불가 |
캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE), 프리미엄동영상(PREMIUM_VIDEO_MESSAGE) 유형 및 쿠폰북 에셋 그룹(CouponBookAssetGroup)이 포함된 소재는 오픈API로 수정이 불가합니다.
캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE), 프리미엄동영상(PREMIUM_VIDEO_MESSAGE) 유형 및 쿠폰북 에셋 그룹(CouponBookAssetGroup)이 포함된 소재는 오픈API로 복사가 불가합니다.
케이스 | 처리 |
---|---|
카카오톡 채널이 다른 캠페인 하위 메시지 | 소재 복사 팝업에서 캠페인 선택 리스트에는 채널의 프로필ID가 일치하는 것만 노출됨 |
카카오톡 채널이 같은 캠페인 하위 메시지 | 소재 복사 팝업에서 ageVerification: true 인 기존 광고그룹의 하위 소재는 ageVerification: false 인 신규 광고그룹으로 복사 불가 |
에디터 배포 전에 광고그룹 하위에 저장한 채널 관리자센터 메시지 | 복사 대상으로 선택한 소재 중에 포함된 경우 얼럿 노출 |
쿠폰의 상태가 즉시종료, 응모기간완료 상태인 쿠폰을 랜딩으로 하는 메시지 | 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시 |
비즈니스폼의 상태가 종료, 긴급종료 상태인 비즈니스폼을 랜딩으로 하는 메시지 | 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시 |
포스트의 상태가 삭제 상태인 포스트를 랜딩으로 하는 메시지 | 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시 |
애드뷰의 상태가 삭제 상태인 애드뷰를 랜딩으로 하는 메시지 | 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시 |
메서드 | URL | 인증 방식 |
---|---|---|
POST |
https://apis.moment.kakao.com/openapi/v4/creatives |
액세스 토큰 |
권한 | 사전 설정 | 카카오 로그인 | 사용자 동의 |
---|---|---|---|
필요 | 플랫폼 등록 카카오 로그인 활성화 비즈앱 |
필요 | - |
카카오톡 채널 X 도달 캠페인 하위의 소재를 생성합니다.
액세스 토큰(Access token)과 광고계정 ID(adAccountId
)를 헤더에 담아 POST
로 요청하며, 요청이 성공하면 응답 본문에 JSON
객체로 생성된 소재의 상세 정보를 목록으로 포함합니다. 실패 시 에러 코드 및 상세 에러 코드로 사유를 확인합니다.
이 API는 사용자 계정, 광고계정마다 1초에 한 번씩 요청 가능하도록 제한되어 있습니다.
이름 | 설명 | 필수 |
---|---|---|
Authorization | Authorization: Bearer ${ACCESS_TOKEN} 인증 방식, 액세스 토큰으로 인증 요청 |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} 광고계정 ID |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
adGroupId | Long |
광고그룹 번호 | O |
format | String |
소재 유형 BASIC_TEXT_MESSAGE (기본텍스트), WIDE_MESSAGE (와이드이미지), WIDE_LIST_MESSAGE (와이드리스트) |
O |
name | String |
소재 이름 최대 40자 설정하지 않은 경우 {캠페인 유형}_{캠페인 목표}_{현재시간} 으로 생성 |
X |
messageElement | MessageElement |
생성할 메시지 내용 MULTIPART/FORM-DATA 로 mesasgeElement.{} 형식으로 요청 |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
creativeFormat | String |
메시지 소재 유형 BASIC_TEXT_MESSAGE (기본 텍스트), WIDE_MESSAGE (와이드 이미지), WIDE_LIST_MESSAGE (와이드 리스트) 중 하나 format 과 동일해야 함 |
O |
profileId | String |
카카오톡 채널 프로필 ID | O |
title | String |
홍보문구 기본 텍스트 (BASIC_TEXT_MESSAGE), 와이드 이미지 (WIDE_MESSAGE) 일 경우에만 필수로 요청 기본 텍스트 (BASIC_TEXT_MESSAGE) 는 최대 400자, 와이드 이미지 (WIDE_MESSAGE) 는 최대 76자 |
O* |
buttonAssetGroups | ButtonAssetGroup[] |
버튼 항목들 기본 텍스트 (BASIC_TEXT_MESSAGE) 유형의 경우 최대 2개의 버튼 에셋 그룹을 요청할 수 있으며 그 외 유형은 최대 1개의 버튼 에셋 그룹을 요청할 수 있음 버튼을 모두 미설정으로 요청할 경우 모든 메시지 유형에서 미설정 가능 기본 텍스트 (BASIC_TEXT_MESSAGE) 이면서 버튼1일 경우 랜딩은 미설정, URL, 포스트, 쿠폰만 설정 가능하며 버튼2의 경우 애드뷰, 비즈니스폼까지 설정 가능 와이드 이미지 (WIDE_MESSAGE), 와이드 리스트 (WIDE_LIST_MESSAGE) 유형의 경우 모든 랜딩 유형 설정 가능 |
X |
itemAssetGroups | ItemAssetGroup[] |
리스트 항목 | O |
shareFlag | Boolean |
공유하기true (설정), false (미설정) 중 하나상위 광고그룹의 연령인증 메시지( ageVerification: true )로 설정된 경우 false 만 요청 가능 |
O |
adFlag | Boolean |
정보성 메시지 설정 (true), 미설정 (false) 중 하나 |
O |
imageFile | Multipart file |
업로드할 이미지 파일 메시지 유형이 기본 텍스트 (BASIC_TEXT_MESSAGE) 일 경우에만 요청 가능 그 외 유형은 itemAssetGroup 객체를 통해 요청 가능 |
X |
videoMeta | VideoMeta |
연동할 카카오TV 정보 메시지 유형이 기본 텍스트 (BASIC_TEXT_MESSAGE) 일 경우에만 요청 가능 그 외 유형은 itemAssetGroup 객체를 통해 요청 가능 |
X |
csInfo | String |
고객센터 전화번호 | O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
ordering | Integer |
버튼 순서 기본 텍스트 유형 (BASIC_TEXT_MESSAGE) 은 0, 1을 그 외 유형은 0만 전달 가능 |
O |
pcLandingUrl | String |
PC 랜딩 URL 랜딩 유형이 LANDING_URL 인 경우 요청 가능하며 PC 랜딩 URL은 PC 카카오톡에서 버튼 클릭 시 별도의 URL로 랜딩 시키려는 경우 사용 http:// 또는 https:// 형식의 정상적인 랜딩 URL을 입력 |
X |
mobileLandingUrl | String |
모바일 랜딩 URL http:// 또는 https:// 형식의 정상적인 랜딩 URL을 입력 |
O* |
title | String |
버튼명 최대 8자까지 요청 가능 비즈니스폼의 경우 아래에 정의된 버튼명으로만 요청 가능 "톡에서 설문하기", "톡에서 시승신청", "톡에서 예약하기", "톡에서 응모하기", "톡에서 참여하기" 중 하나 |
O |
landingType | String |
랜딩 유형 URL 랜딩 (LANDING_URL), 쿠폰 랜딩 (CHANNEL_COUPON), 포스트 랜딩 (CHANNEL_POST), 비즈니스폼 랜딩 (BIZ_FORM), 애드뷰 랜딩 (AD_VIEW) 중 하나 |
O |
channelCouponId | Long |
쿠폰 ID 랜딩 유형이 쿠폰 랜딩 (CHANNEL_COUPON) 인 경우 요청 가능 쿠폰 목록 조회 API 로 조회되는 쿠폰 ID |
O* |
channelPostId | Long |
포스트 ID 랜딩 유형이 포스트 랜딩 (CHANNEL_POST) 인 경우 요청 가능 채널 포스트 목록 조회 API로 조회되는 포스트 ID |
O* |
bizFormId | Long |
비즈니스폼 ID 랜딩 유형이 비즈니스폼 랜딩 (BIZ_FORM) 인 경우 요청 가능 비즈니스폼 목록 조회 API로 조회되는 비즈니스폼 ID |
O* |
adViewId | Long |
애드뷰 ID 랜딩 유형이 애드뷰 랜딩 (AD_VIEW) 인 경우 요청 가능 애드뷰 목록 조회 API로 조회되는 애드뷰 ID |
O* |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
landingType | String |
랜딩 유형 URL 랜딩 (LANDING_URL), 쿠폰 랜딩(CHANNEL_COUPON), 포스트 랜딩(CHANNEL_POST) 중 하나를 전달 |
O |
title | String |
홍보문구 와이드 리스트(WIDE_LIST_MESSAGE) 유형 중 리스트의 첫 번째 항목( messageElement.itemAssetGroups[0] )이 아닌 경우 필수 |
O* |
mobileLandingUrl | String |
모바일 랜딩URL http:// 또는 https:// 형식의 정상적인 랜딩 URL을 입력 |
X |
pcLandingUrl | String |
PC 랜딩 URL 랜딩 유형이 LANDING_URL 인 경우 요청 가능하며 PC 랜딩 URL은 PC 카카오톡에서 버튼 클릭 시 별도의 URL로 랜딩 시키려는 경우 사용 http:// 또는 https:// 형식의 정상적인 랜딩 URL을 입력 |
X |
channelPostId | Long |
포스트 ID 랜딩 유형이 포스트 랜딩(CHANNEL_POST)인 경우 요청 가능 채널 포스트 목록 조회 API로 조회되는 포스트 ID |
X |
channelCouponId | Long |
쿠폰 ID 랜딩 유형이 쿠폰 랜딩(CHANNEL_COUPON)인 경우 요청 가능 쿠폰 목록 조회 API 로 조회되는 쿠폰 ID |
X |
imageFile | Multipart File |
업로드할 이미지 파일 메시지 유형이 와이드 이미지(WIDE_MESSAGE) 혹은 와이드 리스트(WIDE_LIST_MESSAGE) 유형인 경우에만 사용 가능 랜딩 유형이 URL인 경우 사용 불가능 |
O* |
videoMeta | VideoMeta |
동영상(카카오TV) 메타 정보 기본 텍스트(BASIC_TEXT_MESSAGE) 일 경우 요청 |
O* |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
id | Long |
연동할 카카오TV 클립링크 ID 카카오TV 채널 영상 상세 보기 API를 통해 얻은 clipLinkId |
O |
thumbnail | String |
썸네일 URL 카카오TV 채널 영상 상세 보기 API를 이용하여 응답받는 썸네일 URL |
O |
isLoad | Boolean |
카카오TV 영상 로드 여부 고정값(true)로 전달해야 함 |
O |
isLive | Boolean |
카카오TV 라이브 영상 여부 고정값(false)로 전달해야 함 |
O |
isLink | Boolean |
카카오TV 영상 링크 여부 고정값(true)로 전달해야 함 |
O |
이름 | 타입 | 설명 |
---|---|---|
id | Long |
소재 대표 번호 최초 생성 시 부여된 식별용 번호 |
creativeId | Long |
소재 번호 실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호 |
name | String |
소재명 |
adGroupId | Long |
광고그룹 번호 |
format | String |
소재 유형 BASIC_TEXT_MESSAGE (기본텍스트), WIDE_MESSAGE (와이드이미지), WIDE_LIST_MESSAGE (와이드리스트) |
config | String |
소재 상태 ON, OFF, DEL(삭제) 중 하나 |
systemConfig | String |
소재 시스템 상태 ON, VOID 중 하나 |
statusDescription | String |
메시지 광고그룹의 현재 상태 발송 대기, 발송중, 발송중지, 발송종료 중 하나 |
creativeStatus | String |
소재의 운영 상태 OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(관리자정지), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가) 중 하나 |
createdDate | String |
소재 생성일시 |
lastModifiedDate | String |
소재 마지막 수정일시 |
messageElement | MessageElement |
메시지 상세 설명 |
ageVerification | Boolean |
연령인증 메시지 여부true : 연령인증 메시지false : 일반 메시지 |
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
-F "messageElement.creativeFormat=BASIC_TEXT_MESSAGE" \
-F "messageElement.profileId=_Xxo" \
-F "messageElement.title=홍보문구" \
-F "messageElement.buttonAssetGroups[0].ordering=0" \
-F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
-F "messageElement.buttonAssetGroups[0].title=버튼1" \
-F "messageElement.buttonAssetGroups[0].pcLandingUrl=http://www.daum.net" \
-F "messageElement.buttonAssetGroups[0].mobileLandingUrl=http://www.kakaocorp.com" \
-F "messageElement.buttonAssetGroups[1].ordering=1" \
-F "messageElement.buttonAssetGroups[1].landingType=BIZ_FORM" \
-F "messageElement.buttonAssetGroups[1].bizFormId=1" \
-F "messageElement.buttonAssetGroups[1].title=톡에서 시승신청" \
-F "messageElement.name=기본텍스트" \
-F "messageElement.shareFlag=true" \
-F "messageElement.adFlag=true" \
-F "messageElement.csInfo=02-1234-5678" \
-F "messageElement.imageFile=@/directory/banner.png" \
-F "adGroupId=39688" \
-F "format=BASIC_TEXT_MESSAGE"
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
-F "messageElement.creativeFormat:WIDE_LIST_MESSAGE" \
-F "Format:WIDE_LIST_MESSAGE" \
-F "messageElement.profileId:_Xxju" \
-F "messageElement.title:와이드리스트홍보문" \
-F "messageElement.buttonAssetGroups[0].ordering:0" \
-F "messageElement.buttonAssetGroups[0].title:버튼1" \
-F "messageElement.buttonAssetGroups[0].landingType:LANDING_URL" \
-F "messageElement.buttonAssetGroups[0].pcLandingUrl:http://daum.net" \
-F "messageElement.buttonAssetGroups[0].mobileLandingUrl:http://daum.net" \
-F "messageElement.shareFlag:true" \
-F "messageElement.adFlag:true" \
-F "messageElement.csInfo:014-1122-1251" \
-F "adGroupId:41157" \
-F "name:베일리와이드리스" \
-F "messageElement.itemAssetGroups[0].ordering:0" \
-F "messageElement.itemAssetGroups[0].title:타이틀1" \
-F "messageElement.itemAssetGroups[0].landingType:LANDING_URL" \
-F "messageElement.itemAssetGroups[0].mobileLandingUrl:https://www.kakaocorp.com" \
-F "messageElement.itemAssetGroups[1].ordering:1" \
-F "messageElement.itemAssetGroups[1].title:타이틀2" \
-F "messageElement.itemAssetGroups[1].landingType:LANDING_URL" \
-F "messageElement.itemAssetGroups[1].mobileLandingUrl:https://www.kakaocorp.com" \
-F "messageElement.itemAssetGroups[2].ordering:2" \
-F "messageElement.itemAssetGroups[2].title:타이틀3" \
-F "messageElement.itemAssetGroups[2].landingType:LANDING_URL" \
-F "messageElement.itemAssetGroups[2].mobileLandingUrl:https://www.kakaocorp.com" \
-F "messageElement.itemAssetGroups[3].ordering:3" \
-F "messageElement.itemAssetGroups[3].title:타이틀4" \
-F "messageElement.itemAssetGroups[3].landingType:LANDING_URL" \
-F "messageElement.itemAssetGroups[3].mobileLandingUrl:https://www.kakaocorp.com" \
-F "messageElement.itemAssetGroups[0]=@/directory/banner.png" \
-F "messageElement.itemAssetGroups[1]=@/directory/banner.png" \
-F "messageElement.itemAssetGroups[2]=@/directory/banner.png" \
-F "messageElement.itemAssetGroups[3]=@/directory/banner.png"
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": 12345,
"creativeId": 12345,
"name": "카카오톡 채널_도달_20210625",
"adGroupId": 11223,
"format": "BASIC_TEXT_MESSAGE",
"config": "ON",
"systemConfig": "ON",
"statusDescription": "발송 대기",
"creativeStatus": "OPERATING",
"createdDate": "2021-06-25T17:04:02.883575",
"lastModifiedDate": "2021-06-25T17:04:06.291245",
"messageElement": {
"id": 12345,
"adAccountId": 123,
"profileId": "_xbHxd",
"name": "카카오톡 채널_도달_20210625",
"creativeFormat": "BASIC_TEXT_MESSAGE",
"title": "홍보문구입니다.",
"image": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"shareFlag": true,
"adFlag": true,
"thumbnail": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"buttonAssetGroups": [
{
"ordering": 0,
"title": "버튼1",
"pcLandingUrl": "http://www.daum.net",
"mobileLandingUrl": "https://www.kakaocorp.com",
"landingType": "LANDING_URL"
}
],
"thumbnailUrl": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"messageThumbnail": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"createdDate": "2021-06-25T17:04:02.883575",
"lastModifiedDate": "2021-06-25T17:04:06.291245"
}
}
메서드 | URL | 인증 방식 |
---|---|---|
PUT |
https://apis.moment.kakao.com/openapi/v4/creatives |
액세스 토큰 |
권한 | 사전 설정 | 카카오 로그인 | 사용자 동의 |
---|---|---|---|
필요 | 플랫폼 등록 카카오 로그인 활성화 비즈앱 |
필요 | - |
카카오톡 채널 X 도달 캠페인 하위의 소재를 수정합니다.
액세스 토큰(Access token)과 광고계정 ID(adAccountId
)를 헤더에 담아 PUT
으로 요청하며, 요청이 성공하면 응답 본문에 JSON
객체로 소재 상세 정보를 목록으로 포함합니다. 실패 시 에러 코드 및 상세 에러 코드로 사유를 확인합니다.
이 API는 사용자 계정, 광고계정마다 1초에 한 번씩 요청 가능하도록 제한되어 있습니다.
이름 | 설명 | 필수 |
---|---|---|
Authorization | Authorization: Bearer ${ACCESS_TOKEN} 인증 방식, 액세스 토큰으로 인증 요청 |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} 광고계정 ID |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
adGroupId | Long |
광고그룹 번호 | O |
format | String |
소재 유형 BASIC_TEXT_MESSAGE (기본텍스트), WIDE_MESSAGE (와이드이미지), WIDE_LIST_MESSAGE (와이드리스트) |
O |
name | String |
소재 이름 최대 40자 설정하지 않은 경우 {캠페인 유형}{캠페인 목표}{현재시간} 으로 설정됩니다. |
X |
messageElement | MessageElement |
생성할 메시지 내용 MULTIPART/FORM-DATA 로 mesasgeElement.{} 형식으로 요청 |
O |
이름 | 타입 | 설명 |
---|---|---|
id | Long |
소재 대표 번호 최초 생성 시 부여된 식별용 번호 |
creativeId | Long |
소재 번호 실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호 |
name | String |
소재명 |
adGroupId | Long |
광고그룹 번호 |
format | String |
소재 유형 BASIC_TEXT_MESSAGE (기본텍스트), WIDE_MESSAGE (와이드이미지), WIDE_LIST_MESSAGE (와이드리스트) |
config | String |
소재 상태 ON, OFF, DEL(삭제) 중 하나 |
systemConfig | String |
소재 시스템 상태 ON, VOID 중 하나 |
statusDescription | String |
메시지 광고그룹의 현재 상태 발송 대기, 발송중, 발송중지, 발송종료 중 하나 |
creativeStatus | String |
소재의 운영 상태 OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(관리자정지), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가) 중 하나 |
createdDate | String |
소재 생성일시 |
lastModifiedDate | String |
소재 마지막 수정일시 |
messageElement | MessageElement |
메시지 상세 설명 |
ageVerification | Boolean |
연령인증 메시지 여부true : 연령인증 메시지false : 일반 메시지 |
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
-F "messageElement.creativeFormat=BASIC_TEXT_MESSAGE" \
-F "messageElement.profileId=_Xxo" \
-F "messageElement.title=홍보문구" \
-F "messageElement.buttonAssetGroups[0].ordering=0" \
-F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
-F "messageElement.buttonAssetGroups[0].title=버튼1" \
-F "messageElement.buttonAssetGroups[0].pcLandingUrl=http://www.daum.net" \
-F "messageElement.buttonAssetGroups[0].mobileLandingUrl=http://www.kakaocorp.com" \
-F "messageElement.buttonAssetGroups[1].ordering=1" \
-F "messageElement.buttonAssetGroups[1].landingType=BIZ_FORM" \
-F "messageElement.buttonAssetGroups[1].bizFormId=1" \
-F "messageElement.buttonAssetGroups[1].title=톡에서 시승신청" \
-F "messageElement.name=기본텍스트" \
-F "messageElement.shareFlag=true" \
-F "messageElement.adFlag=true" \
-F "messageElement.csInfo=02-1234-5678" \
-F "messageElement.imageFile=@/directory/banner.png" \
-F "adGroupId=39688" \
-F "format=BASIC_TEXT_MESSAGE"
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": 12345,
"creativeId": 12345,
"name": "카카오톡 채널_도달_20210625",
"adGroupId": 11223,
"format": "BASIC_TEXT_MESSAGE",
"config": "ON",
"systemConfig": "ON",
"statusDescription": "발송 대기",
"creativeStatus": "OPERATING",
"createdDate": "2021-06-25T17:04:02.883575",
"lastModifiedDate": "2021-06-25T17:04:06.291245",
"messageElement": {
"id": 12345,
"adAccountId": 123,
"profileId": "_xbHxd",
"name": "카카오톡 채널_도달_20210625",
"creativeFormat": "BASIC_TEXT_MESSAGE",
"title": "홍보문구입니다.",
"image": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"shareFlag": true,
"adFlag": true,
"thumbnail": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"buttonAssetGroups": [
{
"ordering": 0,
"title": "버튼1",
"pcLandingUrl": "http://www.daum.net",
"mobileLandingUrl": "https://www.kakaocorp.com",
"landingType": "LANDING_URL"
}
],
"thumbnailUrl": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"messageThumbnail": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"createdDate": "2021-06-25T17:04:02.883575",
"lastModifiedDate": "2021-06-25T17:04:06.291245"
}
}
메서드 | URL | 인증 방식 |
---|---|---|
POST |
https://apis.moment.kakao.com/openapi/v4/creatives/copy |
액세스 토큰 |
권한 | 사전 설정 | 카카오 로그인 | 사용자 동의 |
---|---|---|---|
필요 | 플랫폼 등록 카카오 로그인 활성화 비즈앱 |
필요 | - |
카카오톡 채널 X 도달 캠페인 하위의 소재를 복사합니다.
액세스 토큰(Access token)과 광고계정 ID(adAccountId
)를 헤더에 담아 POST
로 광고그룹 ID와 복사할 소재 번호 목록을 지정하여 요청합니다. 성공 시 복사된 소재 정보의 배열을 받습니다. 실패 시 에러 코드 및 상세 에러 코드로 사유를 확인합니다.
이 API는 사용자 계정, 광고계정마다 5초에 한 번씩 요청이 가능하도록 제한되어 있습니다.
이름 | 설명 | 필수 |
---|---|---|
Authorization | Authorization: Bearer ${ACCESS_TOKEN} 인증 방식, 액세스 토큰으로 인증 요청 |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} 광고계정 ID |
O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
adGroupId | Long |
소재들이 복사될 광고그룹 번호 | O |
creativeIds | Long[] |
복사할 소재 번호 목록 | O |
이름 | 타입 | 설명 |
---|---|---|
- | MessageCreative[] |
소재 정보 목록 |
이름 | 타입 | 설명 |
---|---|---|
id | Long |
소재 대표 번호 최초 생성 시 부여된 식별용 번호 |
creativeId | Long |
소재 번호 실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호 |
name | String |
소재명 |
adGroupId | Long |
광고그룹 번호 |
format | String |
소재 유형 BASIC_TEXT_MESSAGE (기본텍스트), WIDE_MESSAGE (와이드이미지), WIDE_LIST_MESSAGE (와이드리스트) |
config | String |
소재 상태 ON, OFF, DEL(삭제) 중 하나 |
systemConfig | String |
소재 시스템 상태 ON, VOID 중 하나 |
statusDescription | String |
메시지 광고그룹의 현재 상태 발송 대기, 발송중, 발송중지, 발송종료 중 하나 |
creativeStatus | String |
소재의 운영 상태 OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(관리자정지), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가) 중 하나 |
createdDate | String |
소재 생성일시 |
lastModifiedDate | String |
소재 마지막 수정일시 |
messageElement | MessageElement |
메시지 상세 설명 |
ageVerification | Boolean |
연령인증 메시지 여부true : 연령인증 메시지false : 일반 메시지 |
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives/copy" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}" \
-d '{
"adGroupId": 11223,
"creativeIds": [12345]
}'
HTTP/1.1 200 OK
Content-Length: 0
Content-type: application/json;charset=UTF-8
[
{
"id": 12346,
"creativeId": 12346,
"name": "카카오톡 채널_도달_20210625",
"adGroupId": 11223,
"format": "BASIC_TEXT_MESSAGE",
"config": "ON",
"systemConfig": "ON",
"statusDescription": "발송 대기",
"creativeStatus": "OPERATING",
"createdDate": "2021-06-25T17:04:03",
"lastModifiedDate": "2021-06-25T17:04:06",
"messageElement": {
"id": 78428,
"adAccountId": 759,
"profileId": "_xbHxd",
"name": "카카오톡 채널_도달_20210625",
"creativeFormat": "BASIC_TEXT_MESSAGE",
"title": "홍보문구입니다.",
"image": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"shareFlag": true,
"adFlag": true,
"thumbnail": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"buttonAssetGroups": [
{
"ordering": 0,
"title": "버튼1",
"pcLandingUrl": "http://www.daum.net",
"mobileLandingUrl": "https://www.kakaocorp.com",
"landingType": "LANDING_URL"
}
],
"thumbnailUrl": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"messageThumbnail": {
"fileSize": 168816,
"url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
"fileName": "풀뷰 1280x720.jpg",
"imageWidth": 1280,
"imageHeight": 720,
"mimeType": "image/jpeg",
"imageHash": "35156f0c1393434ced4be21423d08a6a"
},
"createdDate": "2021-06-25T17:04:03",
"lastModifiedDate": "2021-06-25T17:04:06"
}
}
]