페이지 이동경로
  • 문서>
  • 카카오모먼트>
  • 광고 만들기: 소재

카카오모먼트

소재

이 문서는 소재 API 사용 방법을 안내합니다.

소재 목록 보기

기본 정보

GET /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

소재 목록을 조회합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 GET으로 요청하며, 성공 시 응답 바디에 JSON 객체로 소재 상세 정보 목록을 받습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
Name Type Description Required
adGroupId Long 광고그룹 번호 O
config Array 소재 상태, 복수선택 (default : [ON, OFF])
enum{ON, OFF, DEL}
X

Response

Name Type Description
content Creative[] 소재 정보 목록
Creative
Name Type Description
id Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
name String 소재명
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
systemConfig String 소재 시스템 상태
ON, VOID, ADMIN_STOP 중 하나

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives?adGroupId=1234&config=ON" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
Response
HTTP/1.1 200 OK
Content-type: application/json;charset=UTF-8
{
  "content": [
    {
      "id": 1111,
      "name": "소재 1",
      "config": "ON"
    },
    {
      "id": 1112,
      "name": "소재 2",
      "config": "OFF"
    }
  ]
}

소재 보기

기본 정보

GET /openapi/v4/creatives/${id} HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

각 소재의 상세 정보를 조회합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 GET으로 요청합니다.

요청 성공 시 응답 바디에 JSON 객체로 종류별 광고 소재 상세 정보를 받습니다. 의견 및 증빙 파일의 경우 심사 처리 연동으로 인해 응답 값을 조회하는 데에 시간이 소요될 수 있으며, 연동이 완료되지 않은 경우 null 값으로 조회됩니다. 캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE) 유형은 messageElement 없이 조회됩니다.

실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

익스팬더블 여부 확인 필드 추가

2021년 8월 3일 업데이트로 소재 정보에 익스팬더블 여부를 확인하는 필드가 추가되었습니다. 익스팬더블 요소는 권한이 있는 광고계정에서 생성할 수 있으며 API로의 응답은 소재 조회와 보고서 조회만 지원합니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Path Variable
Name Type Description Required
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
O

Response

디스플레이 소재
Key Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
name String 소재명
format String 소재 유형
IMAGE_BANNER(이미지 배너), IMAGE_NATIVE(이미지 네이티브), VIDEO_NATIVE(비디오 네이티브), SERVICE_CONTENT(콘텐츠) 중 하나
pcLandingUrl String 랜딩 URL (PC용 랜딩 URL)
mobileLandingUrl String 랜딩 URL (모바일용 랜딩 URL)
rspvLandingUrl String 랜딩 URL (반응형 랜딩 URL)
frequencyCap Integer 게재빈도
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
systemConfig String 소재 시스템 상태
ON, VOID, ADMIN_STOP 중 하나
reviewStatus String 심사 상태
APPROVED(승인), WAITING(심사중), REJECTED(심사보류), MODIFICATION_WAITING(수정사항심사중), MODIFICATION_REJECTED(수정사항심사보류) 중 하나
creativeStatus String 소재의 운영 상태
OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(모니터링 보류), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가), SYSTEM_CONFIG_VOID(운영불가 콘텐츠오류), SYSTEM_CONFIG_ADMIN_STOP(관리자 정지) 중 하나
statusDescription String 소재의 게재와 관련된 현재 상태
image Image IMAGE_BANNER, IMAGE_NATIVE, VIDEO_NATIVE 소재의 메인 이미지
landingInfo LandingInfo 랜딩 정보
serviceContent ServiceContent SERVICE_CONTENT 소재의 콘텐츠 정보
altText String IMAGE_BANNER 소재의 이미지 대체 설명문구
title String IMAGE_NATIVE, VIDEO_NATIVE 소재의 타이틀
description String IMAGE_NATIVE, VIDEO_NATIVE 소재의 홍보문구
actionButton String IMAGE_NATIVE, VIDEO_NATIVE 소재의 행동유도버튼
profileName String IMAGE_NATIVE, VIDEO_NATIVE 소재의 프로필 이름
profileImage Image 업로드 된 프로필 이미지
video Video VIDEO_NATIVE 소재의 비디오
videoSkippableType String VIDEO_INSTREAM 소재의 비디오 노출 유형
SECONDS_5(최대 5초까지 노출),
SECONDS_15(최대 15초까지 노출)
rejectedReason RejectedReason[] 소재 보류 사유
assetGroups AssetGroup[] 슬라이드 아이템
hasExpandable Boolean 익스팬더블 요소 포함 여부
opinion String 심사 처리를 위한 참조 의견
opinionProof OpinionFile[] 심사 처리를 위한 의견, 증빙자료 파일 목록
createdDate String 소재 생성일시
lastModifiedDate String 소재 마지막 수정일시
ageVerification Boolean 연령인증 메시지 여부
true: 연령인증 메시지
false: 일반 메시지
메시지 소재
Name Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
name String 소재명
adGroupId Long 광고그룹 번호
format String 소재 유형
BASIC_TEXT_MESSAGE (기본텍스트), WIDE_MESSAGE (와이드이미지), WIDE_LIST_MESSAGE (와이드리스트), CAROUSEL_COMMERCE_MESSAGE (캐러셀)
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
systemConfig String 소재 시스템 상태
ON, VOID, ADMIN_STOP 중 하나
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: 일반 메시지

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${id}" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
Response
디스플레이 소재
메시지 소재
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "id": 1111,
  "name": "디스플레이 광고 소재",
  "landingInfo": {
    "landingType": "AD_VIEW",
    "communicatorAdViewId": 1
  },
  "format": "IMAGE_BANNER",
  "landingUrl": "http://www.daum.net",
  "frequencyCapType": "DAY_IMP",
  "frequencyCap": 3,
  "config": "ON",
  "image": {
    "url": "http://xxx.kakao.co.kr/sample.jpg",
    "fileName": "sample.jpeg",
    "width": 640,
    "height": 100,
    "size": 50000
  },
  "reviewStatus": "REJECTED",
  "creativeStatus": "UNAPPROVED",
  "statusDescription": "심사보류",
  "rejectedReason": [
    {
      "rejectedTitle": "공통1>가격 불일치",
      "rejectedContent": "등록하신 광고 소재 내 가격 정보가 랜딩페이지 내 실제 판매금액과 일치하지 않아 광고 등록이 보류되었습니다.\n* 광고 소재 내 가격 정보 : 39,800\n* 랜딩 페이지 내 가격 정보 : 49,800\n - 수정방법 : 모든 이용자가 구매 가능한 정확한 가격을 기재해 주시기 바랍니다."
    }
  ],
  "createdDate": "2020-01-01T00:00:00",
  "lastModifiedDate": "2020-01-01T01:00:00",
  "hasExpandable" : false
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 12345,
    "creativeId": 12345,
    "name": "카카오톡 채널_도달_20210623",
    "adGroupId": 39656,
    "format": "WIDE_LIST_MESSAGE",
    "config": "ON",
    "statusDescription": "발송 종료",
    "creativeStatus": "OPERATING",
    "createdDate": "2021-06-23T13:26:53",
    "lastModifiedDate": "2021-06-23T13:26:54",
    "messageElement": {
        "id": 12345,
        "adAccountId": 123,
        "profileId": "_xbHxd",
        "name": "카카오톡 채널_도달_20210623",
        "creativeFormat": "WIDE_LIST_MESSAGE",
        "title": "와이드리스트홍보문구",
        "shareFlag": true,
        "adFlag": true,
        "buttonAssetGroups": [
            {
            "ordering": 0,
            "title": "버튼1",
            "pcLandingUrl": "http://www.daum.net",
            "mobileLandingUrl": "https://www.kakaocorp.com",
            "landingType": "LANDING_URL"
            }
        ],
        "itemAssetGroups": [
            {
                "ordering": 0,
                "image": {
                    "fileSize": 168816,
                    "url": "//beta.daumcdn.net/b2/creative/759/dca51ee4c3fc2248999e7a770563b98d.jpg",
                    "imageWidth": 1280,
                    "imageHeight": 720,
                    "mimeType": "image/jpeg",
                    "imageHash": "35156f0c1393434ced4be21423d08a6a"
                },
                "title": "타이틀1",
                "mobileLandingUrl": "https://www.kakaocorp.com",
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 1,
                "image": {
                    "fileSize": 168816,
                    "url": "//beta.daumcdn.net/b2/creative/759/03b324a5e0a5fc29a8df001af6737279.jpg",
                    "imageWidth": 1280,
                    "imageHeight": 720,
                    "mimeType": "image/jpeg",
                    "imageHash": "35156f0c1393434ced4be21423d08a6a"
                },
                "title": "타이틀2",
                "mobileLandingUrl": "https://www.kakaocorp.com",
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 2,
                "image": {
                    "fileSize": 168816,
                    "url": "//beta.daumcdn.net/b2/creative/759/9248be0ea852f655b03294ea7435d09d.jpg",
                    "imageWidth": 1280,
                    "imageHeight": 720,
                    "mimeType": "image/jpeg",
                    "imageHash": "35156f0c1393434ced4be21423d08a6a"
                },
                "title": "타이틀3",
                "mobileLandingUrl": "https://www.kakaocorp.com",
                "landingType": "LANDING_URL"
            }
        ],
        "thumbnailUrl": "//beta.daumcdn.net/b2/creative/759/dca51ee4c3fc2248999e7a770563b98d.jpg",
        "messageThumbnail": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/dca51ee4c3fc2248999e7a770563b98d.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "createdDate": "2021-06-23T13:26:53",
        "lastModifiedDate": "2021-06-23T13:26:54"
    }
}
Response: 실패
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 33003,
        "detailMsg": "소재가 존재하지 않습니다."
    }
}

