페이지 이동경로
  • Docs>
  • Kakao Moment>
  • Ad creation: Personalized message creative

Kakao Moment

Ad creation: Personalized message creative

This document describes how to use the Personalized message creative APIs.

Before you begin

Caution

You cannot create the below creatives with Open APIs:

  • Creatives in PREMIUM_VIDEO_MESSAGE type.
  • Creatives including CouponBookAssetGroup.

You cannot use images and texts that do not fit the message guideline.

Common guide

Promotion image

Name Description
Format JPG, JPEG, PNG
Size Recommended: 800x400, 800x800, 800x600
Images less than 80px width cannot be used.
File size Less than 10MB
Ratio Recommended: 2:1, 1:1, 4:3
Images with an aspect ratio greater than 1:2.5 are not allowed.

Promotion video

You can choose from uploaded public videos on Kakao TV.

Promotion text

Up to 1,000 characters are allowed, including variables. However, after variable substitution, the guide for each message type and area must be followed when requesting delivery.

Button

Up to 1,000 characters are allowed, including variables. However, after variable substitution, the button name must be inputted up to 8 characters when requesting delivery.

Component guide

Required component

Component Default text Wide image Wide list
Promotion image/video Not required Either one required One of list 1-3 is required
Promotion text Required Required -
Button 1 Not required Not required Not required
Button 2 Not required Not required Not required
List 1 Promotion title - - Not required
List 2,3 Promotion title - - Required

* The 4th list for Wide list type is optional. If used, a promotion image or video, promotion text, and promotion title are required.

Component specification

Component Default text Wide image Wide list
Promotion image/video Fixed URL or variable value Fixed URL or variable value Fixed URL or variable value
Promotion text After converting the variable value,
- Up to 400 characters without image/video attached
- Up to 300 characters with image/video attached
- Link input not allowed, up to 29 newlines allowed
After converting the variable value,
- Up to 76 characters can be inputted
- Link input not allowed, only 1 newline allowed
-
Button 1, 2 After converting the variable value,
- Up to 8 characters including spaces
After converting the variable value,
- Up to 8 characters including spaces
After converting the variable value,
- Up to 8 characters including spaces
List title - - After converting the variable value,
- Up to 20 characters
- No newline
Promotion text for list 1 - - After converting the variable value,
- Up to 25 characters
- No newline
Promotion text for list 2,3 - - After converting the variable value,
- Up to 30 characters
- No newline

* The 4th list for Wide list type is optional, the specification is the same as list 2 or 3 when used.

Landing

Component Default text Wide image Wide list
Promotion image Landing not possible Same as the landing set for button 1 Same as the landing set for button 1
Promotion video Kakao TV Landing setting Kakao TV Landing setting Kakao TV Landing setting
Promotion text Landing not possible Landing not possible -
Button 1 URL, post, coupon URL, post, coupon URL, post, coupon
Button 2 URL, post, coupon, Ad view, Business form URL, post, coupon, Ad view, Business form URL, post, coupon, Ad view, Business form
List title - - Landing not possible
Promotion text for list 1,2,3 - - Same as the landing set for the Promotion image or video on each text

Variable field name

You can use the variables below when to request creating or sending creatives. You must use each field name with a specific number. (EX: ${brand_name1})

Caution

You cannot create or send a personlaized message including not valid variables. You cannot request send messages with values do not meet the guideline. Note that your advertisement operations, such as the ad account, may be penalized when you try to send personalized messages, including illegal private information, or use variables that may cause inconvenience to the recipient.

No. Data Field name Pattern
1 Date date ${date1} ~ ${date4}
2 Site name site_name ${site_name1}
3 Brand name brand_name ${brand_name1}
4 User name user_name ${user_name1}
5 User ID user_id ${user_id1}
6 User rating user_rating ${user_rating1}
7 Available point available_point ${available_point1}
8 Number of coupons available_coupon ${available_coupon1}
9 Product ID product_id ${product_id1} ~ ${product_id7}
10 Product name product_name ${product_name1} ~ ${product_name7}
11 Price - regular price ${price1} ~ ${price7}
12 Price - discount sale_price ${sale_price1} ~ ${sale_price7}
13 Discount amount discount_amount ${discount_amount1} ~ ${discount_amount7}
14 Discount rate discount_percent ${discount_percent1} ~ ${discount_percent7}
15 Promotion image image_url ${image_url1} ~ ${image_url7}
16 Promotion video video_url ${video_url}
17 Mobile URL mobile_url ${mobile_url1} ~ ${mobile_url13}
18 PC URL pc_url ${pc_url1} ~ ${pc_url13}

Variable specification

No. Data Type Singular/Plural Number available Length Data type
1 Date Text Plural 4 20 String
2 Site name Text Singular 1 30 String
3 Brand name Text Singular 1 30 String
4 User name Text Singular 1 20 String
5 User ID Text Singular 1 20 String
6 User rating Text Singular 1 20 String
7 Available point Text Singular 1 10 Number
8 Number of coupons Text Singular 1 10 Number
9 Product ID Text Plural 7 50 String
10 Product name Text Plural 7 25 String
11 Price - regular Price Plural 7 8 Number
12 Price - discount Price Plural 7 8 Number
13 Discount amount Price Plural 7 8 Number
14 Discount rate Text Plural 7 2 Number
15 Promotion image¹⁾ Image Plural 7 1000 String
16 Promotion video²⁾ Video Plural 4 1000 String
17 Mobile URL Landing Plural 13 1000 String
18 PC URL Landing Plural 13 1000 String

¹⁾ Only URLs through Upload image for personalized message API are allowed

