This document describes how to use the Creative APIs.
Method | URL | Authorization |
---|---|---|
GET |
https://apis.moment.kakao.com/openapi/v4/creatives |
Business token |
Permission | Prerequisite | Business Authentication | Business consent items |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set Business redirect URI Business consent items |
Required | Required |
This API enables you to retrieve 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.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
adGroupId | Long |
Ad group's ID. | O |
config | Array |
Creative's status. Use one or more of the followings: ON OFF DEL (Default: [ON, OFF] ) |
X |
Name | Type | Description |
---|---|---|
content | Creative[] |
List of creative information. |
Name | Type | Description |
---|---|---|
id | Long |
Original creative ID for execution. |
name | String |
Creative's name. |
config | String |
Creative's status. One of ON , OFF , or DEL (Deleted). |
systemConfig | String |
Creative's system status. One of ON or ADMIN_STOP . |
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}"
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"
}
]
}
Method | URL | Authorization |
---|---|---|
GET |
https://apis.moment.kakao.com/openapi/v4/creatives/${ID} |
Business token |
Permission | Prerequisite | Business Authentication | Business consent items |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set Business redirect URI Business consent items |
Required | Required |
This API enables you to retrieve 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.
If failed, refer to Error code to figure out its failure cause.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
ID | Long |
Original creative ID for execution. | O |
Key | Type | Description |
---|---|---|
id | Long |
Original creative ID for execution. |
creativeId | Long |
Creative's ID.creativeId may differ from id when temporarily assigned for the pending status in the review. |
name | String |
Creative's name. |
format | String |
Creative's type. One of IMAGE_BANNER , IMAGE_NATIVE , CATALOG_MANUAL or VIDEO_NATIVE . |
pcLandingUrl | String |
Landing URL for PC. |
mobileLandingUrl | String |
Landing URL for mobile. |
rspvLandingUrl | String |
Responsive landing URL. |
frequencyCap | Integer |
Frequency capping. |
config | String |
Creative's status. One of ON , OFF , or DEL (Deleted). |
systemConfig | String |
Creative's system status. One of ON or ADMIN_STOP . |
reviewStatus | String |
Review 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. |
creativeStatus | String |
Creative's operation status. One of the followings: OPERATING : Possible to opearateUNAPPROVED : UnapprovedINVALID_DATE : Invalid dateMONITORING_REJECTED : Rejected while monitoring.OFF : User OFFDELETED : DeletedADGROUP_UNAVAILABLE : Impossible to operate ad groupSYSTEM_CONFIG_ADMIN_STOP : Admin suspended. |
statusDescription | String |
Current status of creative. |
image | Image |
Information about the main image of the IMAGE_BANNER , IMAGE_NATIVE , and VIDEO_NATIVE type of creative. |
landingInfo | LandingInfo |
Specified data for landing. |
altText | String |
Alternative description of the IMAGE_NATIVE type of creative. |
title | String |
Title of the IMAGE_NATIVE or VIDEO_NATIVE type of creative. |
description | String |
Promotional text of the IMAGE_NATIVE or VIDEO_NATIVE type of creative. |
actionButton | String |
Call-to-action button of the IMAGE_NATIVE and VIDEO_NATIVE type of creative. |
profileName | String |
Profile name of the IMAGE_NATIVE or VIDEO_NATIVE type of creative. |
profileImage | Image |
Uploaded profile image. |
video | Video |
Video of the VIDEO_NATIVE type of creative. |
videoSkippableType | String |
Video 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. |
rejectedReason | RejectedReason[] |
Reasons for rejection of creative. |
assetGroups | AssetGroup[] |
Slide item of CATALOG_MANUAL . |
hasExpandable | Boolean |
Whether or not Expandable component is included. |
opinion | String |
Opinion for ad verification. |
opinionProof | OpinionFile[] |
List of materials for ad verification. |
createdDate | String |
Date and time when the creative is created. |
lastModifiedDate | String |
Date and time when the creative is lastly modified. |
ageVerification | Boolean |
Whether to use age verification messages.true : Age verification message used. false : General message used. |
Name | Type | Description |
---|---|---|
id | Long |
Original creative ID for execution. |
creativeId | Long |
Creative's ID.creativeId may differ from id when temporarily assigned for the pending status in the review.creativeId for the message creatives are always equal to id since it has no review status. |
name | String |
Creative's name. |
adGroupId | Long |
Ad group's ID. |
format | String |
Creative's type. One of the followings: BASIC_TEXT_MESSAGE WIDE_MESSAGE WIDE_LIST_MESSAGE CAROUSEL_COMMERCE_MESSAGE CAROUSEL_FEED_MESSAGE PREMIUM_VIDEO_MESSAGE |
config | String |
Creative's status. One of ON , OFF , or DEL (Deleted). |
systemConfig | String |
Creative's system status. One of ON or ADMIN_STOP . |
statusDescription | String |
Current status of a KakaoTalkChannel X Reach ad group. One of the followings:- 발송 대기: Ready - 발송중: Sending - 발송중지: Paused - 발송종료: Finished. |
creativeStatus | String |
Creative'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. |
createdDate | String |
Date and time when the creative is created. |
lastModifiedDate | String |
Date and time when the creative is lastly modified. |
messageElement | MessageElement |
Detailed information about Message creative. |
ageVerification | Boolean |
Whether to use age verification messages.true : Age verification message used. false : General message used. |
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${ID}" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
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
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": 12345,
"creativeId": 12345,
"name": "KakaoTalkChannel_Reach_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": "KakaoTalkChannel_Reach_20210623",
"creativeFormat": "WIDE_LIST_MESSAGE",
"title": "widelist_promotional_text",
"shareFlag": true,
"adFlag": true,
"buttonAssetGroups": [
{
"ordering": 0,
"title": "button1",
"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": "title1",
"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": "title2",
"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": "title3",
"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"
}
}
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "소재가 존재하지 않습니다."
}
}
Method | URL | Authorization |
---|---|---|
PUT |
https://apis.moment.kakao.com/openapi/v4/creatives/onOff |
Business token |
Permission | Prerequisite | Business Authentication | Business consent items |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set Business redirect URI Business consent items |
Required | Required |
This API 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 five seconds per user account and ad account.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
id | Long |
Original creative ID for execution. | O |
config | String |
Creative's status. Either ON or OFF . |
O |
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"
}'
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json;charset=UTF-8
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "소재가 존재하지 않습니다."
}
}
Method | URL | Authorization |
---|---|---|
DELETE |
https://apis.moment.kakao.com/openapi/v4/creatives/${ID} |
Business token |
Permission | Prerequisite | Business Authentication | Business consent items |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set Business redirect URI Business consent items |
Required | Required |
This API enables you to delete 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.
Deleting a creative means giving up the operation of creatives, not deleting its data. You cannot delete the ad creative under the Kakao Bizboard X Reach(도달), 'Daum Shopping', or 'Video' type of campaign.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
ID | Long |
Original creative ID for execution. | O |
curl -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"
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json;charset=UTF-8
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 75008,
"detailMsg": "카카오톡 채널_도달 소재는 삭제할 수 없습니다.",
"path": "/v2/moment/creatives",
"timestamp": "2020-04-01T10:16:14.294+0000"
}
}
Method | URL | Authorization |
---|---|---|
GET |
https://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistory |
Business token |
Permission | Prerequisite | Business Authentication | Business consent items |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set Business redirect URI Business consent items |
Required | Required |
This API enables you to retrieve 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.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
ID | Long |
Original creative ID for execution. | O |
Name | Type | Description |
---|---|---|
id | Long |
System suspension ID. |
systemConfig | String |
System suspension status. One of the followings: ON : NormalADMIN_STOP : Admin suspended |
reason | String |
System suspension reason. |
createdDate | String |
Date and time when the system suspension reason is created in yyyy-MM-dd'T'HH:mm:ss format. |
lastModifiedDate | String |
Date and time when the system suspension reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format. |
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistory" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
{
"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"
}
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "Creative does not exist."
}
}
Method | URL | Authorization |
---|---|---|
GET |
https://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistories |
Business token |
Permission | Prerequisite | Business Authentication | Business consent items |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set Business redirect URI Business consent items |
Required | Required |
This API enables you to retrieve 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.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
ID | Long |
Original creative ID for execution. | O |
Name | Type | Description |
---|---|---|
- | SystemStopReason[] |
List of system suspension reason. |
Name | Type | Description |
---|---|---|
id | Long |
System suspension ID. |
systemConfig | String |
System suspension status. One of the followings: ON : Normal ADMIN_STOP : Admin suspended |
reason | String |
System suspension reason. |
createdDate | String |
Date and time when the system suspension reason is created in yyyy-MM-dd'T'HH:mm:ss format. |
lastModifiedDate | String |
Date and time when the system suspension reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format. |
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/${ID}/systemConfigHistories" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
[
{
"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"
}
]
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 33003,
"detailMsg": "Creative does not exist."
}
}