디스플레이 소재 생성하기

기본 정보

POST /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

디스플레이 소재를 생성합니다. 소재 생성 요청은 소재 유형(format)을 반드시 이미지 배너(IMAGE_BANNER), 이미지 네이티브(IMAGE_NATIVE) 중 하나로 명시해야 합니다. 소재 유형에 따라 전달해야 하는 파라미터 종류가 다릅니다. 예를 들어 이미지 배너는 imageFileUrl을, 이미지 네이티브는 imageFileUrlprofileImageFileUrl을 각각 전달합니다.

소재 생성하기 API는 이미지 등록을 위해 application/jsonmultipart/form-data 두 가지 Content-Type을 지원합니다. 어느 방식으로 요청하더라도 소재 생성 결과는 같습니다.

  • application/json: imageFileUrl 파라미터로 http:// 또는 https:// URL 형식의 소재 이미지 경로 전달
  • multipart/form-data: imageFile 파라미터로 로컬 파일 경로 전달

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 POST로 요청하며, 요청이 성공하면 응답 바디에 JSON 객체로 생성된 소재의 상세 정보를 목록으로 포함합니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

비즈보드 X 도달, 다음쇼핑 유형의 캠페인 하위에는 소재 생성이 불가능합니다.

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

소재 유형

2021년 6월 24일 업데이트로 캠페인 유형별 생성 가능한 소재 유형이 아래와 같이 변경되었습니다.

캠페인 유형 소재 유형 홍보 이미지 프로필 이미지
카카오 비즈보드 이미지 배너(IMAGE_BANNER) 1029x222, 300KB, PNG-24
디스플레이 이미지 네이티브(IMAGE_NATIVE) 500x500 이상 (1:1), 500KB, JPG/JPEG/PNG
1200x600 이상 (2:1), 500KB, JPG/JPEG/PNG
300x300 이상 (1:1), 500KB, JPG/JPEG/PNG

소재 랜딩 유형

기존에 제공되던 URL과 더불어 다양한 유형의 소재 랜딩 유형 및 랜딩 설정이 가능합니다. 카카오 비즈보드 유형의 캠페인 하위에만 설정 가능하며, 랜딩 설정을 위한 목록 조회 API는 신규로 제공하지만 애드뷰 생성, 비즈니스폼등의 생성 API는 제공하지 않습니다. 카카오페이 구매의 경우 생성 및 수정은 불가능하며 조회만 가능합니다.

자세한 사용 방법은 아래 표를 참고합니다.

유형 파라미터
URL mobileLandingUrl에 설정
챗봇, 채널웹뷰 카카오톡 채널 프로필 목록 보기 API 사용
애드뷰 애드뷰 목록 보기 API 사용
비즈니스폼 비즈니스폼 목록 보기 API 사용
톡캘린더 이벤트 ID 사용
채널포스트 채널포스트 ID 사용

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
이미지 배너 : IMAGE_BANNER
Name Type Description Required
adGroupId Long 광고그룹 번호 O
format String 소재 유형
IMAGE_BANNER (고정값)
O
imageFileUrl String 홍보이미지
사이즈, 용량, 파일형식
1029x222, 300KB, PNG-24
http:// 또는 https:// 형식의 URL형태로 요청
application/json
방식일 경우 필수
imageFile Multipart File 홍보이미지
사이즈, 용량, 파일형식
1029x222, 300KB, PNG-24
로컬 파일 경로 입력
multipart/form-data
방식일 경우 필수
landingInfo LandingInfo 랜딩 유형
카카오 비즈보드 유형의 캠페인 하위 소재만 설정 가능
X
pcLandingUrl String 랜딩 URL
PC용 URL로 http:// 또는 https:// 유효한 형식 입력
카카오 비즈보드 유형의 캠페인에는 설정할 수 없습니다.
X
mobileLandingUrl String 랜딩 URL
모바일용 URL로 http:// 또는 https:// 형식의 유효한 형식 입력
X
rspvLandingUrl String 랜딩 URL
반응형 URL로 http:// 또는 https:// 형식의 유효한 형식 입력
카카오 비즈보드 유형의 캠페인에는 설정할 수 없습니다.
X
altText String 소재 설명
최대 30자
장애인에게 음성 안내되는 내용으로 특수문자는 사용 불가능
O
name String 소재 이름
최대 40자
설정하지 않은 경우 {캠페인 유형}_{캠페인 목표}_{현재시간}_{소재 사이즈}로 생성
X
opinion String 의견(최대: 1,000자) X
opinionProofFileUrlList String[] 증빙
application/json 방식 요청 시 사용 가능
http:// 또는 https:// 형식의 증빙 파일 정보
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
opinionProofFileList Multipart File[] 증빙
multipart/form-data 방식 요청 시 사용 가능
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
이미지 네이티브 : IMAGE_NATIVE
Name Type Description Required
adGroupId Long 광고그룹 번호 O
format String 소재 유형
IMAGE_NATIVE (고정값)
O
profileImageFileUrl String 프로필이미지
사이즈, 용량, 파일형식
300x300 이상 (1:1), 500KB, JPG/JPEG/PNG
http:// 또는 https:// 형식의 유효한 형식 입력
application/json
방식일 경우 필수
profileImageFile Multipart File 프로필이미지
사이즈, 용량, 파일형식
300x300 이상 (1:1), 500KB, JPG/JPEG/PNG
로컬 파일 경로 입력
multipart/form-data
방식일 경우 필수
imageFileUrl String 홍보이미지
사이즈, 용량, 파일형식
500x500 이상 (1:1), 500KB, JPG/JPEG/PNG
1200x600 이상 (2:1), 500KB, JPG/JPEG/PNG
http:// 또는 https:// 형식의 유효한 형식 입력
application/json
방식일 경우 필수
imageFile Multipart File 홍보이미지
사이즈, 용량, 파일형식
500x500 이상 (1:1), 500KB, JPG/JPEG/PNG
1200x600 이상 (2:1), 500KB, JPG/JPEG/PNG
로컬 파일 경로 입력
multipart/form-data
방식일 경우 필수
title String 타이틀
최대 25자
O
profileName String 프로필 이름
최대 20자
O
description String 홍보문구
최대 45자
O
actionButton ActionButton 행동유도버튼 O
pcLandingUrl String PC 랜딩 URL
PC용 URL로 http:// 또는 https:// 유효한 형식 입력
카카오 비즈보드 유형의 캠페인에는 설정할 수 없습니다.
X
mobileLandingUrl String 모바일 랜딩 URL
모바일용 URL로 http:// 또는 https:// 유효한 형식 입력
X
rspvLandingUrl String 반응형 랜딩 URL
반응형 URL로 http:// 또는 https:// 유효한 형식 입력
카카오 비즈보드 유형의 캠페인에는 설정할 수 없습니다.
X
altText String 소재 설명
최대 30자
장애인에게 음성 안내되는 내용으로 특수문자는 사용 불가능
O
name String 소재 이름
최대 40자
설정하지 않은 경우 {캠페인 유형}_{캠페인 목표}_{현재시간}_{소재 사이즈}로 생성
X
opinion String 의견(최대: 1,000자) X
opinionProofFileUrlList String[] 증빙
application/json 방식 요청 시 사용 가능
http:// 또는 https:// 형식의 증빙 파일 정보
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
opinionProofFileList Multipart File[] 증빙
multipart/form-data 방식 요청 시 사용 가능
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
LandingInfo
Name Type Description
landingType LandingType 랜딩 유형
profileId String PF_BOT (챗봇),
CHANNEL_WEBVIEW (채널웹뷰) 랜딩 사용시 카카오톡 채널 프로필 ID

