페이지 이동경로
  • Docs>
  • Kakao Moment>
  • Ad creation: Creative

Kakao Moment

Ad creation: Creative

This document describes how to use the Creative APIs.

View list of creatives

This API enables you to retrieve a list of creatives.

Send a GET request with the issued access 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

URL
GET /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
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

Response

Name Type Description
content Creative[] List of creative information.
Creative
Name Type Description
id Long Creative's ID which is assigned to a creative when the creative is initially created.
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, VOID, or 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": "creative1",
      "type": "DISPLAY",
      "config": "ON"
    },
    {
      "id": 1112,
      "name": "creative2",
      "type": "DISPLAY",
      "config": "OFF"
    }
  ]
}

View creative

This API enables you to retrieve detailed information of the specified creative.

Send a GET request with the issued access 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 by type in JSON format. 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. In the case of Carousel commerce (CAROUSEL_COMMERCE_MESSAGE) or Carousel feed (CAROUSEL_FEED_MESSAGE) type of Message creative, messageElement is not returned in the response. If failed, refer to Error code to figure out its failure cause.

A new field 'hasExpandable' added

On August 3, 2021, a new field that checks if Expandable is included in a creatvie information. You can create an Expandable component only with the permitted ad account. This field is supported only in the response of the Viewing creative and Report APIs.

Request

URL
GET /openapi/v4/creatives/{id} HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter: Path
Name Type Description Required
id Long Creative's representative ID, which is assigned to a creative when the creative is initially created. O

Response

Display creative
Key Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
name String Creative's name.
format String Creative's type.
One of IMAGE_BANNER, IMAGE_NATIVE, VIDEO_NATIVE, or SERVICE_CONTENT.
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, VOID, 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 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_VOID: Impossible to operate content.
SYSTEM_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.
serviceContent ServiceContent Content information about the SERVICE_CONTENT type of creative.
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 information.
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.
Message creative
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
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
PREMIUM_VIDEO_MESSAGE
config String Creative's status.
One of ON, OFF, or DEL (Deleted).
systemConfig String Creative's system status.
One of ON, VOID, or ADMIN_STOP.
statusDescription String Current status of a Message 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.

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/{id}" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: {adAccountId}"
Response
Display creative
Message creative
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"
    }
}
Response: Fail
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 33003,
        "detailMsg": "소재가 존재하지 않습니다."
    }
}

Create Display creative

This API enables you to create a Display creative. When you request, you must set format (Creative format) to either IMAGE_BANNER or IMAGE_NATIVE. Depending on the specified creative format, you need to pass different parameters when you request. For example, pass imageFileUrl for the image banner format, and pass both imageFileUrl and profileImageFileUrl for the image native format.

This API supports two types of Content-Type to create an image — application/json and multipart/form-data.

  • application/json: Pass the creative's image path with http:// or https:// URI scheme through the imageFileUrl parameter.
  • multipart/form-data: Pass the creative's local file path through the imageFile parameter.

Send a POST request with the issued access token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the detailed information of the created creative. If failed, refer to Error code to figure out its failure cause.

You cannot create a creative under the 'Bizboard X Reach(도달)' or 'Daum Shopping' type of campaign.

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

Creative type

After the update on February 21, 2023, you can create the following type of creatives by campaign type:

Campaign type Creative type Promotional image Profile image
Kakao Bizboard Image banner (IMAGE_BANNER) 1029 x 258, 300KB, PNG-24
Display Image native (IMAGE_NATIVE) 500 x 500 pixels or more (1:1), 500KB, JPG/JPEG/PNG
1200 x 600 pixels or more (2:1), 500KB, JPG/JPEG/PNG
300 x 300 pixels or more (1:1), 500KB, JPG/JPEG/PNG

Creative landing type

You can now use various creative landing types and landing settings, along with the URL that has been provided already. You can set a creative landing type only under the 'Kakao Bizboard' type of campaign.

We now provide the APIs that retrieve a list to set a landing type, but do not provide the APIs to create an Ad View, Business Form, or others. In the case of purchases using Kakao Pay, you are only allowed to retrieve, not create or modify.

You can check how to use each creative landing type in the table below.

Type Parameter
URL Use mobileLandingUrl to set a URL.
Chatbot, Channel Web View Use the Viewing list of Kakao Talk Channel profiles API.
Ad View Use the Viewing list of Ad Views for landing settings API.
Business Form Use the Viewing list of Business Forms landing types API.
Talk Calendar Use Event ID.
Channel Post Use Channel Post ID.

Request