²⁾ Only Kakao TV URLs registered through Set video for personalized message API are allowed (EX: https://tv.kakao.com/v/302308909)

Available variables for each creative type

You can use the following values of the variables for each creative type. The conversion result cannot include line breaks.

Default text

Component Available variable
Promotion image/video Variables for images or videos
One of fixed images/video or variable
Promotion text Text or price type variable
Button 1~2 Landing type: Variable value support for URL only
- Mobile URL(mobile_url1)
- PC URL(pc_url1)
Text or price type variable

Wide image

Component Available variable
Promotion image/video Variables for images or videos
One of fixed images/video or variable
Landing Supports landing setting only when registering images
When registering a video, the landing is automatically set to Kakao TV landing
Landing type: Variable value support for URL only
- Mobile URL(mobile_url1)
- PC URL(pc_url1)
Promotion text Text or price type variable
Button 1~2 Landing type: Variable value support for URL only
- Mobile URL(mobile_url1)
- PC URL(pc_url1)
Text or price type variable

Wide list

Component Available variable
Title Text or price type variable
Promotion image/video for each list Variables for images or videos
One of fixed images/video or variable
Landing Landing type: Variable value support for URL only
- Mobile URL(mobile_url1)
- PC URL(pc_url1)
Promotion text Text or price type variable
Button 1~2 Landing type: Variable value support for URL only
- Mobile URL(mobile_url1)
- PC URL(pc_url1)
Text or price type variable

Create Personalized message creative template

Basic information
Method URL Authorization
POST https://apis.moment.kakao.com/openapi/v4/creatives Access token
Permission Prerequisite Kakao Login User consent
Required Register platforms
Activate Kakao Login
Switch to a Biz app
Required -

This API enables you to create a creative template of the Personal message X Reach type campaign.

Send a POST request with an access token and ad account ID in the header. If the request is successful, the response includes a JSON object of the created creative information. If failed, refer to Error code to figure out its failure cause.

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

Request

Header
Name Description Required
Authorization Authorization: Bearer ${ACCESS_TOKEN}
Access token as a type of user authentication.
O
adAccountId adAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Body
Name Type Description Required
adGroupId Long Ad group ID O
format String Creative type, one of:
BASIC_TEXT_MESSAGE
WIDE_MESSAGE
WIDE_LIST_MESSAGE
CAROUSEL_COMMERCE_MESSAGE
CAROUSEL_FEED_MESSAGE
O
name String Creative name
If not specified, automatically set to {CAMPAIGN_TYPE}_{CAMPAIGN_TARGET}_{CURRENT_TIME}.
(Maximum: 40 characters)
X
messageElement MessageElement The content of the message.
Use MULTIPART/FORM-DATA and pass each content as mesasgeElement.{}.
O
MessageElement
Name Type Description Required
creativeFormat String The type of the message creative, must be the same as format.
One of:
BASIC_TEXT_MESSAGE
WIDE_MESSAGE
WIDE_LIST_MESSAGE
CAROUSEL_COMMERCE_MESSAGE
CAROUSEL_FEED_MESSAGE
O
profileId String Kakao Talk channel profile ID O
title String Promotion text or title
Displayed on the different locations by the creative format.
BASIC_TEXT_MESSAGE: Promotional text (Up to 400 characters, up to 300 characters with an image or a video)
WIDE_MESSAGE: Promotional text (Up to 76 characters)
WIDE_LIST_MESSAGE: Title (Up to 20 characters)
CAROUSEL_COMMERCE_MESSAGE: Title of the intro card (Up to 20 characters)
However, when using a variable, up to 1,000 characters are allowed.
The convert result must meet the guideline.
O*
description String Promotional text for the intro card of CAROUSEL_COMMERCE_MESSAGE
Up to 50 characters
However, when using a variable, up to 1,000 characters are allowed.
The convert result must meet the guideline.
X
buttonAssetGroups ButtonAssetGroup[] Button items
You can use maximum 2 button asset groups.
Not essential for BASIC_TEXT_MESSAGE, WIDE_MESSAGE, and WIDE_LIST_MESSAGE types
Button 1 is required for CAROUSEL_COMMERCE_MESSAGE and CAROUSEL_FEED_MESSAGE types.
For the button 1, URL, posts, coupons are available for the landing.
For the button 2, Adview and Business form are available for the landing.
However, the Carousel types can only use URL for the landing.
X
itemAssetGroups ItemAssetGroup[] List items O
shareFlag Boolean Sharing option
For the personalized message must be false.
O
adFlag Boolean Advertising message
true or false
O
imageFile Multipart file Image file to upload (Available when using a fixed image for the personalized message)
Only available when the message type is Default text (BASIC_TEXT_MESSAGE) or for the intro card of CAROUSEL_COMMERCE_MESSAGE.
For other types can be set with the ItemAssetGroup object.
X
image Image Variable for the image of Personalized message (Available when using a variable)
Only available when the message type is Default text (BASIC_TEXT_MESSAGE).
For other types can be set with the ItemAssetGroup object.
X*
videoMeta VideoMeta Kakao TV video information
Only available when the message type is Default text (BASIC_TEXT_MESSAGE).
For other types can be set with the ItemAssetGroup object.
Carousel types do not support video.
X
csInfo String Customer center phone number O
hasIntro Boolean Whether the CAROUSEL_COMMERCE_MESSAGE creative has the intro card X
introLandingType String Landing type of the CAROUSEL_COMMERCE_MESSAGE intro card X
introMobileLandingUrl String Landing URL of the CAROUSEL_COMMERCE_MESSAGE intro card for mobile X
introPcLandingUrl String Landing URL of the CAROUSEL_COMMERCE_MESSAGE intro card for PC X
ButtonAssetGroup
Name Type Description Required
ordering Integer Button order
0, 1 are available
O
pcLandingUrl String PC landing URL
Available when the landingType is LANDING_URL
PC landing URL is used to land the user to a URL from the PC Kakao Talk.
A valid URL with http:// or https:// format.
X
mobileLandingUrl String Mobile landing URL
A valid URL with http:// or https:// format.
O*
title String Button name
Maximum 8 characters
For the Business Form, button names below are available:
"톡에서 설문하기"(Survey in the Kakao Talk)
"톡에서 시승신청"(Apply for the ride in the Kakao Talk)
"톡에서 예약하기"(Reserve in the Kakao Talk)
"톡에서 응모하기"(Apply in the Kakao Talk)
"톡에서 참여하기"(Join in the Kakao Talk)
For button 1 of CAROUSEL_COMMERCE_MESSAGE type, only "구매하기" is available.
However, title can be inputted up to 1,000 characters using a variable.
The title, after converting a variable, must be followed guidelines for delivery.
O
landingType String Landing type, one of:
URL landing (LANDING_URL)
Coupon landing (CHANNEL_COUPON)
Post landing 랜딩 (CHANNEL_POST)
Business form landing (BIZ_FORM)
Ad view landing (AD_VIEW)
For carousel types, only LANDING_URL is available.
O
channelCouponId Long Coupon ID
Available when the landingType is Coupon landing (CHANNEL_COUPON).
A coupon ID of the response of Viewing list of coupons API.
O*
channelPostId Long Post ID
Available when the landingType is Post landing (CHANNEL_POST).
A post ID of the response of Viewing list of posts API.
O*
bizFormId Long Business form ID
Available when the landingType is Business form landing (BIZ_FORM).
A business form ID of the response of Viewing list of Business Forms API.
O*
adViewId Long Ad view ID
Available when the landingType is Ad view landing (AD_VIEW).
An Ad view ID of the response of Viewing list of Ad Views API.
O*
ItemAssetGroup
Name Type Description Required
landingType String Landing type, one of:
URL landing (LANDING_URL)
Coupon landing (CHANNEL_COUPON)
Post landing (CHANNEL_POST)
For carousel types, only LANDING_URL is available.
O
title String Promotion text
Displayed on different locations by the creative type
WIDE_LIST_MESSAGE: Title (limitation: for the first title up to 25 characters, for the second to fourth title up to 30 characters), first or fourth list is not essential
CAROUSEL_COMMERCE_MESSAGE: Title (Up to 25 characters)
CAROUSEL_FEED_MESSAGE: Title (Up to 20 characters)
However, when using a variable, up to 1,000 characters are allowed.
The convert result must meet the guideline.
O
description String Promotional text for CAROUSEL_FEED_MESSAGE
Up to 180 characters
However, when using a variable, up to 1,000 characters are allowed.
The convert result must meet the guideline.
O
priceAmount String Price for CAROUSEL_COMMERCE_MESSAGE
(Minumum: 0, Maximum: 99999999, integers only)
Required for CAROUSEL_COMMERCE_MESSAGE
However, when using a variable, up to 100 characters are allowed.
The convert result must meet the guideline.
O*
priceCurrencyCode String Currency
One of KRW, USD, JPY, and EUR
Required for CAROUSEL_COMMERCE_MESSAGE
O*
discountedPriceAmount String Discounted price for CAROUSEL_COMMERCE_MESSAGE
(Minumum: 0, Maximum: 99999999, integers only)
Must be bigger than the priceAmount
However, when using a variable, up to 100 characters are allowed.
The convert result must meet the guideline.
X
mobileLandingUrl String Mobile landing URL
A valid URL with http:// or https:// format.
Only the same landing as button 1 is allowed for the types of Carousel commerce or Carousel feed.
X
pcLandingUrl String PC landing URL
Available when the landingType is LANDING_URL
PC landing URL is used to land the user to a URL from the PC Kakao Talk.
A valid URL with http:// or https:// format.
X
channelPostId Long Post ID
Available when the landingType is Post landing (CHANNEL_POST).
A post ID of the response of Viewing list of posts API.
X
channelCouponId Long Coupon ID
Available when the landingType is Coupon landing (CHANNEL_COUPON).
A coupon ID of the response of Viewing list of coupons API.
X
imageFile Multipart File Image file to upload
Alowed only if the message type is one of WIDE_MESSAGE, WIDE_LIST_MESSAGE, CAROUSEL_COMMERCE_MESSAGE, or CAROUSEL_FEED_MESSAGE.
O*
image Image A variable for the image in the personalized message
Use to attach an image in the personalized message with a variable.
Available for the types of WIDE_MESSAGE, WIDE_LIST_MESSAGE, CAROUSEL_COMMERCE_MESSAGE (Except for the intro card), CAROUSEL_FEED_MESSAGE.
O*
videoMeta VideoMeta Video (Kakao TV) meta information.
Allowed only if the message type is WIDE_MESSAGE or WIDE_LIST_MESSAGE.
O*
VideoMeta
Name Type Description Required
id Long Kakao TV Clip link URL
clipLinkId of the result of Viewing list of Kakao TV channel videos API.
O
thumbnail String Thumbnail URL
A thumbnail URL of the result of Viewing details of Kakao TV channel video API.
O
isLoad Boolean Whether to load Kakao TV video.
Must be set to true.
O
isLive Boolean Whether Kakao TV video is a live video.
Must be set to false.
O
isLink Boolean Whether to link Kakao TV video.
Must be set to true.
O
valueWithVariable String Variable information
(* Only used for personalized messages. Other fields are ignored when valueWithVariable is used.)
(EX: ${video_url1})
O*
ImageFile
Name Type Description Required
imageFile Multipart File Image file to upload. O
Image
Name Type Description Required
valueWithVariable String Variable information
(EX: ${image_url1})
O*

Response

Body
Name Type Description
id Long Original creative ID for execution.
creativeId Long Creative's ID.
creativeId may differ from id when temporarily assigned for the pending status in the review.
creativeId for the message creatives are always equal to id since it has no review status.
name String Creative name
adGroupId Long Ad group ID
format String Message type, one of:
BASIC_TEXT_MESSAGE
WIDE_MESSAGE
WIDE_LIST_MESSAGE
CAROUSEL_COMMERCE_MESSAGE
CAROUSEL_FEED_MESSAGE
config String Creative status, one of:
ON, OFF, DEL
creativeStatus String Status of the creative, one of:
OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(관리자정지), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가)
creativeDate String Date and time when the creative is created.
lastModifiedDate String Date and time when the creative is lastly modified.
messageElement MessageElement Message contents
MessageElement
Name Type Description
id Long Message creative ID
adAccountId Long Ad account ID
profileId String Kakao Talk channel profile ID
profileName String Kakao Talk channel profile name
name String Message creative name
shareFlag boolean Sharing option
adFlag boolean Advertising message
creativeFormat String Message creative type, one of:
BASIC_TEXT_MESSAGE
WIDE_MESSAGE
WIDE_LIST_MESSAGE
CAROUSEL_COMMERCE_MESSAGE
CAROUSEL_FEED_MESSAGE
title String Promotional text or title
Displayed on the different locations by the creative format.
BASIC_TEXT_MESSAGE: Promotional text
WIDE_MESSAGE: Promotional text
WIDE_LIST_MESSAGE: Title
CAROUSEL_COMMERCE_MESSAGE: Title of the intro card
description String Promotional text for the intro card of CAROUSEL_COMMERCE_MESSAGE
image Image Image
Responded only for Default text (BASIC_TEXT_MESSAGE) type.
video Video Kakao TV video
Responded only for Default text (BASIC_TEXT_MESSAGE) type.
buttonAssetGroups ButtonAssetGroup Button items
itemAssetGroups ItemAssetGroup List items
Responded only for the WIDE_MESSAGE (Wide image), WIDE_LIST_MESSAGE (Wide list), CAROUSEL_COMMERCE_MESSAGE (Carousel commerce), CAROUSEL_FEED_MESSAGE (Carousel feed) types.
thumbnailUrl String Thumbnail URL
csInfo String Customer center phone number
createdDate String Date and time when the message creative is created, in yyyy-MM-dd'T'HH:mm:ss format.
lastModifiedDate String Date and time when the message creative is lastly modified, in yyyy-MM-dd'T'HH:mm:ss format.
hasIntro Boolean Whether the CAROUSEL_COMMERCE_MESSAGE creative has the intro card
introLandingType String Landing type of the CAROUSEL_COMMERCE_MESSAGE intro card
introMobileLandingUrl String Landing URL of the CAROUSEL_COMMERCE_MESSAGE intro card for mobile
introPcLandingUrl String Landing URL of the CAROUSEL_COMMERCE_MESSAGE intro card for PC
Image
Name Type Description
size Long File size
url String Image URL
fileName String Image file name
width Integer Width
height Integer Height
mimeType String Mime type
valueWithVariable String Variable information
(EX: ${image_url1})
Video
Name Type Description
vid String Kakao TV video unique ID
name String Kakako TV video name
previewImage String Preview thumbnail URL
thumbnail String Thumbnail URL
duration Double Duration of the video
clipId String Mime type
clipLinkId Long Clip link ID
liveLinkId Long Live link ID
channelId Long Kakao TV channel ID
channelName String Kakao TV channel name
isVertical Boolean Whether it is a vertical video.
videoType String Video type, one of:
UPLOAD, PREUPLOAD, LINK, NONE
isOwner Boolean Whether you are the owner of the video.
valueWithVariable String Variable information
(EX: ${video_url1})
ButtonAssetGroup
Name Type Description
ordering Long Button order
title String Button title
rspvLandingUrl String Responsive Landing URL
mobileLandingUrl String Mobile landing URL
pcLandingUrl String PC landing URL
adViewId Long Ad view ID
bizFormId Long Business form ID
channelPostId Long Channel post ID
channelCouponId Long Channel coupon ID
thumbnail String Thumbnail
highlighted Boolean Whether to use the highlight button.
landingType String Landing type, one of:
LANDING_URL, CHANNEL_COUPON, CHANNEL_POST, AD_VIEW, BIZ_FORM
ItemAssetGroup
Name Type Description
thumbnail Long Thumbnail URL
landingType String Landing type
Null with a Kakao TV video creative, otherwise one of following:
LANDING_URL, CHANNEL_COUPON, CHANNEL_POST
ordering Integer Ordering
title String Promotional text or title
Promotional text in the item asset group is passed only for WIDE_LIST_MESSAGE, CAROUSEL_COMMERCE_MESSAGE, CAROUSEL_FEED_MESSAGE types.
description String Promotional text for CAROUSEL_FEED_MESSAGE
priceAmount Integer Price for CAROUSEL_COMMERCE_MESSAGE
priceCurrencyCode String Currency
One of KRW, USD, JPY, and EUR
discountedPriceAmount Integer Discounted price for CAROUSEL_COMMERCE_MESSAGE
mobileLandingUrl String Mobile landing URL
Responded only for LANDING_URL landing type.
pcLandingUrl String PC landing URL
Responded only for LANDING_URL landing type.
image Image Image creative
Image in the item asset group is returned for WIDE_MESSAGE, WIDE_LIST_MESSAGE, CAROUSEL_COMMERCE_MESSAGE, CAROUSEL_FEED_MESSAGE types.
video Video Kakao TV video
Responded only for Wide image or Wide list type.
thumbnail Thumbnail Representative thumbnail
Image information for Kakao TV video creative.
Thumbnail
Name Type Description
fileSize Long File size
url String Representative thumbnail URL
fileName String Representative thumbnail file name
imageWidth Integer Width
imageHeight Integer Height
mimeType String Mime type

