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

kakao developers

Related sites
  • Docs
  • Kakao Moment
  • Ad creation: Creative common

사이드 메뉴

Kakao Map

Search

Kakao Moment

Ad creation: Creative

This document describes how to use the Creative APIs.

View list of creatives

Basic information
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/creativesBusiness token

Retrieves a list of creatives.

Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the list of the detailed information on creatives in JSON format. If failed, refer to Error code to figure out its failure cause.

Request

Header
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Query parameter
NameTypeDescriptionRequired
adGroupIdLongAd group's ID.O
configArrayCreative's status.
Use one or more of the followings:
ON
OFF
DEL
(Default: [ON, OFF])
X

Response

Body
NameTypeDescription
contentCreative[]List of creative information.
Creative
NameTypeDescription
idLongOriginal creative ID for execution.
nameStringCreative's name.
configStringCreative's status.
One of ON, OFF, or DEL (Deleted).
systemConfigStringCreative's system status.
One of ON or ADMIN_STOP.

Sample

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

View creative

Basic information
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/creatives/${ID}Business token

Retrieves detailed information of the specified creative.

Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header.

If the request is successful, this API returns the detailed information of the ad creatives. It may take a while for the materials for verification to get the response due to syncing with review processing. If syncing is not completed, null is returned. The Expandable components are not supported. Some response fields may return null even though they are not used.

If failed, refer to Error code to figure out its failure cause.

Request

Header
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Path variable
NameTypeDescriptionRequired
IDLongOriginal creative ID for execution.O

Response

Body: Display creative
KeyTypeDescription
idLongOriginal creative ID for execution.
creativeIdLongCreative's ID.
  • If the creative is newly created: the same as the original creative ID, regardless of review status.
  • If the creative is modified after it was initially created and approved, and the modification requires review: a new creative ID is issued, so it differs from the original creative ID.
  • If the creative is modified after it was initially created and approved, and the modification does not require review: no new creative ID is issued, so it remains the same as the original creative ID.
nameStringCreative's name.
formatStringCreative's type.
One of IMAGE_BANNER, IMAGE_NATIVE, CATALOG_MANUAL or VIDEO_NATIVE.
pcLandingUrlStringLanding URL for PC.
mobileLandingUrlStringLanding URL for mobile.
rspvLandingUrlStringResponsive landing URL.
frequencyCapIntegerFrequency capping.
configStringCreative's status.
One of ON, OFF, or DEL (Deleted).
systemConfigStringCreative's system status.
One of ON or ADMIN_STOP.
reviewStatusStringReview status.
One of the followings:
  • APPROVED: Review approved.
  • WAITING Review in progress.
  • REJECTED: Review rejected.
  • MODIFICATION_WAITING: Review for modification in progress.
  • MODIFICATION_REJECTED: Review for modification rejected.
creativeStatusStringCreative's operation status.
One of the followings:
  • OPERATING: Possible to opearate
  • UNAPPROVED: Unapproved
  • INVALID_DATE: Invalid date
  • MONITORING_REJECTED: Rejected while monitoring.
  • OFF: User OFF
  • DELETED: Deleted
  • ADGROUP_UNAVAILABLE: Impossible to operate ad group
  • SYSTEM_CONFIG_ADMIN_STOP: Admin suspended.
statusDescriptionStringCurrent status of creative.
imageImageInformation about the main image of the IMAGE_BANNER, IMAGE_NATIVE, and VIDEO_NATIVE type of creative.
landingInfoLandingInfoSpecified data for landing.
altTextStringAlternative description of the IMAGE_NATIVE type of creative.
titleStringTitle of the IMAGE_NATIVE or VIDEO_NATIVE type of creative.
descriptionStringPromotional text of the IMAGE_NATIVE or VIDEO_NATIVE type of creative.
actionButtonStringCall-to-action button of the IMAGE_NATIVE and VIDEO_NATIVE type of creative.
profileNameStringProfile name of the IMAGE_NATIVE or VIDEO_NATIVE type of creative.
profileImageImageUploaded profile image.
videoVideoVideo of the VIDEO_NATIVE type of creative.
videoSkippableTypeStringVideo display type of the VIDEO_INSTREAM type of creative.
SECONDS_5: Impressed for 5 seconds at most.
SECONDS_15: Impressed for 15 seconds at most.
rejectedReasonRejectedReason[]Reasons for rejection of creative.
assetGroupsAssetGroup[]Slide item of CATALOG_MANUAL.
hasExpandableBooleanWhether or not Expandable component is included.
opinionStringOpinion for ad verification.
opinionProofOpinionFile[]List of materials for ad verification.
createdDateStringDate and time when the creative is created.
lastModifiedDateStringDate and time when the creative is lastly modified.
ageVerificationBooleanWhether to use age verification messages.
  • true: Age verification message used.
  • false: General message used.