카카오톡 채널 프로필 보기 API를 통해 조회되는 응답 중 카카오톡 채널 프로필 ID를 요청
action String PF_BOT (챗봇) 랜딩 사용시 키워드
adViewItem AdViewItem AD_VIEW (애드뷰) 랜딩 사용시 애드뷰 객체
연동 가능한 애드뷰 랜딩 유형 목록 보기 API를 통해 조회되는 id를 사용
url String CHANNEL_WEBVIEW (채널웹뷰) 랜딩 사용시 URL
bizFormId Long BIZ_FORM (비즈니스폼) 랜딩 사용시 비즈니스폼 번호
연동 가능한 비즈니스폼 랜딩 유형 목록 보기 API를 통해 조회되는 bizFormId를 사용
talkCalendarEventId String TALK_CALENDAR (톡캘린더) 랜딩 사용시 톡캘린더 아이디
영문과 숫자만 허용되며, 한글, 공백, 특수문자는 사용불가능
channelPostId Long CHANNEL_POST (채널포스트) 랜딩 사용시 채널 포스트 아이디
연동 가능한 채널포스트 랜딩 유형 목록 보기 API를 통해 조회되는 포스트번호를 사용
LandingType
Name Description
PF_BOT 챗봇
AD_VIEW 애드뷰
CHANNEL_WEBVIEW 채널웹뷰
BIZ_FORM 비즈니스폼
TALK_CALENDAR 톡캘린더
CHANNEL_POST 채널포스트
AdViewItem
Name Type Description
id Long 애드뷰 번호
랜딩 URL

랜딩 URL은 세 종류입니다.
PC용 URL(pcLandingUrl), 모바일용 URL(mobileLandingUrl), 반응형 URL(rspvLandingUrl) 으로 이루어진 랜딩 URL은 개별적으로는 필수(Required)가 아니지만 최소 1개 이상의 랜딩 URL을 필수로 설정해야 합니다.
디스플레이 광고 소재 중 비디오 네이티브와 이미지 박스는 종류별 랜딩 URL을 제공하지 않습니다.

Response

이미지 배너 : IMAGE_BANNER
Name Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
adGroupId Long 광고그룹 번호
format String 소재 유형
IMAGE_BANNER
image Image 업로드 된 홍보 이미지
landingInfo LandingInfo 랜딩 정보
pcLandingUrl String 랜딩 URL (PC용 URL)
mobileLandingUrl String 랜딩 URL (모바일용 URL)
rspvLandingUrl String 랜딩 URL (반응형 URL)
altText String 소재 설명
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
systemConfig String 소재 시스템 상태
ON, VOID 중 하나
name String 소재 이름
reviewStatus String 심사 상태
APPROVED(승인), WAITING(심사중), REJECTED(심사보류), MONITORING_REJECTED(관리자정지) 중 하나
statusDescription String 소재의 게재와 관련된 현재 상태
opinionProof OpinionFile[] 심사 처리를 위한 의견, 증빙자료 파일 목록
createdDate String 소재 생성일시
lastModifiedDate String 소재 마지막 수정일시
rejectedReason Array 소재 심사 사유 (비어있는 배열)
이미지 네이티브 : IMAGE_NATIVE
Name Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
adGroupId Long 광고그룹 번호
format String 소재 유형
IMAGE_NATIVE
profileImage Image 업로드 된 프로필 이미지
image Image 업로드 된 홍보 이미지
title String 타이틀
profileName String 프로필 이름
description String 홍보문구
actionButton String 행동유도버튼
pcLandingUrl String 랜딩 URL (PC용 URL)
mobileLandingUrl String 랜딩 URL (모바일용 URL)
rspvLandingUrl String 랜딩 URL (반응형 URL)
altText String 소재 설명
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
systemConfig String 소재 시스템 상태
ON, VOID 중 하나
name String 소재 이름
reviewStatus String 심사 상태
APPROVED(승인), WAITING(심사중), REJECTED(심사보류), MONITORING_REJECTED(관리자정지) 중 하나
statusDescription String 소재의 게재와 관련된 현재 상태
opinionProof OpinionFile[] 심사 처리를 위한 의견, 증빙자료 파일 목록
createdDate String 소재 생성일시
lastModifiedDate String 소재 마지막 수정일시
rejectedReason Array 소재 심사 사유 (비어있는 배열)

Sample

Request: application/json 방식
이미지 배너
이미지 네이티브
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
    -H "Content-Type: application/json" \
    -d '{
            "adGroupId":1234,
            "format":"IMAGE_BANNER",
            "imageFileUrl":"https://www.image.com/sample.png",
            "altText":"소재설명",
            "landingInfo": {
                "landingType":"AD_VIEW",
                "adViewItem":{"id":1}
            },
            "name": "첫번째_이미지배너"
        }'
curl -X POST "http://api.moment.kakao.com/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "Content-Type: application/json" \
    -d '{
            \"adGroupId\":5678,
            \"format\":\"IMAGE_NATIVE\",
            \"profileImageFileUrl\":\"http://www.company.com/images/sample_image_native.jpg\",
            \"imageFileUrl\":\"http://www.company.com/images/sample_image_banner.jpg\",
            \"altText\":\"소재설명\",
            \"title\":\"타이틀\",
            \"profileName\":\"프로필이름\",
            \"description\":\"홍보문구\",
            \"actionButton\":\"JOIN\",
            \"mobileLandingUrl\":\"http://www.daum.net\",
            \"name\":\"네이티브_소재_등록\"
        }'
