This document describes how to use the Personalized message creative APIs.
You cannot create the below creatives with Open APIs:
CouponBookAssetGroup
.You cannot use images and texts that do not fit the message guideline.
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. |
You can choose from uploaded public videos on Kakao TV.
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.
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 | 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 | 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.
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 |
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}
)
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} |
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)
You can use the following values of the variables for each creative type. The conversion result cannot include line breaks.
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 |
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 |
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 |
Method | URL | Authorization |
---|---|---|
POST |
https://apis.moment.kakao.com/openapi/v4/creatives |
Business token |
Permission | Prerequisite | Business Authentication | Business consent item |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set business Redirect URI Business consent item |
Required | Required |
This API enables you to create a creative template of the Personal message X Reach type campaign.
Send a POST
request with an business 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.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
adGroupId | Long |
Ad group 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 |
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 typesButton 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 messagetrue 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 |
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* |
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 essentialCAROUSEL_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* |
Name | Type | Description | Required |
---|---|---|---|
id | Long |
Kakao TV Clip link URLclipLinkId 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* |
Name | Type | Description | Required |
---|---|---|---|
imageFile | Multipart File |
Image file to upload. | O |
Name | Type | Description | Required |
---|---|---|---|
valueWithVariable | String |
Variable information (EX: ${image_url1} ) |
O* |
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 |
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 textWIDE_MESSAGE : Promotional textWIDE_LIST_MESSAGE : TitleCAROUSEL_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 |
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} ) |
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} ) |
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 |
Name | Type | Description |
---|---|---|
thumbnail | Long |
Thumbnail URL |
landingType | String |
Landing typeNull 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 , can pass up to 2 decimal places for dollars and euros |
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. |
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 |
curl -X POST "https://apis.moment.kakao.com/openapi/v4/creatives" \
-H "Authorization: Bearer ${BUSINESS_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 ${BUSINESS_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 ${BUSINESS_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 ${BUSINESS_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}"'
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
}
Method | URL | Authorization |
---|---|---|
PUT |
https://apis.moment.kakao.com/openapi/v4/creatives |
Business token |
Permission | Prerequisite | Business Authentication | Business consent item |
---|---|---|---|
Required: Request permission |
Switch to a Biz app Set business Redirect URI Business consent item |
Required | Required |
This API enables you to edit a creative template of Personal message X reach campaign.
Send a PUT
request with the issued business token and an ad account ID (adAccountId
) in the request header. If the request is successful, 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.
Name | Description | Required |
---|---|---|
Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN} Business token as a type of user authentication. |
O |
adAccountId | adAccountId: ${AD_ACCOUNT_ID} Ad account's ID. |
O |
Name | Type | Description | Required |
---|---|---|---|
adGroupId | Long |
Ad group 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 |
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 |
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/creatives" \
-H "Authorization: Bearer ${BUSINESS_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"
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"
}
}