URL
POST /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
IMAGE_BANNER
Name Type Description Required
adGroupId Long Ad group's ID. O
format String Creative's type.
Fixed as IMAGE_BANNER.
O
imageFileUrl String Promotional image.
Image size: 1029x258
File Size: 300KB
File format: PNG-24
Pass a URL with http:// or https:// scheme.
Required in case of application/json.
imageFile Multipart File Promotional image.
Image size: 1029x258
File Size: 300KB
File format: PNG-24
Pass the local file path.
Required in case of multipart/form-data.
landingInfo LandingInfo Landing type.
Allowed to set the landing type of creatives only under the 'Kakao Bizboard' type of campaign.
X
pcLandingUrl String Landing URL for PC.
Pass a valid URL with http:// or https:// scheme.
Not allowed to set for the 'Kakao Bizboard' type of campaign.
X
mobileLandingUrl String Landing URL for mobile.
Pass a valid URL with http:// or https:// scheme.
X
rspvLandingUrl String Responsive landing URL.
Pass a valid URL with http:// or https:// scheme.
Not allowed to set for the 'Kakao Bizboard' type of campaign.
X
altText String Description of the creative.
Used for voice guidance for people with disabilities.
Up to 30 characters are allowed.
Special characters are not allowed.
O
name String Creative's name.
Up to 40 characters are allowed.
If not specified, the name is automatically set in {CAMPAIGN_TYPE}{CAMPAIGN_GOAL}{CURRENT_TIME}_{CREATIVE_SIZE} format.
X
opinion String Opinion for ad verification.
Up to 1,000 characters.
X
opinionProofFileUrlList String Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass a valid URL with http:// or https:// scheme.
X
Available in case of application/json.
opinionProofFileList Multipart File Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass the local file path.
X
Available in case of multipart/form-data.
IMAGE_NATIVE
Name Type Description Required
adGroupId Long Ad group's ID. O
format String Creative's type.
Fixed as IMAGE_NATIVE.
O
profileImageFileUrl String Profiel image.
Image size: 300 x 300 pixels or more (1:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass a valid URL with http:// or https:// scheme.
Required in case of application/json.
profileImageFile Multipart File Profiel image.
Image size: 300 x 300 pixels or more (1:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass the local file path.
Required in case of multipart/form-data.
imageFileUrl String Promotional image.
Image size: 500 x 500 pixels or more (1:1) or 1200 x 600 pixels or more (2:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass a valid URL with http:// or https:// scheme.
Required in case of application/json.
imageFile Multipart File Promotional image.
Image size: 500 x 500 pixels or more (1:1) or 1200 x 600 pixels or more (2:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass the local file path.
Required in case of multipart/form-data.
title String Title.
Up to 25 characters are allowed.
O
profileName String Profile name.
Up to 20 characters are allowed.
O
description String Promotional text.
Up to 45 characters are allowed.
O
actionButton ActionButton Call-to-action button. O
pcLandingUrl String Landing URL for PC.
Pass a valid URL with http:// or https:// scheme.
Not allowed to set for the 'Kakao Bizboard' type of campaign.
X
mobileLandingUrl String Landing URL for mobile.
Pass a valid URL with http:// or https:// scheme.
X
rspvLandingUrl String Responsive landing URL.
Pass a valid URL with http:// or https:// scheme.
Not allowed to set for the 'Kakao Bizboard' type of campaign.
X
altText String Description of the creative.
Used for voice guidance for people with disabilities.
Up to 30 characters are allowed.
Special characters are not allowed.
O
name String Creative's name.
Up to 40 characters are allowed.
If not specified, the name is automatically set in {CAMPAIGN_TYPE}{CAMPAIGN_GOAL}{CURRENT_TIME}_{CREATIVE_SIZE} format.
X
opinion String Opinion for ad verification.
Up to 1,000 characters.
X
opinionProofFileUrlList String Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass a valid URL with http:// or https:// scheme.
X
Available in case of application/json.
opinionProofFileList Multipart File Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass the local file path.
X
Available in case of multipart/form-data.
LandingInfo
Name Type Description
landingType LandingType Landing type.
profileId String Kakao Talk Channel's profile ID if PF_BOT (Chatbot) or CHANNEL_WEBVIEW is set for a landing type.
Pass the Kakao Talk Channel's profile ID obtained through the Viewing list of Kakao Talk Channel profiles API.
action String Keyword if PF_BOT (Chatbot) is set for a landing type.
adViewItem AdViewItem Ad View object if AD_VIEW is set for a landing type.
Pass the id obtained through the Viewing list of Ad Views for landing settings API.
url String URL if CHANNEL_WEBVIEW (Channel Web View) is set for a landing type.
bizFormId Long Business Form's ID if BIZ_FORM (Business Form) is set for a landing type.
Pass the bizFormId obtained through the Viewing list of Business Forms for landing settings API.
talkCalendarEventId String Talk Calandar ID used when TALK_CALENDAR set for a landing type.
Only English characters and numbers are allowed.
Korean, space, and special characters are not allowed.
channelPostId Long Channel post ID if CHANNEL_POST is set for a landing type.
Pass the Post ID obtained through the Viewing list of Channel Posts for landing settings API.
LandingType
Name Description
PF_BOT Chatbot
AD_VIEW Ad View
CHANNEL_WEBVIEW Channel Web View
BIZ_FORM Business Form
TALK_CALENDAR Talk Calendar
CHANNEL_POST Channel Post
AdViewItem
Name Type Description
id Long Ad View's ID.
Landing URL

Landing URL has three types — URL for PC (pcLandingUrl), URL for mobile (mobileLandingUrl), and responsive URL(rspvLandingUrl). You must set at least one landing URL among these three types even though each URL is not required.
The Video native and Image box among Display ad creatives do not support landing URLs by type.

Response

IMAGE_BANNER
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
adGroupId Long Ad group's ID.
format String Creative's type.
IMAGE_BANNER
image Image Uploaded promotional image.
landingInfo LandingInfo Specified data for landing.
pcLandingUrl String Landing URL for PC.
mobileLandingUrl String Landing URL for mobile.
rspvLandingUrl String Responsive landing URL.
altText String Description of the creative.
config String Creative's status.
One of ON, OFF, or DEL (Deleted).
systemConfig String Creative's system status.
Either ON or VOID.
name String Creative's name.
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.
statusDescription String Current status of creative.
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.
rejectedReason String[] Reasons for rejection of creative (Empty array).
IMAGE_NATIVE
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
adGroupId Long Ad group's ID.
format String Creative's type.
Fixed as IMAGE_NATIVE.
profileImage Image Uploaded profile image.
image Image Uploaded promotional image.
title String Title.
profileName String Profile name.
description String Promotional text.
actionButton String Call-to-action button.
pcLandingUrl String Landing URL for PC.
mobileLandingUrl String Landing URL for mobile.
rspvLandingUrl String Responsive landing URL.
altText String Description of the creative.
config String Creative's status.
One of ON, OFF, or DEL (Deleted).
systemConfig String Creative's system status.
Either ON or VOID.
name String Creative's name.
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.
statusDescription String Current status of creative.
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.
rejectedReason String[] Reasons for rejection of creative (Empty array).

Sample

Request: application/json method
Image banner
Image native
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":"creative_description",
            "landingInfo": {
                "landingType":"AD_VIEW",
                "adViewItem":{"id":1}
            },
            "name": "first_image_banner"
        }'
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\",
            \"title\":\"title\",
            \"profileName\":\"profile_name\",
            \"description\":\"promotional_text\",
            \"actionButton\":\"JOIN\",            
            \"altText\":\"creative_description\",
            \"mobileLandingUrl\":\"http://www.daum.net\",
            \"name\":\"register_native_cerative\"
        }'
Request: multipart/form-data method
Image banner
Image native
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=@local_640X200_image_path" \
    -F "altText=creative_description" \
    -F "name=first_image_banner" \
    -F "mobileLandingUrl=http://www.daum.net" \
    -F "landingInfo.landingType=AD_VIEW" \
    -F "landingInfo.adViewItem.id=search_query"
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=@local_300X300_image_path" \
    -F "imageFile=@local_640X480_image_path" \
    -F "title=title" \
    -F "altText=creative_description" \
    -F "profileName=profile_name" \
    -F "description=promotional_text" \
    -F "actionButton=JOIN" \
    -F "mobileLandingUrl=http://www.daum.net"
Response
Image banner
Image native
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1,
    "creativeId": 2,
    "adGroupId": 1234,
    "format": "IMAGE_BANNER",
    "name": "first_image_banner",
    "landingInfo": {
        "landingType": "AD_VIEW",
        "adViewItem": {"id":1}
    },
    "pcLandingUrl": null,
    "mobileLandingUrl": "&bid=null&DA=XYZ",
    "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": "creative_description",
    "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": "register_moment_creative",
    "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": "title",
    "actionButton": "JOIN",
    "profileName": "profile_name",
    "profileImage": {
        "url": "http://xxx.kakao.co.kr/sample_image_native_xxx.jpg",
        "fileName": "sample_image_native.jpeg",
        "width": 300,
        "height": 300,
        "size": 50000
    },
    "altText": "creative_description",
    "description": "promotional_text",
    "statusDescription": "심사중",
    "createdDate": "2020-01-01T00:00:00.000000",
    "lastModifiedDate": "2020-01-01T00:00:00.000000",
    "rejectedReason": []
}

Create Message creative

This API enables you to create a Message creative under the 'Kakao Talk Channel X Reach(도달)' type of campaign.

Send a POST request with the issued access token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the detailed information of the created creative. If failed, refer to Error code to figure out its failure cause.

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

Policies on creative registration

If you create a creative for a sending group after the start of sending messages, the messages can be sent immediately as soon as the creative is saved according to the ad group's status. Check the start period and status of the ad group when creating a creative.

Type 5 minutes before sending 5 minutes before start of sending to sending moment During delivery period After delivery period
Basic message Allowed to register. Allowed to register. Allowed to register. Not allowed to register.
Smart message Allowed to register or add. Allowed to register.
Allowed to add when ad group is OFF.
Allowed to register.
Allowed to add when ad group is OFF.
Not allowed to register or add.

Required components by creative type

You cannot create the carousel commerce type (CAROUSEL_COMMERCE_MESSAGE), carousel feed type (CAROUSEL_FEED_MESSAGE), premium video type (PREMIUM_VIDEO_MESSAGE) of creative, or the creatives that include CouponBookAssetGroup through the open API.

You can only use the images and text that comply with the message delivery guidelines.

Basic text message
Component Required Landing: URL Landing: Post Landing: Coupon Landing: Ad View Landing: Business Form
Promotional image X X X X X X
Promotional video X Kakao TV landing Kakao TV landing Kakao TV landing Kakao TV landing Kakao TV landing
Promotional text O No landing No landing No landing No landing No landing
Button1 X O O O X X
Button2 X O O O O O
Share X No landing No landing No landing No landing No landing
  • Promotional image:
    • Image width: 80 pixels or more
    • Image type: JPG, PNG
    • Image file size: Up to 10 MB
    • Image aspect ratio: 1:2.5 or less
    • Original image: Up to 200 million pixels or less
    • If the landing for Button1 exists, the same landing is applied (Not allowed to set separately).
  • Promotional video: Allowed to select one among the public or private videos uploaded in Kakao TV channel.
    • If the landing for Button1 exists, the same landing is applied (Not allowed to set separately).
  • Promotional text:
    • If an image or a video is not attached, up to 40 characters are allowed.
    • If an image or a video is attached, up to 300 characters are allowed (If exceeding, not allowed to input).
    • Not allowed to input a URL link.
    • Up to 29 line breaks are allowed.
  • Button 1:
    • Lable: Up to 8 characters including space are allowed (If exceeding, not allowed to input).
  • Button 2:
    • Lable: Up to 8 characters including space are allowed (If exceeding, not allowed to input).
Wide image message
Component Required Landing: URL Landing: Post Landing: Coupon Landing: Ad View Landing: Business Form
Promotional image O
Either promotional image or promotional video is required.
O O O X X
Promotional video O
Either promotional image or promotional video is required.
Kakao TV landing Kakao TV landing Kakao TV landing Kakao TV landing Kakao TV landing
Promotional text O No landing No landing No landing No landing No landing
Button X O O O O O
Share X No landing No landing No landing No landing No landing
  • Promotional image:
    • Image width: 80 pixels or more
    • Image type: JPG, PNG
    • Image file size: Up to 10 MB
    • Image aspect ratio: 1:2.5 or less
    • Original image: Up to 200 million pixels or less
  • Promotional video: Allowed to choose the video uploaded manually or the public or private video uploaded in Kakao TV channel.
  • Promotional text:
    • Up to 76 characters are allowed (If exceeding, not allowed to input).
    • Not allowed to input a URL link.
    • A single line break is allowed.
  • Button:
    • Lable: Up to 8 characters including space are allowed (If exceeding, not allowed to input).
Wide list message
Component Required Landing: URL Landing: Post Landing: Coupon Landing: Ad View Landing: Business Form
Title of List 1 X No landing No landing No landing No landing No landing
Title of List 2 and 3
O No landing No landing No landing No landing No landing
Promotional image of List1 to List3 O
Either promotional image or promotional video is required.
O O O X X
Promotional video of List1 to List3 O
Either promotional image or promotional video is required.
Landing only on Kakao TV Landing only on Kakao TV Landing only on Kakao TV Landing only on Kakao TV Landing only on Kakao TV
Promotional text of List1 to List3 O Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item
Promotional image of List4 X O O O X X
Promotional video of List4 X Landing only on Kakao TV Landing only on Kakao TV Landing only on Kakao TV Landing only on Kakao TV Landing only on Kakao TV
Promotional text of List4 X Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item Same as landing of promotional image or promotional video set for each item
Button X O O O O O
Share X No landing No landing No landing No landing No landing
  • Title: Up to 20 characters allowed (If exceeding, not allowed to input).
  • Promotional image of List1 to List3:
    • Image width: 80 pixels or more
    • Image type: JPG, PNG
    • Image file size: Up to 10 MB
    • Image aspect ratio: 1:2.5 or less
    • Original image: Up to 200 million pixels or less
    • Recommended image size: For Item1, 800 x 400 pixels. For the others, 400 x 400 pixels
  • Promotional video of List1 to List3: Allowed to select one among the public or private videos uploaded in Kakao TV channel.
  • Promotional text of List1 to List3:
    • For Item1, up to 25 characters are allowed. For the others, up to 30 characters (If exceeding, not allowed to input).
    • Not allowed to input a URL link.
    • A single line break is allowed.
  • Promotional image of List4:
    • Image width: 80 pixels or more
    • Image type: JPG, PNG
    • Image file size: Up to 10 MB
    • Image aspect ratio: 1:2.5 or less
    • Original image: Up to 200 million pixels or less
  • Promotional video of List4: Allowed to select one among the public or private videos uploaded in Kakao TV channel.
  • Promotional text of List4:
    • For Item1, up to 25 characters are allowed. For the others, up to 30 characters (If exceeding, not allowed to input).
    • Not allowed to input a URL link.
    • A single line break is allowed.
  • Button:
    • Lable: Up to 8 characters including space are allowed (If exceeding, not allowed to input).

Request

URL
POST /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
adGroupId Long Ad group's ID. O
format String Creative type.
Use one of the followings:
BASIC_TEXT_MESSAGE, WIDE_MESSAGE, or WIDE_LIST_MESSAGE
O
name String Creative's name.
Up to 40 characters are allowed.
If not specified, the name is automatically set in {CAMPAIGN_TYPE}{CAMPAIGN_GOAL}{CURRENT_TIME} format.
X
messageElement MessageElement Message content to be created.
Pass the contents in mesasgeElement.{} format with MULTIPART/FORM-DATA.
O
MessageElement
Name Type Description Required
creativeFormat String Message creative's type.
Use one of the followings:
BASIC_TEXT_MESSAGE, WIDE_MESSAGE, or WIDE_LIST_MESSAGE
Must be same as format.
O
profileId String Kakao Talk Channel's profile ID. O
title String Promotional text.
Required only if a message type is BASIC_TEXT_MESSAGE or WIDE_MESSAGE.
Up to 400 characters are allowed for BASIC_TEXT_MESSAGE.
Up to 76 characters are allowed for WIDE_MESSAGE.
O*
buttonAssetGroups ButtonAssetGroup[] Button items.
In case of BASIC_TEXT_MESSAGE type, up to 2 button asset groups are allowed.
For the other types, only one button asset group is allowed.
If you disable all buttons, the setting is applied in all message types.
For button1 with BASIC_TEXT_MESSAGE type, the landing can be set to URL, Post, or Coupon, and can be disabled.
For button2, Ad View and Business Form can be set as the landing.
For WIDE_MESSAGE and WIDE_LIST_MESSAGE type, all landing types are availble.
X
itemAssetGroups ItemAssetGroup[] List items. O
shareFlag Boolean Whether to use Sharing.
If ageVerification (age verification message) of the parent ad group is set to true, only false is allowed.
O
adFlag Boolean Whether to use informatvie message. O
imageFile Multipart file Image file to be uploaded.
Allowed only if the message type is BASIC_TEXT_MESSAGE.
For the other types, pass through the itemAssetGroup object.
X
videoMeta VideoMeta Information on Kakao TV to be linked.
Allowed only if the message type is BASIC_TEXT_MESSAGE.
For the other types, pass through the itemAssetGroup object.
X
csInfo String Phone number of customer support. O
ButtonAssetGroup
Name Type Description Required
ordering Integer Order of buttons.
Pass 0 or 1 for BASIC_TEXT_MESSAGE.
For other types, 0 is allowed only.
O
pcLandingUrl String Landing URL for PC.
Only allowed when LANDING_URL is set for a landing type.
Used to land on a seperate URL when a user clicks a button on the PC version of Kakao Talk.
Pass a valid URL with http:// or https:// scheme.
X
mobileLandingUrl String Landing URL for mobile.
Pass a valid URL with http:// or https:// scheme.
O*
title String Button name.
Up to 8 characters are allowed.
In case of Business Form, only the following button names are allowed:
"톡에서 설문하기" (Survery on Talk),
"톡에서 시승신청" (Request test drive on Talk),
"톡에서 예약하기" (Reserve on Talk),
"톡에서 응모하기" (Apply on Talk),
"톡에서 참여하기" (Join on Talk)
O
landingType String Landing type.
Use one of the followings:
LANDING_URL: URL landing
CHANNEL_COUPON : Coupon landing
CHANNEL_POST: Post landing
BIZ_FORM: Business Form landing
AD_VIEW: Ad View landing
O
channelCouponId Long Coupon ID.
Allowed if the message landing type is CHANNEL_COUPON .
Use the coupon ID obtained through the Viewing list of coupons API.
O*
channelPostId Long Channel post ID.
Allowed if the landing type is CHANNEL_POST.
Pass the Post ID obtained through the the Viewing list of Channel Posts for landing settings API.
O*
bizFormId Long Business Form's ID.
Allowed if the landing type is is BIZ_FORM (Business Form)
Pass the bizFormId obtained through the Viewing list of Business Forms for landing settings API.
O*
adViewId Long Ad View ID.
Allowed if the landing type is AD_VIEW.
Pass the Ad View ID obtained through the Viewing list of Ad Views API.
O*
ItemAssetGroup
Name Type Description Required
landingType String Landing type.
Use one of the followings:
LANDING_URL: URL landing
CHANNEL_COUPON: Coupon landing
CHANNEL_POST: Post landing
O
title String Promotional text.
Allowed only if the message type is not messageElement.itemAssetGroups[0] among WIDE_LIST_MESSAGEs.
O*
mobileLandingUrl String Landing URL for mobile.
Pass a valid URL with http:// or https:// scheme.
X
pcLandingUrl String Landing URL for PC.
Pass a valid URL with http:// or https:// scheme.
X
channelPostId Long Channel post ID.
Allowed if the landing type is CHANNEL_POST.
Pass the Post ID obtained through the the Viewing list of Channel Posts for landing settings API.
X
channelCouponId Long Coupon ID.
Allowed if the message landing type is CHANNEL_COUPON .
Use the coupon ID obtained through the Viewing list of coupons API.
X
imageFile Multipart File Image file to be uploaded.
Alowed only if the message type is WIDE_MESSAGE or WIDE_LIST_MESSAGE.
Not allowed if the landing type is URL.
O*
videoMeta VideoMeta Video (Kakao TV) meta information.
Allowed only if the message type is BASIC_TEXT_MESSAGE.
O*
VideoMeta
Name Type Description Required
id Long Clip Link ID to be linked to a Kakao TV ID
Pass clipLinkId obtained through the Viewing details of Kakao TV channel video API.
O
thumbnail String Thumbnail URL.
Pass thumbnailUrl obtained through the Viewing details of Kakao TV channel video API.
O
isLoad Boolean Whether to load Kakao TV.
Fixed as true.
O
isLive Boolean Whether Kakao TV is live.
Fixed as false.
O
isLink Boolean Whether it is Kakao TV video link.
Fixed as true.
O

Response

Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
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
config String Creative's status.
One of ON, OFF, or DEL (Deleted).
systemConfig String Creative's system status.
Either ON or VOID.
statusDescription String Current status of a Message 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.

Sample

Request
Basic text message
Wide list message
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=Promotional text" \
    -F "messageElement.buttonAssetGroups[0].ordering=0" \
    -F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
    -F "messageElement.buttonAssetGroups[0].title=button1" \
    -F "messageElement.buttonAssetGroups[0].pcLandingUrl=http://www.daum.net" \
    -F "messageElement.buttonAssetGroups[0].mobileLandingUrl=https://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=request_test_drive_on_talk" \
    -F "messageElement.name=basic_text" \
    -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:wide_list_promotional_text" \
    -F "messageElement.buttonAssetGroups[0].ordering:0" \
    -F "messageElement.buttonAssetGroups[0].title:button1" \
    -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:widelist" \
    -F "messageElement.itemAssetGroups[0].ordering:0" \
    -F "messageElement.itemAssetGroups[0].title:title1" \
    -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:title2" \
    -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:title3" \
    -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:title4" \
    -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": "KakaoTalkChannel_Reach_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": "KakaoTalkChannel_Reach_20210625",
        "creativeFormat": "BASIC_TEXT_MESSAGE",
        "title": "This is promotional text.",
        "image": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "fullview_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": "fullview_1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "buttonAssetGroups": [
            {
                "ordering": 0,
                "title": "button1",
                "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": "fullview_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"
    }
}