Request: multipart/form-data 방식
이미지 배너
이미지 네이티브
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: multipart/form-data" \
    -F "adGroupId=1234" \
    -F "format=IMAGE_BANNER" \
    -F "imageFile=@로컬_640X200_이미지_경로" \
    -F "altText=소재설명" \
    -F "name=첫번째_이미지배너" \
    -F "mobileLandingUrl=http://www.daum.net" \
    -F "landingInfo.landingType=AD_VIEW" \
    -F "landingInfo.adViewItem.id=쿼리검색어"
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: multipart/form-data" \
    -F "adGroupId=17181" \
    -F "format=IMAGE_NATIVE" \
    -F "profileImageFile=@로컬_300X300_이미지_경로" \
    -F "imageFile=@로컬_640X480_이미지_경로" \
    -F "altText=소재설명" \
    -F "title=타이틀" \
    -F "profileName=프로필이름" \
    -F "description=홍보문구" \
    -F "actionButton=JOIN" \
    -F "mobileLandingUrl=http://www.daum.net"
Response
이미지 배너
이미지 네이티브
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1,
    "creativeId": 2,
    "adGroupId": 1234,
    "format": "IMAGE_BANNER",
    "name": "첫번째_이미지배너",
    "landingInfo": {
        "landingType": "AD_VIEW",
        "adViewItem": {"id":1}
    },
    "pcLandingUrl": null,
    "mobileLandingUrl": "http://www.daum.net",
    "rspvLandingUrl": null,
    "frequencyCap": null,
    "frequencyCapType": "AUTO",
    "config": "ON",
    "systemConfig": "ON",
    "reviewStatus": "WAITING",
    "image": {
        "url": "http://xxx.kakao.co.kr/sample_image_banner_xxx.jpeg",
        "fileName": "sample.jpeg",
        "width": 640,
        "height": 100,
        "size": 50000
    },
    "altText": "소재설명",
    "statusDescription": "심사중",
    "createdDate": "2020-01-01T00:00:00.00000",
    "lastModifiedDate": "2020-01-01T00:00:00.000000",
    "rejectedReason": []
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1234,
    "creativeId": 1235
    "adGroupId": 5678,
    "format": "IMAGE_NATIVE",
    "name": "모먼트_소재_등록",
    "pcLandingUrl": null,
    "mobileLandingUrl": "http://www.daum.net",
    "rspvLandingUrl": null,
    "frequencyCap": null,
    "frequencyCapType": "AUTO",
    "config": "ON",
    "systemConfig": "ON",
    "reviewStatus": "WAITING",
    "image": {
        "url": "http://xxx.kakao.co.kr/sample_image_banner_xxx.jpg",
        "fileName": "sample_image_banner.jpg",
        "width": 640,
        "height": 480,
        "size": 100000
    },
    "title": "타이틀",
    "actionButton": "JOIN",
    "profileName": "프로필이름",
    "profileImage": {
        "url": "http://xxx.kakao.co.kr/sample_image_native_xxx.jpg",
        "fileName": "sample_image_native.jpeg",
        "width": 300,
        "height": 300,
        "size": 50000
    },
    "altText": "소재설명",
    "description": "홍보문구",
    "statusDescription": "심사중",
    "createdDate": "2020-01-01T00:00:00.000000",
    "lastModifiedDate": "2020-01-01T00:00:00.000000",
    "rejectedReason": []
}

디스플레이 소재 복사하기

기본 정보

POST /openapi/v4/creatives/copy HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

디스플레이 소재를 복사합니다. 최대 20개의 소재 복사를 요청할 수 있으나 그룹, 캠페인, 계정의 최대 생성 가능 소재 개수를 초과할 경우 복사 실패할 수 있습니다.

캠페인 유형X목표가 카카오 비즈보드X방문, 카카오 비즈보드X전환, 디스플레이X방문, 디스플레이X전환인 캠페인 하위의 이미지 배너, 이미지 네이티브 소재만 복사가 가능합니다. 모든 소재의 입찰 금액은 상위 광고그룹에 설정된 최대 입찰 금액으로 적용됩니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 POST로 광고계정 번호와 복사할 소재가 있는 캠페인 번호, 복사할 소재 번호 목록을 지정하여 요청합니다. 성공 시 복사된 소재 정보의 배열을 받습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

이 API는 사용자 계정, 광고계정마다 5초에 한 번씩 요청이 가능하도록 제한되어 있습니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
Name Type Description Required
adGroupId Long 소재들이 복사될 광고그룹 번호(100개 제한) O
creativeIds Long[] 복사할 소재 번호 목록 O

Response

Name Type Description
- DisplayCreative[] 소재 정보 목록
DisplayCreative
Name Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
name String 소재명
format String 소재 유형
IMAGE_BANNER(이미지 배너), IMAGE_NATIVE(이미지 네이티브), SERVICE_CONTENT(콘텐츠) 중 하나
landingUrl String 랜딩 URL
frequencyCap Integer 게재빈도
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
systemConfig String 소재 시스템 상태
ON, VOID 중 하나
reviewStatus String 심사 상태
APPROVED(승인), WAITING(심사중), REJECTED(심사보류), MODIFICATION_WAITING(수정사항심사중), MODIFICATION_REJECTED(수정사항심사보류) 중 하나
creativeStatus String 소재의 운영 상태
OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(관리자정지), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가) 중 하나
statusDescription String 소재의 게재와 관련된 현재 상태
image Image IMAGE_BANNER, IMAGE_NATIVE, VIDEO_NATIVE 소재의 메인 이미지
landingInfo LandingInfo 랜딩 정보
altText String IMAGE_BANNER 소재의 이미지 대체 설명문구
title String IMAGE_NATIVE, VIDEO_NATIVE 소재의 타이틀
description String IMAGE_NATIVE, VIDEO_NATIVE 소재의 홍보문구
actionButton String IMAGE_NATIVE, VIDEO_NATIVE 소재의 행동유도버튼
profileName String IMAGE_NATIVE, VIDEO_NATIVE 소재의 프로필 이름
profileImage Image 업로드 된 프로필 이미지
video Video VIDEO_NATIVE 소재의 비디오
rejectedReason RejectedReason 소재 보류 사유
opinion String 심사 처리를 위한 참조 의견
opinionProof OpinionFile[] 심사 처리를 위한 의견, 증빙자료 파일 목록
createdDate String 소재 생성일시
lastModifiedDate String 소재 마지막 수정일시

Sample