Sample

Request
Basic text
Wide list
Carousel commerce
Carousel feed
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${AD_ACCOUNT_ID}"
    -F "messageElement.creativeFormat=BASIC_TEXT_MESSAGE" \
    -F "messageElement.profileId=_Xxo" \
    -F "messageElement.title=홍보문구" \
    -F "messageElement.buttonAssetGroups[0].ordering=0" \
    -F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
    -F "messageElement.buttonAssetGroups[0].title=버튼1" \
    -F "messageElement.buttonAssetGroups[0].pcLandingUrl=${pc_url1}" \
    -F "messageElement.buttonAssetGroups[0].mobileLandingUrl=${mobile_url1}" \
    -F "messageElement.buttonAssetGroups[1].ordering=1" \
    -F "messageElement.buttonAssetGroups[1].landingType=BIZ_FORM" \
    -F "messageElement.buttonAssetGroups[1].bizFormId=1" \
    -F "messageElement.buttonAssetGroups[1].title=톡에서 시승신청" \
    -F "messageElement.name=기본텍스트" \
    -F "messageElement.shareFlag=true" \
    -F "messageElement.adFlag=true" \
    -F "messageElement.csInfo=02-1234-5678" \
    -F "messageElement.image.valueWithVariable=${image_url1}" \
    -F "adGroupId=12345" \
    -F "format=BASIC_TEXT_MESSAGE"
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${AD_ACCOUNT_ID}"
    -F "messageElement.creativeFormat:WIDE_LIST_MESSAGE" \
    -F "Format:WIDE_LIST_MESSAGE" \
    -F "messageElement.profileId=_Xxju" \
    -F "messageElement.title=${brand_name1}" \
    -F "messageElement.buttonAssetGroups[0].ordering=0" \
    -F "messageElement.buttonAssetGroups[0].title=버튼1" \
    -F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
    -F "messageElement.buttonAssetGroups[0].pcLandingUrl=${pc_url1}" \
    -F "messageElement.buttonAssetGroups[0].mobileLandingUrl=${mobile_url1}" \
    -F "messageElement.shareFlag=true" \
    -F "messageElement.adFlag=true" \
    -F "messageElement.csInfo=014-1122-1251" \
    -F "adGroupId=12345" \
    -F "name=와이드리스트소재" \
    -F "messageElement.itemAssetGroups[0].ordering=0" \
    -F "messageElement.itemAssetGroups[0].title=${product_name1}" \
    -F "messageElement.itemAssetGroups[0].landingType=LANDING_URL" \
    -F "messageElement.itemAssetGroups[0].mobileLandingUrl=${mobile_url1}" \
    -F "messageElement.itemAssetGroups[1].ordering=1" \
    -F "messageElement.itemAssetGroups[1].title=${product_name2}" \
    -F "messageElement.itemAssetGroups[1].landingType=LANDING_URL" \
    -F "messageElement.itemAssetGroups[1].mobileLandingUrl=${mobile_url2}" \
    -F "messageElement.itemAssetGroups[2].ordering=2" \
    -F "messageElement.itemAssetGroups[2].title=${product_name3}" \
    -F "messageElement.itemAssetGroups[2].landingType=LANDING_URL" \
    -F "messageElement.itemAssetGroups[2].mobileLandingUrl=${mobile_url3}" \
    -F "messageElement.itemAssetGroups[3].ordering=3" \
    -F "messageElement.itemAssetGroups[3].title=${product_name4}" \
    -F "messageElement.itemAssetGroups[3].landingType=LANDING_URL" \
    -F "messageElement.itemAssetGroups[3].mobileLandingUrl=${mobile_url4}" \
    -F "messageElement.itemAssetGroups[0].image.valueWithVariable=${image_url1}" \
    -F "messageElement.itemAssetGroups[1].image.valueWithVariable=${image_url2}" \
    -F "messageElement.itemAssetGroups[2].image.valueWithVariable=${image_url3}" \
    -F "messageElement.itemAssetGroups[3].image.valueWithVariable=${image_url4}"
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${AD_ACCOUNT_ID}"
    -F 'adGroupId="12345"' \
    -F 'name="캐러셀 커머스 메시지"' \
    -F 'Format="CAROUSEL_COMMERCE_MESSAGE"' \
    -F 'messageElement.creativeFormat="CAROUSEL_COMMERCE_MESSAGE"' \
    -F 'messageElement.profileId="_Xxju"' \
    -F 'messageElement.title="${brand_name1}"' \
    -F 'messageElement.description="${product_name1}"' \
    -F 'messageElement.shareFlag="false"' \
    -F 'messageElement.adFlag="true"' \
    -F 'messageElement.image.valueWithVariable="${image_url1}"' \
    -F 'messageElement.csInfo="014-1122-1251"' \
    -F 'messageElement.hasIntro="true"' \
    -F 'messageElement.introLandingType="LANDING_URL"' \
    -F 'messageElement.introMobileLandingUrl="${mobile_url1} "' \
    -F 'messageElement.introPcLandingUrl="${pc_url1}"' \
    -F 'messageElement.itemAssetGroups[0].ordering="0"' \
    -F 'messageElement.itemAssetGroups[0].title="${product_name1}"' \
    -F 'messageElement.itemAssetGroups[0].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[0].pcLandingUrl="${pc_url1}"' \
    -F 'messageElement.itemAssetGroups[0].mobileLandingUrl="${mobile_url1}"' \
    -F 'messageElement.itemAssetGroups[0].priceAmount="${price1}"' \
    -F 'messageElement.itemAssetGroups[0].priceCurrencyCode="KRW"' \
    -F 'messageElement.itemAssetGroups[0].discountedPriceAmount="${sale_price1}"' \
    -F 'messageElement.itemAssetGroups[1].ordering="1"' \
    -F 'messageElement.itemAssetGroups[1].title="${product_name2}"' \
    -F 'messageElement.itemAssetGroups[1].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[1].pcLandingUrl="${pc_url2}"' \
    -F 'messageElement.itemAssetGroups[1].mobileLandingUrl="${mobile_url2}"' \
    -F 'messageElement.itemAssetGroups[1].priceAmount="123${price1}"' \
    -F 'messageElement.itemAssetGroups[1].priceCurrencyCode="KRW"' \
    -F 'messageElement.itemAssetGroups[1].discountedPriceAmount="12${sale_price1}"' \
    -F 'messageElement.itemAssetGroups[2].ordering="2"' \
    -F 'messageElement.itemAssetGroups[2].title="${product_name3}"' \
    -F 'messageElement.itemAssetGroups[2].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[2].pcLandingUrl="${pc_url3}"' \
    -F 'messageElement.itemAssetGroups[2].mobileLandingUrl="${mobile_url3}"' \
    -F 'messageElement.itemAssetGroups[2].priceAmount="${price1}"' \
    -F 'messageElement.itemAssetGroups[2].priceCurrencyCode="KRW"' \
    -F 'messageElement.itemAssetGroups[2].discountedPriceAmount="${sale_price1}"' \
    -F 'messageElement.itemAssetGroups[3].ordering="3"' \
    -F 'messageElement.itemAssetGroups[3].title="${product_name4}"' \
    -F 'messageElement.itemAssetGroups[3].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[3].pcLandingUrl="${pc_url4}"' \
    -F 'messageElement.itemAssetGroups[3].mobileLandingUrl="${mobile_url4}"' \
    -F 'messageElement.itemAssetGroups[3].priceAmount="${price1}"' \
    -F 'messageElement.itemAssetGroups[3].priceCurrencyCode="KRW"' \
    -F 'messageElement.itemAssetGroups[3].discountedPriceAmount="${sale_price1}"' \
    -F 'messageElement.itemAssetGroups[4].ordering="4"' \
    -F 'messageElement.itemAssetGroups[4].title="${product_name5}"' \
    -F 'messageElement.itemAssetGroups[4].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[4].pcLandingUrl="${pc_url5}"' \
    -F 'messageElement.itemAssetGroups[4].mobileLandingUrl="${mobile_url5}"' \
    -F 'messageElement.itemAssetGroups[4].priceAmount="${price1}"' \
    -F 'messageElement.itemAssetGroups[4].priceCurrencyCode="KRW"' \
    -F 'messageElement.itemAssetGroups[4].discountedPriceAmount="${sale_price1}"' \
    -F 'messageElement.itemAssetGroups[5].ordering="5"' \
    -F 'messageElement.itemAssetGroups[5].title="${product_name6}"' \
    -F 'messageElement.itemAssetGroups[5].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[5].pcLandingUrl="${pc_url6}"' \
    -F 'messageElement.itemAssetGroups[5].mobileLandingUrl="${mobile_url6}"' \
    -F 'messageElement.itemAssetGroups[5].priceAmount="${price1}"' \
    -F 'messageElement.itemAssetGroups[5].priceCurrencyCode="KRW"' \
    -F 'messageElement.itemAssetGroups[5].discountedPriceAmount="${sale_price1}"' \
    -F 'messageElement.itemAssetGroups[0].image.valueWithVariable="${image_url7}"' \
    -F 'messageElement.itemAssetGroups[1].image.valueWithVariable="${image_url2}"' \
    -F 'messageElement.itemAssetGroups[2].image.valueWithVariable="${image_url3}"' \
    -F 'messageElement.itemAssetGroups[3].image.valueWithVariable="${image_url4}"' \
    -F 'messageElement.itemAssetGroups[4].image.valueWithVariable="${image_url5}"' \
    -F 'messageElement.itemAssetGroups[5].image.valueWithVariable="${image_url6}"' \
    -F 'messageElement.buttonAssetGroups[0].ordering="0"' \
    -F 'messageElement.buttonAssetGroups[0].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[0].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[0].pcLandingUrl="${pc_url1}"' \
    -F 'messageElement.buttonAssetGroups[0].mobileLandingUrl="${mobile_url1}"' \
    -F 'messageElement.buttonAssetGroups[1].ordering="1"' \
    -F 'messageElement.buttonAssetGroups[1].title="${product_name1}"' \
    -F 'messageElement.buttonAssetGroups[1].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[1].pcLandingUrl="${pc_url3}"' \
    -F 'messageElement.buttonAssetGroups[1].mobileLandingUrl="${mobile_url3} "' \
    -F 'messageElement.buttonAssetGroups[2].ordering="2"' \
    -F 'messageElement.buttonAssetGroups[2].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[2].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[2].pcLandingUrl="${pc_url2}"' \
    -F 'messageElement.buttonAssetGroups[2].mobileLandingUrl="${mobile_url2}"' \
    -F 'messageElement.buttonAssetGroups[3].ordering="3"' \
    -F 'messageElement.buttonAssetGroups[3].title="${product_name2}"' \
    -F 'messageElement.buttonAssetGroups[3].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[3].pcLandingUrl="${pc_url5} "' \
    -F 'messageElement.buttonAssetGroups[3].mobileLandingUrl="${mobile_url5} "' \
    -F 'messageElement.buttonAssetGroups[4].ordering="4"' \
    -F 'messageElement.buttonAssetGroups[4].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[4].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[4].pcLandingUrl="${pc_url3}"' \
    -F 'messageElement.buttonAssetGroups[4].mobileLandingUrl="${mobile_url3}"' \
    -F 'messageElement.buttonAssetGroups[5].ordering="5"' \
    -F 'messageElement.buttonAssetGroups[5].title="${product_name3}"' \
    -F 'messageElement.buttonAssetGroups[5].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[5].pcLandingUrl="${pc_url7} "' \
    -F 'messageElement.buttonAssetGroups[5].mobileLandingUrl="${mobile_url7} "' \
    -F 'messageElement.buttonAssetGroups[6].ordering="6"' \
    -F 'messageElement.buttonAssetGroups[6].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[6].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[6].pcLandingUrl="${pc_url4}"' \
    -F 'messageElement.buttonAssetGroups[6].mobileLandingUrl="${mobile_url4}"' \
    -F 'messageElement.buttonAssetGroups[7].ordering="7"' \
    -F 'messageElement.buttonAssetGroups[7].title="${product_name4}"' \
    -F 'messageElement.buttonAssetGroups[7].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[7].pcLandingUrl="${pc_url9} "' \
    -F 'messageElement.buttonAssetGroups[7].mobileLandingUrl="${mobile_url9}"' \
    -F 'messageElement.buttonAssetGroups[8].ordering="8"' \
    -F 'messageElement.buttonAssetGroups[8].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[8].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[8].pcLandingUrl="${pc_url5}"' \
    -F 'messageElement.buttonAssetGroups[8].mobileLandingUrl="${mobile_url5}"' \
    -F 'messageElement.buttonAssetGroups[9].ordering="9"' \
    -F 'messageElement.buttonAssetGroups[9].title="${product_name5}"' \
    -F 'messageElement.buttonAssetGroups[9].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[9].pcLandingUrl="${pc_url11} "' \
    -F 'messageElement.buttonAssetGroups[9].mobileLandingUrl="${mobile_url11}"' \
    -F 'messageElement.buttonAssetGroups[10].ordering="10"' \
    -F 'messageElement.buttonAssetGroups[10].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[10].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[10].pcLandingUrl="${pc_url6}"' \
    -F 'messageElement.buttonAssetGroups[10].mobileLandingUrl="${mobile_url6}"' \
    -F 'messageElement.buttonAssetGroups[11].ordering="11"' \
    -F 'messageElement.buttonAssetGroups[11].title="${product_name6}"' \
    -F 'messageElement.buttonAssetGroups[11].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[11].pcLandingUrl="${pc_url13} "' \
    -F 'messageElement.buttonAssetGroups[11].mobileLandingUrl="${mobile_url13}"'
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${AD_ACCOUNT_ID}"
    -F 'adGroupId="12345"' \
    -F 'name="Carousel feed"' \
    -F 'Format="CAROUSEL_FEED_MESSAGE"' \
    -F 'messageElement.creativeFormat="CAROUSEL_FEED_MESSAGE"' \
    -F 'messageElement.profileId="_Xxju"' \
    -F 'messageElement.shareFlag="false"' \
    -F 'messageElement.adFlag="true"' \
    -F 'messageElement.csInfo="014-1122-1251"' \
    -F 'messageElement.itemAssetGroups[0].ordering="0"' \
    -F 'messageElement.itemAssetGroups[0].title="${brand_name1}"' \
    -F 'messageElement.itemAssetGroups[0].description="${product_name1}"' \
    -F 'messageElement.itemAssetGroups[0].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[0].pcLandingUrl="${pc_url1}"' \
    -F 'messageElement.itemAssetGroups[0].mobileLandingUrl="${mobile_url1}"' \
    -F 'messageElement.itemAssetGroups[1].ordering="1"' \
    -F 'messageElement.itemAssetGroups[1].title="${brand_name1}"' \
    -F 'messageElement.itemAssetGroups[1].description="${product_name2}"' \
    -F 'messageElement.itemAssetGroups[1].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[1].pcLandingUrl="${pc_url2}"' \
    -F 'messageElement.itemAssetGroups[1].mobileLandingUrl="${mobile_url2}"' \
    -F 'messageElement.itemAssetGroups[2].ordering="2"' \
    -F 'messageElement.itemAssetGroups[2].title="${brand_name1}"' \
    -F 'messageElement.itemAssetGroups[2].description="${product_name3}"' \
    -F 'messageElement.itemAssetGroups[2].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[2].pcLandingUrl="${pc_url3}"' \
    -F 'messageElement.itemAssetGroups[2].mobileLandingUrl="${mobile_url3}"' \
    -F 'messageElement.itemAssetGroups[3].ordering="3"' \
    -F 'messageElement.itemAssetGroups[3].title="${brand_name1}"' \
    -F 'messageElement.itemAssetGroups[3].description="${product_name4}"' \
    -F 'messageElement.itemAssetGroups[3].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[3].pcLandingUrl="${pc_url4}"' \
    -F 'messageElement.itemAssetGroups[3].mobileLandingUrl="${mobile_url4}"' \
    -F 'messageElement.itemAssetGroups[4].ordering="4"' \
    -F 'messageElement.itemAssetGroups[4].title="${brand_name1}"' \
    -F 'messageElement.itemAssetGroups[4].description="${product_name5}"' \
    -F 'messageElement.itemAssetGroups[4].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[4].pcLandingUrl="${pc_url5}"' \
    -F 'messageElement.itemAssetGroups[4].mobileLandingUrl="${mobile_url5}"' \
    -F 'messageElement.itemAssetGroups[5].ordering="5"' \
    -F 'messageElement.itemAssetGroups[5].title="${brand_name1}"' \
    -F 'messageElement.itemAssetGroups[5].description="${product_name6}"' \
    -F 'messageElement.itemAssetGroups[5].landingType="LANDING_URL"' \
    -F 'messageElement.itemAssetGroups[5].pcLandingUrl="${pc_url6}"' \
    -F 'messageElement.itemAssetGroups[5].mobileLandingUrl="${mobile_url6}"' \
    -F 'messageElement.itemAssetGroups[0].image.valueWithVariable="${image_url1}"' \
    -F 'messageElement.itemAssetGroups[1].image.valueWithVariable="${image_url2}"' \
    -F 'messageElement.itemAssetGroups[2].image.valueWithVariable="${image_url3}"' \
    -F 'messageElement.itemAssetGroups[3].image.valueWithVariable="${image_url4}"' \
    -F 'messageElement.itemAssetGroups[4].image.valueWithVariable="${image_url5}"' \
    -F 'messageElement.itemAssetGroups[5].image.valueWithVariable="${image_url7}"' \
    -F 'messageElement.buttonAssetGroups[0].ordering="0"' \
    -F 'messageElement.buttonAssetGroups[0].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[0].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[0].pcLandingUrl="${pc_url1}"' \
    -F 'messageElement.buttonAssetGroups[0].mobileLandingUrl="${mobile_url1}"' \
    -F 'messageElement.buttonAssetGroups[1].ordering="1"' \
    -F 'messageElement.buttonAssetGroups[1].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[1].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[1].pcLandingUrl="${pc_url1}"' \
    -F 'messageElement.buttonAssetGroups[1].mobileLandingUrl="${mobile_url1}"' \
    -F 'messageElement.buttonAssetGroups[2].ordering="2"' \
    -F 'messageElement.buttonAssetGroups[2].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[2].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[2].pcLandingUrl="${pc_url2}"' \
    -F 'messageElement.buttonAssetGroups[2].mobileLandingUrl="${mobile_url2}"' \
    -F 'messageElement.buttonAssetGroups[3].ordering="3"' \
    -F 'messageElement.buttonAssetGroups[3].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[3].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[3].pcLandingUrl="${pc_url2}"' \
    -F 'messageElement.buttonAssetGroups[3].mobileLandingUrl="${mobile_url2}"' \
    -F 'messageElement.buttonAssetGroups[4].ordering="4"' \
    -F 'messageElement.buttonAssetGroups[4].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[4].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[4].pcLandingUrl="${pc_url3}"' \
    -F 'messageElement.buttonAssetGroups[4].mobileLandingUrl="${mobile_url3}"' \
    -F 'messageElement.buttonAssetGroups[5].ordering="5"' \
    -F 'messageElement.buttonAssetGroups[5].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[5].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[5].pcLandingUrl="${pc_url3}"' \
    -F 'messageElement.buttonAssetGroups[5].mobileLandingUrl="${mobile_url3}"' \
    -F 'messageElement.buttonAssetGroups[6].ordering="6"' \
    -F 'messageElement.buttonAssetGroups[6].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[6].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[6].pcLandingUrl="${pc_url4}"' \
    -F 'messageElement.buttonAssetGroups[6].mobileLandingUrl="${mobile_url4}"' \
    -F 'messageElement.buttonAssetGroups[7].ordering="7"' \
    -F 'messageElement.buttonAssetGroups[7].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[7].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[7].pcLandingUrl="${pc_url4}"' \
    -F 'messageElement.buttonAssetGroups[7].mobileLandingUrl="${mobile_url4}"' \
    -F 'messageElement.buttonAssetGroups[8].ordering="8"' \
    -F 'messageElement.buttonAssetGroups[8].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[8].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[8].pcLandingUrl="${pc_url5}"' \
    -F 'messageElement.buttonAssetGroups[8].mobileLandingUrl="${mobile_url5}"' \
    -F 'messageElement.buttonAssetGroups[9].ordering="9"' \
    -F 'messageElement.buttonAssetGroups[9].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[9].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[9].pcLandingUrl="${pc_url5}"' \
    -F 'messageElement.buttonAssetGroups[9].mobileLandingUrl="${mobile_url5}"' \
    -F 'messageElement.buttonAssetGroups[10].ordering="10"' \
    -F 'messageElement.buttonAssetGroups[10].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[10].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[10].pcLandingUrl="${pc_url6}"' \
    -F 'messageElement.buttonAssetGroups[10].mobileLandingUrl="${mobile_url6}"' \
    -F 'messageElement.buttonAssetGroups[11].ordering="11"' \
    -F 'messageElement.buttonAssetGroups[11].title="구매하기"' \
    -F 'messageElement.buttonAssetGroups[11].landingType="LANDING_URL"' \
    -F 'messageElement.buttonAssetGroups[11].pcLandingUrl="${pc_url6}"' \
    -F 'messageElement.buttonAssetGroups[11].mobileLandingUrl="${mobile_url6}"'