Copy Display creative

This API enables you to copy a Display creative. You can request to copy up to 20 creatives but may fail to copy if exceeding the maximum number of creatable creatives of an account.

You can copy only the Image banner or Image native creatives under the 'Kakao Bizboard X Visit(방문)', 'Kakao Bizboard X Conversion(전환)', 'Display X Visit(방문)', and 'Display X Conversion(전환)' type of campaign. The maximum bid amount you set for your ad group is applied to the bid amount for all creatives under the ad group.

Send a POST request with the issued access token and an ad account ID (adAccountId) in the request header. You must also pass the ad group ID which the creatives will copy to and the creative IDs to be copied as a list. If the request is successful, this API returns the detailed information of the copied creatives. 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.

Request

URL
POST /openapi/v4/creatives/copy HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
adGroupId Long Ad group ID which the creatives will be copied to (Up to 100). O
creativeIds Long[] List of creative IDs to be copied. O

Response

Name Type Description
- DisplayCreative[] List of creative information.
DisplayCreative
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
name String Creative's name.
format String Creative type.
One of IMAGE_BANNER, IMAGE_NATIVE, or SERVICE_CONTENT.
landingUrl String Landing URL.
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 VOID.
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 opearate.
- UNAPPROVED: Unapproved.
- INVALID_DATE: Invalid date.
- MONITORING_REJECTED: Admin suspended.
- OFF: User OFF.
- DELETED: Deleted.
- ADGROUP_UNAVAILABLE: Impossible to operate ad group.
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_BANNER type of creative.
title String Title 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.
description String Promotional text of the IMAGE_NATIVE or VIDEO_NATIVE type of creative.
profileImage Image Uploaded profile image.
video Video Video with the VIDEO_NATIVE type of creative.
rejectedReason RejectedReason Reasons for rejection of creative.
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.

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": "image_creative1",
        "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": "image_description1",
        "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": "image_creative2",
        "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": "image_description2",
        "statusDescription": "운영중",
        "rejectedReason": [],
        "createdDate": "2020-01-01T00:00:00.000000",
        "lastModifiedDate": "2020-01-01T00:00:00.000000"
    }
]