Body: Message creative
NameTypeDescription
idLongOriginal creative ID for execution.
creativeIdLongCreative's ID.
Message creatives have no review status and are always the same as the original creative ID (id).
nameStringCreative's name.
adGroupIdLongAd group's ID.
formatStringCreative's type.
One of the followings:
  • BASIC_TEXT_MESSAGE
  • WIDE_MESSAGE
  • WIDE_LIST_MESSAGE
  • CAROUSEL_COMMERCE_MESSAGE
  • CAROUSEL_FEED_MESSAGE
  • PREMIUM_VIDEO_MESSAGE
configStringCreative's status.
One of ON, OFF, or DEL (Deleted).
systemConfigStringCreative's system status.
One of ON or ADMIN_STOP.
statusDescriptionStringCurrent status of a Kakao TalkChannel X Reach ad group.
One of the followings:- 발송 대기: Ready
  • 발송중: Sending
  • 발송중지: Paused
  • 발송종료: Finished.
creativeStatusStringCreative's operation status.
One of the followings:
  • OPERATING: Possible to opearate.
  • UNAPPROVED: Unapproved.
  • INVALID_DATE: Invalid date.
  • MONITORING_REJECTED: Admin suspended.
  • OFF: User OFF.
  • DELETED: Deleted.
  • ADGROUP_UNAVAILABLE: Impossible to operate ad group.
createdDateStringDate and time when the creative is created.
lastModifiedDateStringDate and time when the creative is lastly modified.
messageElementMessageElementDetailed information about Message creative.
ageVerificationBooleanWhether to use age verification messages.
  • true: Age verification message used.
  • false: General message used.
Body: Video creative
NameTypeDescription
idLongOriginal creative ID used for execution.
creativeIdLongCreative's ID.
  • If the creative is newly created: the same as the original creative ID, regardless of review status.
  • If the creative is modified after it was initially created and approved, and the modification requires review: a new creative ID is issued, so it differs from the original creative ID.
  • If the creative is modified after it was initially created and approved, and the modification does not require review: no new creative ID is issued, so it remains the same as the original creative ID.
formatStringCreative's type.
Fixed to VIDEO_NATIVE.
nameStringCreative's name.
adGroupIdLongAd group's ID.
pcLandingUrlStringLanding URL for PC.
mobileLandingUrlStringLanding URL for mobile.
rspvLandingUrlStringResponsive landing URL.
frequencyCapTypeStringAuto setting type of frequency capping.
frequencyCapIntegerFrequency capping.
configStringCreative's status.
One of ON, OFF, or DEL (Deleted).
systemConfigStringCreative's system status.
Either ON or ADMIN_STOP.
reviewStatusStringReview status.
One of the followings:
  • APPROVED: Review approved.
  • WAITING Review in progress.
  • REJECTED: Review rejected.
  • MODIFICATION_WAITING: Review for modification in progress.
  • MODIFICATION_REJECTED: Review for modification rejected.
creativeStatusStringCreative's operation status.
One of the followings:
  • OPERATING: Possible to opearate.
  • UNAPPROVED: Unapproved.
  • INVALID_DATE: Invalid date.
  • MONITORING_REJECTED: Admin suspended.
  • OFF: User OFF.
  • DELETED: Deleted.
  • ADGROUP_UNAVAILABLE: Impossible to operate ad group.
imageImageUploaded promotional image.
titleStringTitle.
descriptionStringPromotional text.
actionButtonStringCall-to-action button.
profileNameStringProfile name.
profileImageImageUploaded profile image.
videoVideoUploaded promotional video.
statusDescriptionStringCurrent status of creative.
rejectedReasonString[]Reasons for rejection of creative (Empty array).
createdDateStringDate and time when the creative is created.
lastModifiedDateStringDate and time when the creative is lastly modified.
opinionProofOpinionFile[]List of materials for ad verification.
thumbnailImageImageUploaded custom thumbnail image.

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${ID}" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": 1111,
"name": "Display Ad Creative",
"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
}
Response: Fail
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "소재가 존재하지 않습니다."
}
}