Response
Basic text
Carousel commerce
Carousel feed
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 12345,
    "creativeId": 12345,
    "name": "카카오톡 채널_도달_20210625",
    "adGroupId": 11223,
    "format": "BASIC_TEXT_MESSAGE",
    "config": "ON",
    "statusDescription": "발송 대기",
    "creativeStatus": "OPERATING",
    "createdDate": "2021-06-25T17:04:02.883575",
    "lastModifiedDate": "2021-06-25T17:04:06.291245",
    "messageElement": {
        "id": 12345,
        "adAccountId": 123,
        "profileId": "_xbHxd",
        "name": "카카오톡 채널_도달_20210625",
        "creativeFormat": "BASIC_TEXT_MESSAGE",
        "title": "홍보문구입니다.",
        "image": {
            "valueWithVariable": "${image_url1}"
        },
        "shareFlag": true,
        "adFlag": true,
        "thumbnail": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "풀뷰 1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "buttonAssetGroups": [
            {
                "ordering": 0,
                "title": "버튼1",
                "pcLandingUrl": "http://www.daum.net",
                "mobileLandingUrl": "http://www.google.com",
                "landingType": "LANDING_URL"
            }
        ],
        "thumbnailUrl": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
        "messageThumbnail": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "풀뷰 1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "createdDate": "2021-06-25T17:04:02.883575",
        "lastModifiedDate": "2021-06-25T17:04:06.291245"
    }
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 12345,
    "creativeId": 12345,
    "name": "Carousel commerce",
    "adGroupId": 12345,
    "format": "CAROUSEL_COMMERCE_MESSAGE",
    "config": "ON",
    "systemConfig": "ON",
    "creativeStatus": "OPERATING",
    "createdDate": "2023-10-16T14:30:31.163774",
    "lastModifiedDate": "2023-10-16T14:30:31.644644",
    "messageElement": {
        "id": 12345,
        "adAccountId": 12345,
        "profileId": "_xbHxd",
        "name": "Carousel commerce",
        "creativeFormat": "CAROUSEL_COMMERCE_MESSAGE",
        "title": "${brand_name1}",
        "description": "${product_name1}",
        "image": {
            "fileSize": 0,
            "url": null,
            "imageWidth": null,
            "imageHeight": null,
            "valueWithVariable": "${image_url1}"
        },
        "shareFlag": false,
        "adFlag": true,
        "buttonAssetGroups": [
            {
                "ordering": 0,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url1}",
                "mobileLandingUrl": "${mobile_url1}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 1,
                "title": "${product_name1}",
                "pcLandingUrl": "${pc_url3}",
                "mobileLandingUrl": "${mobile_url3}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 2,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url2}",
                "mobileLandingUrl": "${mobile_url2}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 3,
                "title": "${product_name2}",
                "pcLandingUrl": "${pc_url5}",
                "mobileLandingUrl": "${mobile_url5}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 4,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url3}",
                "mobileLandingUrl": "${mobile_url3}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 5,
                "title": "${product_name3}",
                "pcLandingUrl": "${pc_url7}",
                "mobileLandingUrl": "${mobile_url7}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 6,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url4}",
                "mobileLandingUrl": "${mobile_url4}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 7,
                "title": "${product_name4}",
                "pcLandingUrl": "${pc_url9}",
                "mobileLandingUrl": "${mobile_url9}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 8,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url5}",
                "mobileLandingUrl": "${mobile_url5}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 9,
                "title": "${product_name5}",
                "pcLandingUrl": "${pc_url11}",
                "mobileLandingUrl": "${mobile_url11}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 10,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url6}",
                "mobileLandingUrl": "${mobile_url6}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 11,
                "title": "${product_name6}",
                "pcLandingUrl": "${pc_url13}",
                "mobileLandingUrl": "${mobile_url13}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            }
        ],
        "itemAssetGroups": [
            {
                "ordering": 0,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url7}"
                },
                "title": "${product_name1}",
                "pcLandingUrl": "${pc_url1}",
                "mobileLandingUrl": "${mobile_url1}",
                "shareFlag": false,
                "landingType": "LANDING_URL",
                "priceAmount": "${price1}",
                "priceCurrencyCode": "KRW",
                "discountedPriceAmount": "${sale_price1}"
            },
            {
                "ordering": 1,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url2}"
                },
                "title": "${product_name2}",
                "pcLandingUrl": "${pc_url2}",
                "mobileLandingUrl": "${mobile_url2}",
                "shareFlag": false,
                "landingType": "LANDING_URL",
                "priceAmount": "123${price1}",
                "priceCurrencyCode": "KRW",
                "discountedPriceAmount": "12${sale_price1}"
            },
            {
                "ordering": 2,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url3}"
                },
                "title": "${product_name3}",
                "pcLandingUrl": "${pc_url3}",
                "mobileLandingUrl": "${mobile_url3}",
                "shareFlag": false,
                "landingType": "LANDING_URL",
                "priceAmount": "${price1}",
                "priceCurrencyCode": "KRW",
                "discountedPriceAmount": "${sale_price1}"
            },
            {
                "ordering": 3,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url4}"
                },
                "title": "${product_name4}",
                "pcLandingUrl": "${pc_url4}",
                "mobileLandingUrl": "${mobile_url4}",
                "shareFlag": false,
                "landingType": "LANDING_URL",
                "priceAmount": "${price1}",
                "priceCurrencyCode": "KRW",
                "discountedPriceAmount": "${sale_price1}"
            },
            {
                "ordering": 4,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url5}"
                },
                "title": "${product_name5}",
                "pcLandingUrl": "${pc_url5}",
                "mobileLandingUrl": "${mobile_url5}",
                "shareFlag": false,
                "landingType": "LANDING_URL",
                "priceAmount": "${price1}",
                "priceCurrencyCode": "KRW",
                "discountedPriceAmount": "${sale_price1}"
            },
            {
                "ordering": 5,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url6}"
                },
                "title": "${product_name6}",
                "pcLandingUrl": "${pc_url6}",
                "mobileLandingUrl": "${mobile_url6}",
                "shareFlag": false,
                "landingType": "LANDING_URL",
                "priceAmount": "${price1}",
                "priceCurrencyCode": "KRW",
                "discountedPriceAmount": "${sale_price1}"
            }
        ],
        "hasIntro": true,
        "introPcLandingUrl": "${pc_url1}",
        "introMobileLandingUrl": "${mobile_url1}",
        "introLandingType": "LANDING_URL",
        "createdDate": "2023-10-16T14:30:31.163774",
        "lastModifiedDate": "2023-10-16T14:30:31.644644"
    },
    "ageVerification": false
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 12345,
    "creativeId": 12345,
    "name": "Carousel feed",
    "adGroupId": 12345,
    "format": "CAROUSEL_FEED_MESSAGE",
    "config": "ON",
    "systemConfig": "ON",
    "creativeStatus": "OPERATING",
    "createdDate": "2023-10-16T13:55:16.046314",
    "lastModifiedDate": "2023-10-16T13:55:16.440071",
    "messageElement": {
        "id": 12345,
        "adAccountId": 12345,
        "profileId": "_xbHxd",
        "name": "Carousel feed",
        "creativeFormat": "CAROUSEL_FEED_MESSAGE",
        "shareFlag": false,
        "adFlag": true,
        "buttonAssetGroups": [
            {
                "ordering": 0,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url1}",
                "mobileLandingUrl": "${mobile_url1}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 1,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url1}",
                "mobileLandingUrl": "${mobile_url1}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 2,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url2}",
                "mobileLandingUrl": "${mobile_url2}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 3,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url2}",
                "mobileLandingUrl": "${mobile_url2}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 4,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url3}",
                "mobileLandingUrl": "${mobile_url3}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 5,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url3}",
                "mobileLandingUrl": "${mobile_url3}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 6,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url4}",
                "mobileLandingUrl": "${mobile_url4}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 7,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url4}",
                "mobileLandingUrl": "${mobile_url4}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 8,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url5}",
                "mobileLandingUrl": "${mobile_url5}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 9,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url5}",
                "mobileLandingUrl": "${mobile_url5}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 10,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url6}",
                "mobileLandingUrl": "${mobile_url6}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 11,
                "title": "구매하기",
                "pcLandingUrl": "${pc_url6}",
                "mobileLandingUrl": "${mobile_url6}",
                "shareFlag": null,
                "landingType": "LANDING_URL"
            }
        ],
        "itemAssetGroups": [
            {
                "ordering": 0,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url1}"
                },
                "title": "${brand_name1}",
                "description": "${product_name1}",
                "pcLandingUrl": "${pc_url1}",
                "mobileLandingUrl": "${mobile_url1}",
                "shareFlag": false,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 1,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url2}"
                },
                "title": "${brand_name1}",
                "description": "${product_name2}",
                "pcLandingUrl": "${pc_url2}",
                "mobileLandingUrl": "${mobile_url2}",
                "shareFlag": false,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 2,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url3}"
                },
                "title": "${brand_name1}",
                "description": "${product_name3}",
                "pcLandingUrl": "${pc_url3}",
                "mobileLandingUrl": "${mobile_url3}",
                "shareFlag": false,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 3,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url4}"
                },
                "title": "${brand_name1}",
                "description": "${product_name4}",
                "pcLandingUrl": "${pc_url4}",
                "mobileLandingUrl": "${mobile_url4}",
                "shareFlag": false,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 4,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url5}"
                },
                "title": "${brand_name1}",
                "description": "${product_name5}",
                "pcLandingUrl": "${pc_url5}",
                "mobileLandingUrl": "${mobile_url5}",
                "shareFlag": false,
                "landingType": "LANDING_URL"
            },
            {
                "ordering": 5,
                "image": {
                    "fileSize": 0,
                    "url": null,
                    "imageWidth": null,
                    "imageHeight": null,
                    "valueWithVariable": "${image_url7}"
                },
                "title": "${brand_name1}",
                "description": "${product_name6}",
                "pcLandingUrl": "${pc_url6}",
                "mobileLandingUrl": "${mobile_url6}",
                "shareFlag": false,
                "landingType": "LANDING_URL"
            }
        ],
        "createdDate": "2023-10-16T13:55:16.046314",
        "lastModifiedDate": "2023-10-16T13:55:16.440071"
    },
    "ageVerification": false
}