Copy Message creative

This API enables you to copy a creative under the 'Kakao Talk Channel X Reach(도달)' type of campaign.

Send a POST request with the issued access token and an ad account ID (adAccountId) in the request header. You must also pass the ad group ID which the creatives will copy to and the creative IDs to be copied as a list. If the request is successful, this API returns the detailed information of the copied creatives. 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.

Cases not allowed to be copied

You cannot copy the carousel commerce type (CAROUSEL_COMMERCE_MESSAGE), carousel feed type (CAROUSEL_FEED_MESSAGE), premium video type (PREMIUM_VIDEO_MESSAGE) of creative, or the creatives that include CouponBookAssetGroup through the open API.

Message creatives not allowed to be copied
Case Result if attempting to copy
Message under a campaign from different Kakao Talk Channel Only the corresponding Kakao Talk Channel's profile ID is displayed in the campaign selection list on the pop-up screen to copy a creative.
Channel Admin Center message saved under an ad group before the editor is released If the message is selected as the creatives to be copied, an alert is displayed.
Message that lands on the coupon of which status is 'Immediately finished' or 'event application date expired'. The message is not counted as the number of creatives that can be copied.
"Impossible to copy" is displayed on the list.
Message that lands on the Business Form of which status is 'Finished' The message is not counted as the number of creatives that can be copied.
"Impossible to copy" is displayed on the list.
Message that lands on the Post of which status is 'Deleted' The message is not counted as the number of creatives that can be copied.
"Impossible to copy" is displayed on the list.
Message that lands on the Ad View of which status is 'Deleted' The message is not counted as the number of creatives that can be copied.
"Impossible to copy" is displayed on the list.
Message under a campaign from the same Kakao Talk Channel On the pop-up screen to copy a creative, it is impossible to copy the creative under an existing ad group set as ageVerification: true to a new ad group set as ageVerification: false.