Request
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives/copy" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -d '{
            "adGroupId" : 23456,
            "creativeIds" : [34567,34568]
        }'
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
[
    {
        "id": 35678,
        "creativeId": 35678,
        "adGroupId": 23456,
        "format": "IMAGE_BANNER",
        "name": "이미지 소재 1",
        "landingInfo": {
            "landingType": "URL",
            "url": "http://m.daum.net"
        },
        "pcLandingUrl": null,
        "mobileLandingUrl": "http://m.daum.net",
        "rspvLandingUrl": null,
        "frequencyCap": null,
        "frequencyCapType": "AUTO",
        "config": "ON",
        "systemConfig": "ON",
        "reviewStatus": "APPROVED",
        "creativeStatus": "OPERATING",
        "image": {
            "url": "http://xxx.kakao.co.kr/sample_image_banner_111.jpg",
            "fileName": "sample_image_banner_111.jpg",
            "width": 640,
            "height": 480,
            "size": 100000
        },
        "altText": "이미지설명문구 1",
        "statusDescription": "운영중",
        "rejectedReason": [],
        "createdDate": "2020-01-01T00:00:00.000000",
        "lastModifiedDate": "2020-01-01T00:00:00.000000"
    },
    {
        "id": 35679,
        "creativeId": 35678,
        "adGroupId": 23456,
        "format": "IMAGE_BANNER",
        "name": "이미지 소재 2",
        "landingInfo": {
            "landingType": "URL",
            "url": "http://m.daum.net"
        },
        "pcLandingUrl": null,
        "mobileLandingUrl": "http://m.daum.net",
        "rspvLandingUrl": null,
        "frequencyCap": null,
        "frequencyCapType": "AUTO",
        "config": "ON",
        "systemConfig": "ON",
        "reviewStatus": "APPROVED",
        "creativeStatus": "OPERATING",
        "image": {
            "url": "http://xxx.kakao.co.kr/sample_image_banner_222.jpg",
            "fileName": "sample_image_banner_222.jpg",
            "width": 640,
            "height": 480,
            "size": 100000
        },
        "altText": "이미지설명문구 2",
        "statusDescription": "운영중",
        "rejectedReason": [],
        "createdDate": "2020-01-01T00:00:00.000000",
        "lastModifiedDate": "2020-01-01T00:00:00.000000"
    }
]

디스플레이 소재 수정하기

기본 정보

PUT /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

디스플레이 소재를 수정합니다. 소재 유형에 따라 전달해야 하는 파라미터 종류가 다릅니다. 예를 들어 이미지 배너(IMAGE_BANNER)는 imageFileUrl을, 이미지 네이티브(IMAGE_NATIVE)는 imageFileUrlprofileImageFileUrl을 각각 전달합니다.

소재 수정 API는 이미지 등록을 위해 application/jsonmultipart/form-data 두 가지 Content-Type을 지원합니다. application/json 방식으로 호출할 때는 imageFileUrl 파라미터로 http:// 또는 https:// URL 형식으로 소재 이미지를 전달해야 합니다. multipart/form-data 방식으로 호출할 때는 imageFile 파라미터에 경로를 지정해 로컬에 저장된 파일을 전달할 수 있습니다. 어느 방식으로 요청하더라도 소재 수정 결과는 같습니다.

imageFileUrl 또는 profileImageFileUrl이 요청 Body에 없으면 기존에 등록된 이미지를 활용합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 PUT으로 요청하며, 성공 시 응답 바디에 JSON 객체로 소재 상세 정보를 목록으로 받습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

비즈보드 X 도달, 다음쇼핑 유형의 캠페인 하위에는 소재 수정이 불가능합니다.

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

Request

Parameter
이미지 배너 : IMAGE_BANNER
Name Type Description Required
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
O
adGroupId Long 광고그룹 번호 O
format String 소재 유형
IMAGE_BANNER (고정값)
O
imageFileUrl String 홍보이미지
사이즈, 용량, 파일형식
1029x222, 300KB, PNG-24
http:// 또는 https:// 형식의 URL형태로 요청
X
application/json
방식일 경우 사용 가능
imageFile Multipart File 홍보이미지
사이즈, 용량, 파일형식
1029x222, 300KB, PNG-24
로컬 파일 경로 입력
X
multipart/form-data
방식일 경우 사용 가능
landingInfo LandingInfo 랜딩 정보
랜딩 URL 3가지 유형과 동시에 요청 불가능
X
pcLandingUrl String PC 랜딩 URL
PC용 URL로 http:// 또는 https:// 유효한 형식 입력
카카오 비즈보드 유형의 캠페인에는 설정할 수 없으며 landingInfo와 동시에 요청 불가
X
mobileLandingUrl String 모바일 랜딩 URL
모바일용 URL로 http:// 또는 https:// 유효한 형식 입력
landingInfo와 동시에 요청 불가
X
rspvLandingUrl String 반응형 랜딩 URL
반응형 URL로 http:// 또는 https:// 유효한 형식 입력
카카오 비즈보드 유형의 캠페인에는 설정할 수 없으며 landingInfo와 동시에 요청 불가
X
altText String 소재 설명
최대 30자
장애인에게 음성 안내되는 내용으로 특수문자는 사용 불가능
O
name String 소재 이름
최대 40자
요청 시 포함되지 않으면 생성 시의 이름으로 대체
X
opinion String 의견(최대: 1,000자) X
opinionProofFileUrlList String[] 증빙
application/json 방식 요청 시 사용 가능
http:// 또는 https:// 형식의 증빙 파일 정보
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
opinionProofFileList Multipart File[] 증빙
multipart/form-data 방식 요청 시 사용 가능
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
이미지 네이티브 : IMAGE_NATIVE
Name Type Description Required
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
O
adGroupId Long 광고그룹 번호 O
format String 소재 유형
IMAGE_NATIVE (고정값)
O
profileImageFileUrl String 프로필이미지
사이즈, 용량, 파일형식
300x300 이상 (1:1), 500KB, JPG/JPEG/PNG
http:// 또는 https:// 형식의 URL형태로 요청
X
application/json
방식일 경우 사용 가능
profileImageFile Multipart File 프로필이미지
사이즈, 용량, 파일형식
300x300 이상 (1:1), 500KB, JPG/JPEG/PNG
로컬 파일 경로 입력
X
multipart/form-data
방식일 경우 사용 가능
imageFileUrl String 홍보이미지
사이즈, 용량, 파일형식
500x500 이상 (1:1), 500KB, JPG/JPEG/PNG
1200x600 이상 (2:1), 500KB, JPG/JPEG/PNG
http:// 또는 https:// 형식의 URL형태로 요청
X
application/json
방식일 경우 사용 가능
imageFile Multipart File 홍보이미지
사이즈, 용량, 파일형식
500x500 이상 (1:1), 500KB, JPG/JPEG/PNG
1200x600 이상 (2:1), 500KB, JPG/JPEG/PNG
로컬 파일 경로 입력
X
multipart/form-data
방식일 경우 사용 가능
title String 타이틀
최대 25자
O
profileName String 프로필 이름
최대 20자
O
description String 홍보문구
최대 45자
O
actionButton ActionButton 행동유도버튼 O
pcLandingUrl String PC 랜딩 URL
PC용 URL로 http:// 또는 https:// 유효한 형식 입력
X
mobileLandingUrl String 모바일 랜딩 URL
모바일용 URL로 http:// 또는 https:// 유효한 형식 입력
X
rspvLandingUrl String 반응형 랜딩 URL
반응형 URL로 http:// 또는 https:// 유효한 형식 입력
X
altText String 소재 설명
최대 30자
장애인에게 음성 안내되는 내용으로 특수문자는 사용 불가능
O
name String 소재 이름
최대 40자
요청 시 포함되지 않으면 생성 시의 이름으로 대체
X
opinion String 의견(최대: 1,000자) X
opinionProofFileUrlList String[] 증빙
application/json 방식 요청 시 사용 가능
http:// 또는 https:// 형식의 증빙 파일 정보
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
opinionProofFileList Multipart File[] 증빙
multipart/form-data 방식 요청 시 사용 가능
JPG/JPEG/PNG/PDF 형식 지원
최대 10개, 전체 파일 합계 용량 10MB 이하
X
랜딩 URL

랜딩 URL은 총 3종류가 있습니다. PC용 URL(pcLandingUrl), 모바일용 URL(mobileLandingUrl), 반응형 URL(rspvLandingUrl)입니다. 랜딩 URL은 개별적으로는 필수(Required)가 아니지만 최소 1개 이상의 랜딩 URL을 필수로 설정해야 합니다. 디스플레이 광고 소재 중 비디오 네이티브와 이미지 박스는 종류별 랜딩 URL을 제공하지 않습니다.