Edit Personalized message creative template

Basic information
Method URL Authorization
PUT https://apis.moment.kakao.com/openapi/v4/creatives Access token
Permission Prerequisite Kakao Login User consent
Required Register platforms
Activate Kakao Login
Switch to a Biz app
Required -

This API enables you to edit a creative template of Personal message X reach 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, the response includes a JSON object of edited 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 five seconds per user account and ad account.

Request

Header
Name Description Required
Authorization Authorization: Bearer ${ACCESS_TOKEN}
Access token as a type of user authentication.
O
adAccountId adAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
Body
Name Type Description Required
adGroupId Long Ad group ID O
format String Creative type, one of:
BASIC_TEXT_MESSAGE
WIDE_MESSAGE
WIDE_LIST_MESSAGE
CAROUSEL_COMMERCE_MESSAGE
CAROUSEL_FEED_MESSAGE
O
name String Creative name
If not specified, automatically set to {CAMPAIGN_TYPE}_{CAMPAIGN_TARGET}_{CURRENT_TIME}.
(Maximum: 40 characters)
X
messageElement MessageElement The content of the message.
Use MULTIPART/FORM-DATA and pass each content as mesasgeElement.{}.
O

Response

Body
Name Type Description
id Long Original creative ID for execution.
creativeId Long Creative's ID.
creativeId may differ from id when temporarily assigned for the pending status in the review.
creativeId for the message creatives are always equal to id since it has no review status.
name String Creative name
adGroupId Long Ad group ID
format String Message type, one of:
BASIC_TEXT_MESSAGE, WIDE_MESSAGE, WIDE_LIST_MESSAGE
CAROUSEL_COMMERCE_MESSAGE
CAROUSEL_FEED_MESSAGE
config String Creative status, one of:
ON, OFF, DEL
creativeStatus String Status of the creative, one of:
OPERATING(운영가능), UNAPPROVED(심사미승인), INVALID_DATE(기간오류), MONITORING_REJECTED(관리자정지), OFF(사용자OFF), DELETED(삭제), ADGROUP_UNAVAILABLE(광고그룹 운영불가)
creativeDate String Date and time when the creative is created.
lastModifiedDate String Date and time when the creative is lastly modified.
messageElement MessageElement Message contents