Request

URL
POST /openapi/v4/creatives/copy HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
adGroupId Long Ad group ID which the creatives will be copied to. O
creativeIds Long[] ID list of creatives to be copied. O

Response

Name Type Description
- MessageCreative[] List of creative information.
MessageCreative
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
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
config String Creative's status.
One of ON, OFF, or DEL (Deleted).
systemConfig String Creative's system status.
Either ON or VOID.
statusDescription String Current status of a Message 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.

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": "KakaoTalkChannel_Reach_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": "KakaoTalkChannel_Reach_20210625",
            "creativeFormat": "BASIC_TEXT_MESSAGE",
            "title": "This is promotional text.",
            "image": {
                "fileSize": 168816,
                "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
                "fileName": "fullview_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": "fullview_1280x720.jpg",
                "imageWidth": 1280,
                "imageHeight": 720,
                "mimeType": "image/jpeg",
                "imageHash": "35156f0c1393434ced4be21423d08a6a"
            },
            "buttonAssetGroups": [
                {
                    "ordering": 0,
                    "title": "button1",
                    "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": "fullview_1280x720.jpg",
                "imageWidth": 1280,
                "imageHeight": 720,
                "mimeType": "image/jpeg",
                "imageHash": "35156f0c1393434ced4be21423d08a6a"
            },
            "createdDate": "2021-06-25T17:04:03",
            "lastModifiedDate": "2021-06-25T17:04:06"
        }
    }
]