Response

이미지 배너 : IMAGE_BANNER
Name Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
adGroupId Long 광고그룹 번호
format String 소재 유형
IMAGE_BANNER
image Image 업로드 된 홍보 이미지
landingInfo LandingInfo 랜딩 정보
pcLandingUrl String 랜딩 URL (PC용 URL)
mobileLandingUrl String 랜딩 URL (모바일용 URL)
rspvLandingUrl String 랜딩 URL (반응형 URL)
altText String 소재 설명
frequencyCapType String 게재빈도 자동 설정 종류
frequencyCap Integer 게재빈도
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
name String 소재 이름
reviewStatus String 심사 상태
APPROVED(승인), WAITING(심사중), REJECTED(심사보류), MONITORING_REJECTED(관리자정지) 중 하나
statusDescription String 소재의 게재와 관련된 현재 상태
opinionProof OpinionFile[] 심사 처리를 위한 의견, 증빙자료 파일 목록
createdDate String 소재 생성일시
lastModifiedDate String 소재 마지막 수정일시
rejectedReason Array 소재 심사 사유 (비어있는 배열)
이미지 네이티브 : IMAGE_NATIVE
Name Type Description
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
creativeId Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
adGroupId Long 광고그룹 번호
format String 소재 유형
IMAGE_NATIVE
profileImage Image 업로드 된 프로필 이미지
image Image 업로드 된 홍보 이미지
title String 타이틀
profileName String 프로필 이름
description String 홍보문구
actionButton String 행동유도버튼
pcLandingUrl String 랜딩 URL (PC용 URL)
mobileLandingUrl String 랜딩 URL (모바일용 URL)
rspvLandingUrl String 랜딩 URL (반응형 URL)
altText String 소재 설명
frequencyCapType String 게재빈도 자동 설정 종류
frequencyCap Integer 게재빈도
config String 소재 상태
ON, OFF, DEL(삭제) 중 하나
name String 소재 이름
reviewStatus String 심사 상태
APPROVED(승인), WAITING(심사중), REJECTED(심사보류), MONITORING_REJECTED(관리자정지) 중 하나
statusDescription String 소재의 게재와 관련된 현재 상태
opinionProof OpinionFile[] 심사 처리를 위한 의견, 증빙자료 파일 목록
createdDate String 소재 생성일시
lastModifiedDate String 소재 마지막 수정일시
rejectedReason Array 소재 심사 사유 (비어있는 배열)

Sample

Request: application/json 방식
이미지 배너
이미지 네이티브
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: application/json" \
    -d '{
            "id":1234,
            "adGroupId":5678,
            "format":"IMAGE_BANNER",
            "imageFileUrl":"http://www.company.com/images/sample_image_banner.jpg",
            "altText":"소재설명_수정",
            "mobileLandingUrl":"http://www.daum.net",
            "name":"이미지_수정"
        }'
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: application/json" \
    -d '{
            "id":1234,
            "adGroupId":5678,
            "format":"IMAGE_NATIVE",
            "profileImageFileUrl":"http://www.company.com/images/sample_image_native.jpg",
            "imageFileUrl":"http://www.company.com/images/sample_image_banner.jpg",
            "altText":"소재설명_수정",
            "title":"타이틀_수정",
            "profileName":"프로필이름_수정",
            "description":"홍보문구_수정",
            "actionButton":"JOIN",
            "mobileLandingUrl":"http://www.daum.net",
            "name":"네이티브_소재_수정"
        }'
Request: multipart/form-data 방식
이미지 배너
이미지 네이티브
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: multipart/form-data" \
    -F "id=1234" \
    -F "adGroupId=5678" \
    -F "format=IMAGE_BANNER" \
    -F "imageFile=@로컬_640X200_이미지_경로" \
    -F "altText=소재설명_수정" \
    -F "mobileLandingUrl=http://www.daum.net"
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: multipart/form-data" \
    -F "id=1234" \
    -F "adGroupId=5678" \
    -F "format=IMAGE_NATIVE" \
    -F "profileImageFile=@로컬_300X300_이미지_경로" \
    -F "imageFile=@로컬_640X480_이미지_경로" \
    -F "altText=소재설명_수정" \
    -F "title=타이틀_수정" \
    -F "profileName=프로필이름_수정" \
    -F "description=홍보문구_수정" \
    -F "actionButton=JOIN" \
    -F "mobileLandingUrl=http://www.daum.net"
Response
이미지 배너
이미지 네이티브
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1234,
    "creativeId": 1235,
    "adGroupId": 5678,
    "format": "IMAGE_BANNER",
    "name": "이미지_수정",
    "landingInfo": {
        "landingType": "AD_VIEW",
        "communicatorAdViewId": 1
    }
    "pcLandingUrl": null,
    "mobileLandingUrl": null,
    "rspvLandingUrl": null,
    "frequencyCap": null,
    "frequencyCapType": "AUTO",
    "config": "ON",
    "systemConfig": "ON",        
    "reviewStatus": "WAITING",
    "image": {
        "url": "http://xxx.kakao.co.kr/sample_image_banner_xxx.jpg",
        "fileName": "sample_image_banner.jpg",
        "width": 640,
        "height": 100,
        "size": 50000
    },
    "altText": "소재설명_수정",
    "statusDescription": "심사중",
    "createdDate": "2020-01-01T00:00:00.00000",
    "lastModifiedDate": "2020-01-01T00:00:00.000000",
    "rejectedReason": []
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1234,
    "creativeId": 1235,
    "adGroupId": 5678,
    "format": "IMAGE_NATIVE",
    "name": "네이티브_소재_수정",
    "pcLandingUrl": null,
    "mobileLandingUrl": "http://www.daum.net",
    "rspvLandingUrl": null,
    "frequencyCap": null,
    "frequencyCapType": "AUTO",
    "config": "ON",
    "systemConfig": "ON",           
    "reviewStatus": "WAITING",
    "image": {
        "url": "http://xxx.kakao.co.kr/sample_image_banner_xxx.jpg",
        "fileName": "sample_image_banner.jpg",
        "width": 640,
        "height": 480,
        "size": 100000
    },
    "altText": "소재설명_수정",
    "title": "타이틀",
    "description": "홍보문구_수정",
    "actionButton": "JOIN",
    "profileName": "프로필이름_수정",
    "profileImage": {
        "url": "http://xxx.kakao.co.kr/sample_image_banner_xxx.jpg",
        "fileName": "sample_image_native.jpg",
        "width": 300,
        "height": 300,
        "size": 50000
    },
    "statusDescription": "심사중",
    "createdDate": "2020-01-01T00:00:00.000000",
    "lastModifiedDate": "2020-01-01T00:00:00.000000",
    "rejectedReason": []
}

디스플레이 소재 의견증빙 조회하기

기본 정보

GET /openapi/v4/creatives/${id}/opinionProof HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

소재의 의견증빙 정보를 조회합니다. 헤더에 액세스 토큰(Access token)을 담아 GET으로 요청합니다. 요청이 성공하면 응답 바디에 JSON 객체로 소재의 의견증빙 정보를 받습니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
Name Type Description Required
id Long 소재 대표 번호
최초 생성 시 부여된 식별용 번호
O

Response