Sample

Request
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
    -H "Authorization: Bearer ${ACCESS_TOKEN}" \
    -H "adAccountId: ${AD_ACCOUNT_ID}"
    -F "messageElement.creativeFormat=BASIC_TEXT_MESSAGE" \
    -F "messageElement.profileId=_Xxo" \
    -F "messageElement.title=홍보문구" \
    -F "messageElement.buttonAssetGroups[0].ordering=0" \
    -F "messageElement.buttonAssetGroups[0].landingType=LANDING_URL" \
    -F "messageElement.buttonAssetGroups[0].title=버튼1" \
    -F "messageElement.buttonAssetGroups[0].pcLandingUrl=http://www.daum.net" \
    -F "messageElement.buttonAssetGroups[0].mobileLandingUrl=http://www.kakaocorp.com" \
    -F "messageElement.buttonAssetGroups[1].ordering=1" \
    -F "messageElement.buttonAssetGroups[1].landingType=BIZ_FORM" \
    -F "messageElement.buttonAssetGroups[1].bizFormId=1" \
    -F "messageElement.buttonAssetGroups[1].title=톡에서 시승신청" \
    -F "messageElement.name=기본텍스트" \
    -F "messageElement.shareFlag=true" \
    -F "messageElement.adFlag=true" \
    -F "messageElement.csInfo=02-1234-5678" \
    -F "messageElement.imageFile=@/directory/banner.png" \
    -F "adGroupId=39688" \
    -F "format=BASIC_TEXT_MESSAGE"