Edit Display creative

This API enables you to edit a Display creative. Depending on the creative type, you need to pass different parameters when you request. For example, pass imageFileUrl for image banner format, and pass both imageFileUrl and profileImageFileUrl for image native format.

This API supports two types of Content-Type to create an image — application/json and multipart/form-data.

  • application/json: Pass the creative's image path in http:// or https:// URI scheme through the imageFileUrl parameter.
  • multipart/form-data: Pass the creative's local file path through the imageFile parameter.

No matter which type you request, the result of editing a creative is the same. If there is no imageFileUrl or profileImageFileUrl in the request body, the image that has previously registered is used.

Send a PUT request with the issued access token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the detailed information of the modified creative. If failed, refer to Error code to figure out its failure cause.

You cannot edit a creative under the 'Bizboard X Reach(도달)' or 'Daum Shopping' type of campaign.

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

Request

URL
PUT /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Parameter
IMAGE_BANNER
Name Type Description Required
id Long Creative's representative ID, which is assigned to a creative when the creative is initially created. O
adGroupId Long Ad group's ID. O
format String Creative's type.
Fixed as IMAGE_BANNER.
O
imageFileUrl String Promotional image.
Image size: 1029x258
File Size: 300KB
File format: PNG-24
Pass a URL with http:// or https:// scheme.
Required in case of application/json.
imageFile Multipart File Promotional image.
Image size: 1029x258
File Size: 300KB
File format: PNG-24
Pass the local file path.
Required in case of multipart/form-data.
landingInfo LandingInfo Data to be set for landing.
Not allowed to request three types of the landing URL at once.
X
pcLandingUrl String Landing URL for PC.
Pass a valid URL with http:// or https:// scheme.
Not allowed to set for the 'Kakao Bizboard' type of campaign.
X
mobileLandingUrl String Landing URL for mobile.
Pass a valid URL with http:// or https:// scheme.
X
rspvLandingUrl String Responsive landing URL.
Pass a valid URL with http:// or https:// scheme.
Not allowed to set for the 'Kakao Bizboard' type of campaign.
X
altText String Description of the creative.
Used for voice guidance for people with disabilities.
Up to 30 characters are allowed.
Special characters are not allowed.
O
name String Creative's name.
Up to 40 characters are allowed.
If you do not specify, the name specified when creating the creative is used.
X
opinion String Opinion for ad verification.
Up to 1,000 characters.
X
opinionProofFileUrlList String Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass a valid URL with http:// or https:// scheme.
X
Available in case of application/json.
opinionProofFileList Multipart File Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass the local file path.
X
Available in case of multipart/form-data.
IMAGE_NATIVE
Name Type Description Required
id Long Creative's representative ID, which is assigned to a creative when the creative is initially created. O
adGroupId Long Ad group's ID. O
format String Creative type.
Fixed as IMAGE_NATIVE.
O
profileImageFileUrl String Profiel image.
Image size: 300 x 300 pixels or more (1:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass a valid URL with http:// or https:// scheme.
Required in case of application/json.
profileImageFile Multipart File Profiel image.
Image size: 300 x 300 pixels or more (1:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass the local file path.
Required in case of multipart/form-data.
imageFileUrl String Promotional image.
Image size: 500 x 500 pixels or more (1:1) or 1200 x 600 pixels or more (2:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass a valid URL with http:// or https:// scheme.
Required in case of application/json.
imageFile Multipart File Promotional image.
Image size: 500 x 500 pixels or more (1:1) or 1200 x 600 pixels or more (2:1)
File Size: 500 KB
File format: JPG/JPEG/PNG
Pass the local file path.
Required in case of multipart/form-data.
title String Title.
Up to 25 characters are allowed.
O
profileName String Profile name.
Up to 20 characters are allowed.
O
description String Promotional text.
Up to 45 characters are allowed.
O
actionButton ActionButton Call-to-action button. O
pcLandingUrl String Landing URL for PC.
Pass a valid URL with http:// or https:// scheme.
X
mobileLandingUrl String Landing URL for mobile.
Pass a valid URL with http:// or https:// scheme.
X
rspvLandingUrl String Responsive landing URL.
Pass a valid URL with http:// or https:// scheme.
X
altText String Description of the creative.
Used for voice guidance for people with disabilities.
Up to 30 characters are allowed.
Special characters are not allowed.
O
name String Creative's name.
Up to 40 characters are allowed.
If you do not specify, the name specified when creating the creative is used.
X
opinion String Opinion for ad verification.
Up to 1,000 characters.
X
opinionProofFileUrlList String Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass a valid URL with http:// or https:// scheme.
X
Available in case of application/json.
opinionProofFileList Multipart File Material for ad verification.
File format: JPG, JPEG, PNG, PDF
Total file size: 10 MB or less
Up to 10 files are allowed.
Pass the local file path.
X
Available in case of multipart/form-data.
Landing URL

Landing URL has three types — URL for PC (pcLandingUrl), URL for mobile (mobileLandingUrl), and responsive URL(rspvLandingUrl). You must set at least one landing URL among these three types even though each URL is not required.
The Video native and Image box among Display ad creatives do not support landing URLs by type.

Response

IMAGE_BANNER
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
adGroupId Long Ad group's ID.
format String Creative's type.
IMAGE_BANNER
image Image Uploaded promotional image.
landingInfo LandingInfo Specified data for landing.
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).
name String Creative's name.
altText String Description of the creative.
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.
statusDescription String Current status of creative.
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.
rejectedReason String[] Reasons for rejection of creative (Empty array).
IMAGE_NATIVE
Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
adGroupId Long Ad group's ID.
format String Creative's type.
IMAGE_NATIVE
profileImage Image Uploaded profile image.
image Image Uploaded promotional image.
title String Title.
profileName String Profile name.
description String Promotional text.
actionButton String Call-to-action button.
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).
name String Creative's name.
altText String Description of the creative.
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.
statusDescription String Current status of creative.
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.
rejectedReason String[] Reasons for rejection of creative (Empty array).

Sample

Request: application/json method
Image banner
Image native
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":"edit_creative_description",
            "mobileLandingUrl":"http://www.daum.net",
            "name":"edit_image"
        }'
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":"edit_creative_description",
            "title":"edit_title",
            "profileName":"edit_profile_name",
            "altText":"edit_creative_description",
            "description":"edit_promotional_text",
            "actionButton":"JOIN",
            "mobileLandingUrl":"http://www.daum.net",
            "name":"edit_native_creative"
        }'