Change creative status

Basic information
MethodURLAuthorization
PUThttps://apis.moment.kakao.com/openapi/v4/creatives/onOffBusiness token

Enables you to change a creative's status.

You can only change the status of display creatives. You cannot change the status of creatives under the 'Kakao Talk Channel' type of campaign.

Send a PUT request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the HTTP status code 200 without the response body. If failed, refer to Error code to figure out its failure cause.

This API limits the number of calls you can make to every one second per user account and ad account.

Request

Header
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Body
NameTypeDescriptionRequired
idLongOriginal creative ID for execution.O
configStringCreative's status.
Either ON or OFF.
O

Sample

Request
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives/onOff" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}" \
-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: Fail
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "소재가 존재하지 않습니다."
}
}

Delete creative

Basic information
MethodURLAuthorization
DELETEhttps://apis.moment.kakao.com/openapi/v4/creatives/${ID}Business token

Deletes a creative.

Send a DELETE request with the issued business token and an ad account ID (adAccountId) in the request header. You must pass the creative's ID as a parameter when you request. If the request is successful, this API returns the HTTP status code 200 without the response body. If failed, refer to Error code to figure out its failure cause.

Note

Deleting a creative means giving up the operation of creatives, not deleting its data.

Request

Header
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Path variable
NameTypeDescriptionRequired
IDLongOriginal creative ID for execution.O

Sample

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

View reason for system stop

Basic information
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistoryBusiness token

Retrieves the reason why the specified creatvie's system is stopped.

Only when the creative's systemConfig is ADMIN_STOP, the response is returned.

Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the system suspension reason and details in JSON format. If failed, refer to Error code to figure out its failure cause.

Request

Header
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Path variable
NameTypeDescriptionRequired
IDLongOriginal creative ID for execution.O

Response

Body
NameTypeDescription
idLongSystem suspension ID.
systemConfigStringSystem suspension status.
One of the followings:
  • ON: Normal
  • ADMIN_STOP: Admin suspended
reasonStringSystem suspension reason.
createdDateStringDate and time when the system suspension reason is created in yyyy-MM-dd'T'HH:mm:ss format.
lastModifiedDateStringDate and time when the system suspension reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format.

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistory" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
{
"id": 1234,
"systemConfig": "ADMIN_STOP",
"adminStopReason": "has been suspended due to the end of the creative landing.",
"createdDate": "2021-01-01T00:00:00",
"lastModifiedDate": "2021-01-01T00:00:00"
}
Response: Fail
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "Creative does not exist."
}
}

View list of reasons for system stop

Basic information
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistoriesBusiness token

Retrieves the list of reasons why the specified creatvie's system is stopped.

Only when the creative's systemConfig is ADMIN_STOP, the response is returned.

Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the admin suspension reasons and details in JSON format. If failed, refer to Error code to figure out its failure cause.

Request

Header
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Path variable
NameTypeDescriptionRequired
IDLongOriginal creative ID for execution.O

Response

Body
NameTypeDescription
-SystemStopReason[]List of system suspension reason.
SystemStopReason
NameTypeDescription
idLongSystem suspension ID.
systemConfigStringSystem suspension status.
One of the followings:
  • ON: Normal
  • ADMIN_STOP: Admin suspended
reasonStringSystem suspension reason.
createdDateStringDate and time when the system suspension reason is created in yyyy-MM-dd'T'HH:mm:ss format.
lastModifiedDateStringDate and time when the system suspension reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format.

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistories" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
[
{
"id": 1235,
"systemConfig": "ADMIN_STOP",
"adminStopReason": "has been suspended due to the end of the creative landing.",
"createdDate": "2021-01-01T00:00:00",
"lastModifiedDate": "2021-01-01T00:00:00"
},
{
"id": 1234,
"systemConfig": "ADMIN_STOP",
"adminStopReason": "has been suspended due to the end of the creative landing.",
"createdDate": "2021-01-01T00:00:00",
"lastModifiedDate": "2021-01-01T00:00:00"
}
]
Response: Fail
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "Creative does not exist."
}
}

See more

Was this helpful?