Response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "id": 12345,
    "creativeId": 12345,
    "name": "카카오톡 채널_도달_20210625",
    "adGroupId": 11223,
    "format": "BASIC_TEXT_MESSAGE",
    "config": "ON",
    "statusDescription": "발송 대기",
    "creativeStatus": "OPERATING",
    "createdDate": "2021-06-25T17:04:02.883575",
    "lastModifiedDate": "2021-06-25T17:04:06.291245",
    "messageElement": {
        "id": 12345,
        "adAccountId": 123,
        "profileId": "_xbHxd",
        "name": "카카오톡 채널_도달_20210625",
        "creativeFormat": "BASIC_TEXT_MESSAGE",
        "title": "홍보문구입니다.",
        "image": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "풀뷰 1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "shareFlag": true,
        "adFlag": true,
        "thumbnail": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "풀뷰 1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "buttonAssetGroups": [
            {
                "ordering": 0,
                "title": "버튼1",
                "pcLandingUrl": "http://www.daum.net",
                "mobileLandingUrl": "http://www.google.com",
                "landingType": "LANDING_URL"
            }
        ],
        "thumbnailUrl": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
        "messageThumbnail": {
            "fileSize": 168816,
            "url": "//beta.daumcdn.net/b2/creative/759/d7961bd0662a240f43f047d3116a25f3.jpg",
            "fileName": "풀뷰 1280x720.jpg",
            "imageWidth": 1280,
            "imageHeight": 720,
            "mimeType": "image/jpeg",
            "imageHash": "35156f0c1393434ced4be21423d08a6a"
        },
        "createdDate": "2021-06-25T17:04:02.883575",
        "lastModifiedDate": "2021-06-25T17:04:06.291245"
    }
}

See more