Request: multipart/form-data method
Image banner
Image native
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=@local_640X200_image_path" \
    -F "altText=edit_creative_description" \
    -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=@local_300X300_image_path" \
    -F "imageFile=@local_640X480_image_path" \
    -F "altText=edit_creative_description" \
    -F "title=edit_title" \
    -F "profileName=edit_profile_name" \
    -F "description=edit_promotional_text" \
    -F "actionButton=JOIN" \
    -F "mobileLandingUrl=http://www.daum.net"
Response
Image banner
Image native
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 1234,
    "creativeId": 1235,
    "adGroupId": 5678,
    "format": "IMAGE_BANNER",
    "name": "edit_image",
    "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": "edit_creative_description",
    "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": "edit_native_creative",
    "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": "title",
    "description": "edit_promotional_text",
    "actionButton": "JOIN",
    "profileName": "edit_profile_name",
    "profileImage": {
        "url": "http://xxx.kakao.co.kr/sample_image_banner_xxx.jpg",
        "fileName": "sample_image_native.jpg",
        "width": 300,
        "height": 300,
        "size": 50000
    },
    "altText": "edit_creative_description",
    "statusDescription": "심사중",
    "createdDate": "2020-01-01T00:00:00.000000",
    "lastModifiedDate": "2020-01-01T00:00:00.000000",
    "rejectedReason": []
}

Edit Message creative

This API enables you to edit a Message creative under the 'Kakao Talk Channel X Reach(도달)' type of campaign.