Name Type Description
id Long 의견증빙 번호
opinion String 의견
opinionProofFileList OpinionFile[] 파일 목록

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${id}/opinionProof" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
Response: 성공
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1,
    "opinion": "의견증빙",
    "opinionProofFileList": [
        {
            "id": 11,
            "originalFileName": "sample_1.jpg",
            "downloadUrl": "https://xxx.kakao.com/sample_1.jpg"
        }
    ]
}
Response: 실패
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 75637,
        "detailMsg": "의견증빙 정보가 존재하지 않습니다."
    }
}

메시지 소재 생성하기

기본 정보

POST /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

카카오톡 채널 X 도달 캠페인 하위의 소재를 생성합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 POST로 요청하며, 요청이 성공하면 응답 바디에 JSON 객체로 생성된 소재의 상세 정보를 목록으로 포함합니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

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

발송 시간에 따른 소재 등록, 추가 정책

시작일이 지난 발송 그룹에 소재를 생성하는 경우 광고그룹 상태에 따라 소재 저장 시 즉시 메시지가 발송될 수 있습니다. 소재 생성시 상위 광고그룹의 시작기간과 상태를 확인하시기 바랍니다.

유형 발송시작 5분전 발송시작 5분전~발송시점 집행기간 내 집행 종료 후
일반 메시지 등록 가능 등록가능 등록가능 등록 불가
소재 최적화 등록 가능/ 추가 가능 등록가능/ 광고그룹 OFF일때 추가 가능 등록가능/ 광고그룹 OFF일때 추가 가능 등록 불가/ 소재 추가 불가

소재 유형 및 필수 요소

캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE) 유형은 오픈 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 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음
  • 홍보이미지:
    • 가로 80px 이상, jpg.png(최대 10MB), 원본 이미지 최대 2억 픽셀 이하
    • 가로:세로 비율 1:2.5 이하
    • 버튼 1 랜딩이 있으면 동일한 랜딩 적용 (별도 설정 불가)
  • 홍보동영상: 직접 업로드한 영상 또는 카카오TV 채널에 업로드된 공개/비공개 영상 중 선택 가능
    • 버튼 1 랜딩이 있으면 동일한 랜딩 적용 (별도 설정 불가)
  • 홍보문구:
    • 이미지/동영상 미 첨부 시 최대 400자
    • 이미지/동영상 첨부 시 최대 300자 입력 가능(초과 시 입력 제한)
    • 링크 입력 불가, 개행은 29개까지 가능
  • 버튼 1:
    • 레이블: 띄어쓰기 포함 최대 8자(초과 시 입력 제한)
  • 버튼 2:
    • 레이블: 띄어쓰기 포함 최대 8자(초과 시 입력 제한)
와이드이미지형
요소 필수 랜딩: URL 랜딩: 포스트 랜딩: 쿠폰 랜딩: 애드뷰 랜딩: 비즈니스폼
홍보이미지 O
홍보이미지, 홍보동영상 중 하나 필수
O O O X X
홍보동영상 O
홍보이미지, 홍보동영상 중 하나 필수
카카오 TV 랜딩 카카오 TV 랜딩 카카오 TV 랜딩 카카오 TV 랜딩 카카오 TV 랜딩
홍보문구 O 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음
버튼 X O O O O O
공유하기 X 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음
  • 홍보이미지:
    • 가로 80px 이상, jpg.png(최대 10MB), 원본 이미지 최대 2억 픽셀 이하
    • 가로:세로 비율 1:2.5 이하
  • 홍보동영상: 카카오TV 채널에 업로드된 공개/비공개 영상 중 선택 가능
  • 홍보문구:
    • 최대 76자 입력 가능(초과 시 입력 제한)
    • 링크 입력 불가, 개행은 1개까지 가능(필드에서 포커스 이동 시 유효성 검증)
  • 버튼:
    • 레이블: 띄어쓰기 포함 최대 8자(초과 시 입력 제한)
와이드리스트형
요소 필수 랜딩: 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 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음 랜딩 없음
  • 타이틀: 최대 20자 입력 가능(초과 시 입력 제한)
  • 리스트1~3 홍보이미지:
    • 가로 80px 이상, jpg.png(최대 10MB) 원본 이미지 최대 2억 픽셀 이하
    • 가로:세로 비율 1:2.5 이하
    • 항목1의 경우 800X400 px, 나머지는 400X400 px 권장 가이드
  • 리스트1~3 홍보동영상: 카카오TV 채널에 업로드된 공개/비공개 영상 중 선택 가능
  • 리스트1~3 홍보문구:
    • 항목1의 경우 최대 25자, 나머지는 최대 30자 입력 가능(초과 시 입력 제한)
    • 링크 입력 불가, 개행은 1개까지 가능(필드에서 포커스 이동 시 유효성 검증)
  • 리스트4 홍보이미지:
    • 가로 80px 이상, jpg.png(최대 10MB) 원본 이미지 최대 2억 픽셀 이하
    • 가로:세로 비율 1:2.5 이하
  • 리스트4 홍보동영상: 카카오TV 채널에 업로드된 공개/비공개 영상 중 선택 가능
  • 리스트4 홍보문구:
    • 항목1의 경우 최대 25자, 나머지는 최대 30자 입력 가능(초과 시 입력 제한)
    • 링크 입력 불가, 개행은 1개까지 가능
  • 버튼:
    • 레이블: 띄어쓰기 포함 최대 8자(초과 시 입력 막힘)

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
Name Type Description Required
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
MessageElement
Name Type Description Required
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
ButtonAssetGroup
Name Type Description Required
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*
ItemAssetGroup
Name Type Description Required
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*
VideoMeta
Name Type Description Required
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

Response

Name Type Description
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: 일반 메시지

Sample

Request
기본 텍스트형
와이드리스트형
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
    -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: ${adAccountId}"
    -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"
Response
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"
    }
}

메시지 소재 복사하기

기본 정보

POST /openapi/v4/creatives/copy HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

카카오톡 채널 X 도달 캠페인 하위의 소재를 복사합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 POST로 광고그룹 ID와 복사할 소재 번호 목록을 지정하여 요청합니다. 성공 시 복사된 소재 정보의 배열을 받습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

이 API는 사용자 계정, 광고계정마다 5초에 한 번씩 요청이 가능하도록 제한되어 있습니다.

복사 불가 케이스

캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE) 유형은 오픈API를 통해 복사가 불가합니다.

소재 복사 불가 케이스
케이스 처리
카카오톡 채널이 다른 캠페인 하위 메시지 소재 복사 팝업에서 캠페인 선택 리스트에는 채널의 프로필ID가 일치하는 것만 노출됨
카카오톡 채널이 같은 캠페인 하위 메시지 소재 복사 팝업에서 ageVerification: true인 기존 광고그룹의 하위 소재는 ageVerification: false인 신규 광고그룹으로 복사 불가
에디터 배포 전에 광고그룹 하위에 저장한 채널 관리자센터 메시지 복사 대상으로 선택한 소재 중에 포함된 경우 얼럿 노출
쿠폰의 상태가 즉시종료, 응모기간완료 상태인 쿠폰을 랜딩으로 하는 메시지 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시
비즈니스폼의 상태가 종료, 긴급종료 상태인 비즈니스폼을 랜딩으로 하는 메시지 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시
포스트의 상태가 삭제 상태인 포스트를 랜딩으로 하는 메시지 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시
애드뷰의 상태가 삭제 상태인 애드뷰를 랜딩으로 하는 메시지 복사 가능 소재 개수에 카운트 하지 않고, 리스트에는 '복사불가' 표시

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
Name Type Description Required
adGroupId Long 소재들이 복사될 광고그룹 번호 O
creativeIds Long[] 복사할 소재 번호 목록 O

