사이드 메뉴
Getting started
Kakao Developers
Login
Communication
Advertisement
- Concepts
- Ad creation: Ad account
- Ad creation: Campaign
- Ad creation: Ad group
- Targeting for ad group
- Custom audience targeting for ad group
- Ad creation: Creative common
- Ad creation: Display creative
- Ad creation: Message creative
- Ad creation: Personalized message creative
- Bizboard landing settings
- Report
- Message management
- Personalized message management
- Message ad management
- Message ad operation
- Ad View management
- Business Form linkage management
- Pixel & SDK linkage management
- Audience management
- Engagement targeting management
- Customer file management
- Friend group management
- Ad account management
- Reference
- Type information
- Error code
Ad creation: Creative
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 |
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.
| 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: ONOFFDEL(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. |
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 OKContent-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 |
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.
| 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.
|
| 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:
|
| creativeStatus | String | Creative's operation status. One of the followings:
|
| 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.
|
| Name | Type | Description |
|---|---|---|
| id | Long | Original creative ID for execution. |
| creativeId | Long | Creative's ID. Message creatives have no review status and are always the same as the original creative ID ( id). |
| name | String | Creative's name. |
| adGroupId | Long | Ad group's ID. |
| format | String | Creative's type. One of the followings:
|
| 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 Kakao TalkChannel X Reach ad group. One of the followings:- 발송 대기: Ready
|
| creativeStatus | String | Creative's operation status. One of the followings:
|
| 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.
|
| Name | Type | Description |
|---|---|---|
| id | Long | Original creative ID used for execution. |
| creativeId | Long | Creative's ID.
|
| format | String | Creative's type. Fixed to VIDEO_NATIVE. |
| name | String | Creative's name. |
| adGroupId | Long | Ad group's ID. |
| pcLandingUrl | String | Landing URL for PC. |
| mobileLandingUrl | String | Landing URL for mobile. |
| rspvLandingUrl | String | Responsive landing URL. |
| frequencyCapType | String | Auto setting type of frequency capping. |
| frequencyCap | Integer | Frequency capping. |
| config | String | Creative's status. One of ON, OFF, or DEL (Deleted). |
| systemConfig | String | Creative's system status. Either ON or ADMIN_STOP. |
| reviewStatus | String | Review status. One of the followings:
|
| creativeStatus | String | Creative's operation status. One of the followings:
|
| image | Image | Uploaded promotional image. |
| title | String | Title. |
| description | String | Promotional text. |
| actionButton | String | Call-to-action button. |
| profileName | String | Profile name. |
| profileImage | Image | Uploaded profile image. |
| video | Video | Uploaded promotional video. |
| statusDescription | String | Current status of creative. |
| rejectedReason | String[] | Reasons for rejection of creative (Empty array). |
| createdDate | String | Date and time when the creative is created. |
| lastModifiedDate | String | Date and time when the creative is lastly modified. |
| opinionProof | OpinionFile[] | List of materials for ad verification. |
| thumbnailImage | Image | Uploaded custom thumbnail image. |
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 OKContent-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": "소재가 존재하지 않습니다."}}
| 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 |
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.
| 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 |
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 OKContent-Length: 0Content-Type: application/json;charset=UTF-8
Response: Fail
HTTP/1.1 200 OKContent-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 |
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.
Deleting a creative means giving up the operation of creatives, not deleting its data.
| 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 |
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 OKContent-Length: 0Content-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"}}
| 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 |
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.
| 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:
|
| 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. |
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."}}
| 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 |
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.
| 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:
|
| 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. |
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."}}