Send a PUT request with the issued access token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the detailed information of the modified creative. If failed, refer to Error code to figure out its failure cause.

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

Policies on creative modification

To edit a creative, it must be the same as the previous message format. Since 5 minutes before the delivery, you can only edit the creative's name. The request to edit other parameters except for its name is ignored.

Type 5 minutes before sending 5 minutes before start of sending to sending moment During delivery period After delivery period
Basic message Possible Impossible Impossible Impossible
Smart message Possible Impossible Impossible Impossible

You cannot change the carousel commerce type (CAROUSEL_COMMERCE_MESSAGE), carousel feed type (CAROUSEL_FEED_MESSAGE), premium video type (PREMIUM_VIDEO_MESSAGE) of creative, or the creatives that include CouponBookAssetGroup through the open API.

You can only use the images and text that comply with the message delivery guidelines.

Request

URL
PUT /openapi/v4/creatives HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Parameter
Name Type Description Required
adGroupId Long Ad group's ID. O
format String Creative's type.
Use one of the followings:
BASIC_TEXT_MESSAGE
WIDE_MESSAGE
WIDE_LIST_MESSAGE
O
name String Creative's name.
Up to 40 characters are allowed.
If not specified, the name is automatically set in {CAMPAIGN_TYPE}{CAMPAIGN_GOAL}{CURRENT_TIME} format.
X
messageElement MessageElement Message content to be modified to.
Pass the contents in mesasgeElement.{} format with MULTIPART/FORM-DATA.
O

Response

Name Type Description
id Long Creative's representative ID.
Identification number assigned to a creative when the creative is initially created.
creativeId Long Creative's ID.
Identification number assigned to a creative when the creative is modified, which is used for delivery.
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
config String Creative's status.
One of ON, OFF, or DEL (Deleted).
systemConfig String Creative's system status.
Either ON or VOID.
statusDescription String Current status of a Message 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.

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=Promotional text" \
    -F "messageElement.buttonAssetGroups[0].ordering=0" \
    -F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
    -F "messageElement.buttonAssetGroups[0].title=button1" \
    -F "messageElement.buttonAssetGroups[0].pcLandingUrl=http://www.daum.net" \
    -F "messageElement.buttonAssetGroups[0].mobileLandingUrl=https://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=request_test_drive_on_talk" \
    -F "messageElement.name=basic_text" \
    -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": "KakaoTalkChannel_Reach_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": "KakaoTalkChannel_Reach_20210625",
        "creativeFormat": "BASIC_TEXT_MESSAGE",
        "title": "This is promotional text.",
        "image": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "fullview_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": "fullview_1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "buttonAssetGroups": [
            {
                "ordering": 0,
                "title": "button1",
                "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": "fullview_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"
    }
}

Change creative status

This API enables you to change a creative's status. You can only change its status if the creative's status is ON or OFF. You cannot change the status of creatives under the 'Bizboard X Reach(도달)', 'Daum Shopping', 'Kakao Talk Channel', or 'Video' type of campaign.

Send a PUT request with the issued access 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.

Request

URL
PUT /openapi/v4/creatives/onOff HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
id Long Creative's ID which is assigned to a creative when the creative is initially created. O
config String Creative's status.
Either ON or 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: Success
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": "소재가 존재하지 않습니다."
    }
}

Retrieve materials for Display ad verification

This API enables you to retrieve the materials for verification that are submitted for the corresponding Display creative.

Send a GET request with the issued access token in the request header. If the request is successful, this API returns the information on the materials for verification in JSON format. If failed, refer to Error code to figure out its failure cause.

Request

URL
GET /openapi/v4/creatives/{id}/opinionProof HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
id Long Creative's representative ID, which is assigned to a creative when the creative is initially created. O

Response

Name Type Description
id Long Opinion ID.
opinion String Opinion for ad verification.
opinionProofFileList OpinionFile[] List of materials for verification.

Sample

Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/creatives/{id}/opinionProof" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: {adAccountId}"
Response: Success
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: Fail
{
    "code": -813,
    "msg": "KakaoMomentException",
    "extras": {
        "detailCode": 75637,
        "detailMsg": "의견증빙 정보가 존재하지 않습니다."
    }
}

Delete creative

This API enables you to delete a creative.

Send a DELETE request with the issued access 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.

IMPORTANT

Deleting a creative means giving up the operation of creatives, not deleting its data. You cannot delete the ad creative under the 'Sponsored board', Kakao Bizboard X Reach(도달), 'Daum Shopping', or 'Video' type of campaign.

Request

URL
DELETE /openapi/v4/creatives/{id} HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
id Long Creative's ID which is assigned to a creative when the creative is initially created. 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: Success
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

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 or VOID, the response is returned.

Send a GET request with the issued access 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

URL
GET /openapi/v4/creatives/{id}/systemConfigHistory HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
id Long Creative's ID which is assigned to a creative when the creative is initially created. O

Response

Name Type Description
id Long System suspension ID.
systemConfig String System suspension status.
One of the followings:
ON: Normal
VOID: Content error
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.

Sample

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

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 or VOID, the response is returned.

Send a GET request with the issued access 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

URL
GET /openapi/v4/creatives/{id}/systemConfigHistories HTTP/1.1
Host: apis.moment.kakao.com
Authorization: Bearer ${ACCESS_TOKEN}
Header
Name Type Description Required
Authorization String Pass an access token in Bearer ${ACCESS_TOKEN} format. O
adAccountId Long Ad account's ID. O
Parameter
Name Type Description Required
id Long Creative's ID which is assigned to a creative when the creative is initially created. O

Response

Name Type Description
- SystemStopReason[] List of system suspension reason.
SystemStopReason
Name Type Description
id Long System suspension ID.
systemConfig String System suspension status.
One of the followings:
ON: Normal
VOID: Content error
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.

Sample

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