Response

Name Type Description
- MessageCreative[] 소재 정보 목록
MessageCreative
Name Type Description
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: 일반 메시지

Sample

Request
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives/copy" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -d '{
            "adGroupId": 11223,
            "creativeIds": [12345]
        }'
Response
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"
        }
    }
]

메시지 소재 수정하기

기본 정보

PUT /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

카카오톡 채널 X 도달 캠페인 하위의 소재를 수정합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 PUT으로 요청하며, 요청이 성공하면 응답 바디에 JSON 객체로 소재 상세 정보를 목록으로 포함합니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

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

소재 수정 정책

수정은 기존의 메시지와 동일한 포맷이어야 합니다. 집행 5분전 이후부터는 소재의 이름만 수정가능합니다. 이름을 제외한 다른 파라미터는 무시됩니다.

메시지 집행 가이드와 맞지 않는 이미지와 문구는 사용할 수 없습니다.

유형 발송시작 5분전 발송시작 5분전~발송시점 집행기간 내 집행 종료 후
일반 메시지 가능 불가 불가 불가
소재 최적화 가능 불가 불가 불가

캐러셀 커머스형(CAROUSEL_COMMERCE_MESSAGE), 캐러셀 피드형(CAROUSEL_FEED_MESSAGE) 유형은 오픈API를 통해 소재 수정이 불가합니다.

Request

Parameter
Name Type Description Required
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

Response

Name Type Description
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: 일반 메시지

Sample

Request
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
    -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"
Response
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"
    }
}

소재 상태 변경하기

기본 정보

PUT /openapi/v4/creatives/onOff HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

소재 상태를 변경합니다. 소재 상태가 ON 또는 OFF일 경우, 그리고 디스플레이 광고 소재인 경우에만 가능합니다. 스폰서드 보드, 비즈보드 X 도달, 다음쇼핑, 카카오톡 채널, 동영상 유형의 캠페인 하위 소재는 상태 변경이 불가능합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 PUT으로 요청하고, 성공 시 HTTP 상태 코드 200에 응답 바디는 없습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

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

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Parameter
Name Type Description Required
id Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
O
config String ON, OFF 중 하나 O

Sample

Request
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives/onOff" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: application/json" \
    -d '{
            "id": 1234,
            "config": "ON"
        }'
Response: 성공
HTTP/1.1 200 OK
Content-Length: 0
Content-type: application/json;charset=UTF-8
Response: 실패
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 33003,
       "detailMsg": "소재가 존재하지 않습니다."
    }
}

소재 삭제하기

기본 정보

DELETE /openapi/v4/creatives/${id} HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

소재를 삭제합니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 DELETE로 요청하고, 성공 시 HTTP 상태 코드 200에 응답 바디는 없습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

소재 삭제는 데이터 삭제를 의미하는 것이 아닌, 소재에 대한 운영을 포기한다는 의미입니다. 스폰서드 보드, 카카오 비즈보드 X 도달, 다음쇼핑, 동영상 유형 캠페인 하위 광고 소재는 삭제가 불가능합니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Path Variable
Name Type Description Required
id Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
O

Sample

Request
curl -X DELETE "https://apis.moment.kakao.com/openapi/v4/creatives/${id}" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}" \
    -H "Content-Type: application/json"
Response: 요청 성공
HTTP/1.1 200 OK
Content-Length: 0
Content-type: application/json;charset=UTF-8
Response: 요청 실패
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 75008,
        "detailMsg": "카카오톡 채널_도달 소재는 삭제할 수 없습니다.",
        "path": "/v2/moment/creatives",
        "timestamp": "2020-04-01T10:16:14.294+0000"
    }
}

시스템 정지 사유 보기

기본 정보

GET /openapi/v4/creatives/${id}/systemConfigHistory HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

지정한 한 소재의 시스템 정지 사유를 조회합니다. 시스템 정지 사유가 여러건 있는 경우 가장 최근의 관리자 정지 사유를 조회합니다. 소재의 systemConfigADMIN_STOP 또는 VOID 일 경우에만 응답이 있습니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 GET으로 요청합니다. 성공 시 응답 바디에 JSON 객체로 시스템 정지 사유 상세정보를 받습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Path Variable
Name Type Description Required
id Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
O

Response

Name Type Description
id Long 시스템 정지 번호
systemConfig String 시스템 정지 상태
ON : 정상
ADMIN_STOP : 관리자정지
VOID : 콘텐츠 오류
reason String 시스템 정지 사유
createdDate String 시스템 정지 사유 생성일시
(yyyy-MM-dd'T'HH:mm:ss 형식)
lastModifiedDate String 시스템 정지 사유 마지막 수정일시
(yyyy-MM-dd'T'HH:mm:ss 형식

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${id}/systemConfigHistory" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
Response: 요청 성공
{
    "id": 1234,
    "systemConfig": "ADMIN_STOP",
    "reason": "해당 소재 랜딩 지원 종료로 관리자 정지되었습니다.",
    "createdDate":"2021-01-01T00:00:00",
    "lastModifiedDate": "2021-01-01T00:00:00"
}
Response: 요청 실패
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 33003,
        "detailMsg": "소재가 존재하지 않습니다."
    }
}

시스템 정지 사유 목록 보기

기본 정보

GET /openapi/v4/creatives/${id}/systemConfigHistories HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}

지정한 한 소재의 최근 2년 동안의 시스템 정지 사유를 조회합니다. 소재의 systemConfigADMIN_STOP 또는 VOID 일 경우에만 응답이 있습니다.

액세스 토큰(Access token)과 광고계정 ID(adAccountId)를 헤더에 담아 GET으로 요청합니다. 성공 시 응답 바디에 JSON 객체로 시스템 정지 사유 상세정보 리스트를 받습니다. 실패 시 에러 코드상세 에러 코드로 사유를 확인합니다.

Request

Header
Name Type Description Required
Authorization String 액세스 토큰
Bearer ${ACCESS_TOKEN} 형식으로 전달
O
adAccountId Long 광고계정 ID O
Path Variable
Name Type Description Required
id Long 소재 번호
실제 집행 시 활용되는, 소재 수정 발생 시 부여되는 소재 번호
O

Response

Name Type Description
- SystemStopReason[] 소재 정보 목록
SystemStopReason
Name Type Description
id Long 시스템 정지 번호
systemConfig String 시스템 정지 상태
ON : 정상
ADMIN_STOP : 관리자정지
VOID : 콘텐츠 오류
reason String 시스템 정지 사유
createdDate String 시스템 정지 사유 생성일시
(yyyy-MM-dd'T'HH:mm:ss 형식)
lastModifiedDate String 시스템 정지 사유 마지막 수정일시
(yyyy-MM-dd'T'HH:mm:ss 형식

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${id}/systemConfigHistories" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${adAccountId}"
Response: 요청 성공
[
    {
        "id": 1235,
        "systemConfig": "ADMIN_STOP",
        "reason": "해당 소재 랜딩 지원 종료로 관리자 정지되었습니다.",
        "createdDate": "2021-01-01T00:00:00",
        "lastModifiedDate": "2021-01-01T00:00:00"
    },
    {
        "id": 1234,
        "systemConfig": "ADMIN_STOP",
        "reason": "해당 소재 랜딩 지원 종료로 관리자 정지되었습니다.",
        "createdDate": "2021-01-01T00:00:00",
        "lastModifiedDate": "2021-01-01T00:00:00"
    }
]
Response: 요청 실패
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 33003,
        "detailMsg": "소재가 존재하지 않습니다."
    }
}

더보기