[Moment] Actual rules for buttonAssetGroups of CAROUSEL_COMMERCE_MESSAGE?

Hello,

I am facing an issue regarding the rules of messageElement.buttonAssetGroups for CAROUSEL_COMMERCE_MESSAGE


Let’s say we want to create a CAROUSEL_COMMERCE_MESSAGE template with 2 carousel items

The following 3 payloads are valid

  1. 2 buttons for both carousel items

        "messageElement.buttonAssetGroups[0].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[0].ordering": "0",
        "messageElement.buttonAssetGroups[0].title": "구매하기",
        "messageElement.buttonAssetGroups[0].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[1].ordering": "1",
        "messageElement.buttonAssetGroups[1].title": "card1-1",
        "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[2].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[2].ordering": "2",
        "messageElement.buttonAssetGroups[2].title": "구매하기",
        "messageElement.buttonAssetGroups[2].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[3].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[3].ordering": "3",
        "messageElement.buttonAssetGroups[3].title": "card2-1",
        "messageElement.buttonAssetGroups[3].mobileLandingUrl": "https://www.google.com/",
  1. 2 buttons for the first carousel item, 1 button for the second one

        "messageElement.buttonAssetGroups[0].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[0].ordering": "0",
        "messageElement.buttonAssetGroups[0].title": "구매하기",
        "messageElement.buttonAssetGroups[0].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[1].ordering": "1",
        "messageElement.buttonAssetGroups[1].title": "card1-1",
        "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[2].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[2].ordering": "2",
        "messageElement.buttonAssetGroups[2].title": "구매하기",
        "messageElement.buttonAssetGroups[2].mobileLandingUrl": "https://www.google.com/",
  1. 1 button for each carousel item

        "messageElement.buttonAssetGroups[0].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[0].ordering": "0",
        "messageElement.buttonAssetGroups[0].title": "구매하기",
        "messageElement.buttonAssetGroups[0].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[1].ordering": "2",
        "messageElement.buttonAssetGroups[1].title": "구매하기",
        "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",

However, the following case, 1 button for the first carousel item and 2 buttons for the second one, does not work, with the error code 75806 캐러셀 커머스 메시지의 버튼명은 '구매하기’만 가능합니다.

        "messageElement.buttonAssetGroups[0].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[0].ordering": "0",
        "messageElement.buttonAssetGroups[0].title": "구매하기",
        "messageElement.buttonAssetGroups[0].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[1].ordering": "2",
        "messageElement.buttonAssetGroups[1].title": "구매하기",
        "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",

        "messageElement.buttonAssetGroups[2].landingType": "LANDING_URL",
        "messageElement.buttonAssetGroups[2].ordering": "3",
        "messageElement.buttonAssetGroups[2].title": "card2-1",
        "messageElement.buttonAssetGroups[2].mobileLandingUrl": "https://www.google.com/",

Note that all the above 4 payload are valid for CAROUSEL_FEED_MESSAGE


Please kindly instruct the correct logic of arranging buttons for CAROUSEL_COMMERCE_MESSAGE. My observation is that the ‘ordering’ is reserved for every carousel i.e. (0, 1) for the first item and (2, 3) for the second one, regardless of the actual number of buttons being assigned to each item. Please kindly let me know if I have misunderstood anything, thank you~~

Remark: it would be so kind if you can provide payload examples for CAROUSEL-related creatives in the API document.

Hello. I am the Kakao Moment API operator.

Case 1. Ad creation: Message creative
https://developers.kakao.com/docs/latest/en/kakaomoment/creatives-message

Button items
https://developers.kakao.com/docs/latest/en/kakaomoment/creatives-message#button-asset-group

  1. CAROUSEL_COMMERCE_MESSAGE
  • Number of configurable buttons : 1

Register 2 carousels, 1 button available
-F ‘messageElement.buttonAssetGroups[0].ordering=“0”’
-F ‘messageElement.buttonAssetGroups[0].title=“구매하기”’
-F ‘messageElement.buttonAssetGroups[0].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[0].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[0].mobileLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[1].ordering=“1”’
-F ‘messageElement.buttonAssetGroups[1].title=“구매하기”’
-F ‘messageElement.buttonAssetGroups[1].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[1].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[1].mobileLandingUrl=“http://daum.net”’ \

  1. CAROUSEL_FEED_MESSAGE
  • Number of configurable buttons : 2

Register 2 carousels, Use only 1 button
-F ‘messageElement.buttonAssetGroups[0].ordering=“0”’
-F ‘messageElement.buttonAssetGroups[0].title=“버튼0”’
-F ‘messageElement.buttonAssetGroups[0].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[0].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[0].mobileLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[1].ordering=“2”’
-F ‘messageElement.buttonAssetGroups[1].title=“버튼2”’
-F ‘messageElement.buttonAssetGroups[1].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[1].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[1].mobileLandingUrl=“http://daum.net”’ \

Register 2 carousels, Use 2 button
-F ‘messageElement.buttonAssetGroups[0].ordering=“0”’
-F ‘messageElement.buttonAssetGroups[0].title=“버튼0”’
-F ‘messageElement.buttonAssetGroups[0].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[0].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[0].mobileLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[1].ordering=“1”’
-F ‘messageElement.buttonAssetGroups[1].title=“버튼1”’
-F ‘messageElement.buttonAssetGroups[1].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[1].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[1].mobileLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[2].ordering=“2”’
-F ‘messageElement.buttonAssetGroups[2].title=“버튼2”’
-F ‘messageElement.buttonAssetGroups[2].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[2].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[2].mobileLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[3].ordering=“3”’
-F ‘messageElement.buttonAssetGroups[3].title=“버튼3”’
-F ‘messageElement.buttonAssetGroups[3].landingType=“LANDING_URL”’
-F ‘messageElement.buttonAssetGroups[3].pcLandingUrl=“http://daum.net”’
-F ‘messageElement.buttonAssetGroups[3].mobileLandingUrl=“http://daum.net”’ \

Case 2. Ad creation: Personalized message creative
https://developers.kakao.com/docs/latest/en/kakaomoment/creatives-personalized-message

Button items
https://developers.kakao.com/docs/latest/en/kakaomoment/creatives-message#button-asset-group

  1. CAROUSEL_COMMERCE_MESSAGE
  • The policy you conveyed is correct.
  1. 2 buttons for both carousel items
    “messageElement.buttonAssetGroups[0].landingType”: “LANDING_URL”,
    “messageElement.buttonAssetGroups[0].ordering”: “0”,
    “messageElement.buttonAssetGroups[0].title”: “구매하기”,
    “messageElement.buttonAssetGroups[0].mobileLandingUrl”: “https://www.google.com/”,

     "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[1].ordering": "1",
     "messageElement.buttonAssetGroups[1].title": "card1-1",
     "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",
    
     "messageElement.buttonAssetGroups[2].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[2].ordering": "2",
     "messageElement.buttonAssetGroups[2].title": "구매하기",
     "messageElement.buttonAssetGroups[2].mobileLandingUrl": "https://www.google.com/",
    
     "messageElement.buttonAssetGroups[3].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[3].ordering": "3",
     "messageElement.buttonAssetGroups[3].title": "card2-1",
     "messageElement.buttonAssetGroups[3].mobileLandingUrl": "https://www.google.com/",
    
  2. 2 buttons for the first carousel item, 1 button for the second one
    “messageElement.buttonAssetGroups[0].landingType”: “LANDING_URL”,
    “messageElement.buttonAssetGroups[0].ordering”: “0”,
    “messageElement.buttonAssetGroups[0].title”: “구매하기”,
    “messageElement.buttonAssetGroups[0].mobileLandingUrl”: “https://www.google.com/”,

     "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[1].ordering": "1",
     "messageElement.buttonAssetGroups[1].title": "card1-1",
     "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",
    
     "messageElement.buttonAssetGroups[2].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[2].ordering": "2",
     "messageElement.buttonAssetGroups[2].title": "구매하기",
     "messageElement.buttonAssetGroups[2].mobileLandingUrl": "https://www.google.com/",
    
  3. 1 button for each carousel item
    “messageElement.buttonAssetGroups[0].landingType”: “LANDING_URL”,
    “messageElement.buttonAssetGroups[0].ordering”: “0”,
    “messageElement.buttonAssetGroups[0].title”: “구매하기”,
    “messageElement.buttonAssetGroups[0].mobileLandingUrl”: “https://www.google.com/”,

     "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[1].ordering": "2",
     "messageElement.buttonAssetGroups[1].title": "구매하기",
     "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",
    
  4. 1 buttons for the first carousel item, 2 button for the second one
    “messageElement.buttonAssetGroups[0].landingType”: “LANDING_URL”,
    “messageElement.buttonAssetGroups[0].ordering”: “0”,
    “messageElement.buttonAssetGroups[0].title”: “구매하기”,
    “messageElement.buttonAssetGroups[0].mobileLandingUrl”: “https://www.google.com/”,

     "messageElement.buttonAssetGroups[1].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[1].ordering": "2",
     "messageElement.buttonAssetGroups[1].title": "구매하기",
     "messageElement.buttonAssetGroups[1].mobileLandingUrl": "https://www.google.com/",
    
     "messageElement.buttonAssetGroups[2].landingType": "LANDING_URL",
     "messageElement.buttonAssetGroups[2].ordering": "3",
     "messageElement.buttonAssetGroups[2].title": "card2-1",
     "messageElement.buttonAssetGroups[2].mobileLandingUrl": "https://www.google.com/",
    

thank you If you have any additional questions, please let us know.

1개의 좋아요

Hi @moment

Thank you so much for the response!
Also, I should have stated that I am using the Kakao Moment Personalization Message

However, I am now pretty sure that the behavior of the ‘ordering’ of buttonAssetGroups for CAROUSEL_COMMERCE_MESSAGE is not working as expected.
####################################################################################

Consider the following cURL command

curl --location 'https://apis.moment.kakao.com/openapi/v4/creatives' \
--header 'adAccountId: 598106' \
--header 'Authorization: Bearer MY_TOKEN' \
--form 'adGroupId="3213635"' \
--form 'messageElement.creativeFormat="CAROUSEL_COMMERCE_MESSAGE"' \
--form 'name="carousel_commerce_no_intro"' \
--form 'format="CAROUSEL_COMMERCE_MESSAGE"' \
--form 'messageElement.name="carousel_commerce_no_intro"' \
--form 'messageElement.shareFlag="false"' \
--form 'messageElement.csInfo="02-1234-5678"' \
--form 'messageElement.adFlag="true"' \
--form 'messageElement.profileId="_hBMyT"' \
--form 'messageElement.buttonAssetGroups[0].landingType="LANDING_URL"' \
--form 'messageElement.buttonAssetGroups[0].ordering="0"' \
--form 'messageElement.buttonAssetGroups[0].title="구매하기"' \
--form 'messageElement.buttonAssetGroups[0].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[1].landingType="LANDING_URL"' \
--form 'messageElement.buttonAssetGroups[1].ordering="2"' \
--form 'messageElement.buttonAssetGroups[1].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[1].title="구매하기"' \
--form 'messageElement.buttonAssetGroups[2].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[2].landingType="LANDING_URL"' \
--form 'messageElement.buttonAssetGroups[2].title="btn2-2"' \
--form 'messageElement.buttonAssetGroups[2].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[2].ordering="3"' \
--form 'messageElement.itemAssetGroups[1].landingType="LANDING_URL"' \
--form 'messageElement.itemAssetGroups[1].title="Item2"' \
--form 'messageElement.itemAssetGroups[1].ordering="1"' \
--form 'messageElement.itemAssetGroups[1].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.itemAssetGroups[1].image.valueWithVariable="${image_url3}"' \
--form 'messageElement.itemAssetGroups[1].priceAmount="100000"' \
--form 'messageElement.itemAssetGroups[1].priceCurrencyCode="KRW"' \
--form 'messageElement.itemAssetGroups[1].discountedPriceAmount="50000"' \
--form 'messageElement.itemAssetGroups[0].landingType="LANDING_URL"' \
--form 'messageElement.itemAssetGroups[0].title="Item1"' \
--form 'messageElement.itemAssetGroups[0].ordering="0"' \
--form 'messageElement.itemAssetGroups[0].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.itemAssetGroups[0].image.valueWithVariable="${image_url2}"' \
--form 'messageElement.itemAssetGroups[0].priceAmount="200000"' \
--form 'messageElement.itemAssetGroups[0].priceCurrencyCode="KRW"' \
--form 'messageElement.itemAssetGroups[0].discountedPriceAmount="100000"'

where I am expecting the second carousel item to have 2 buttons [구매하기, btn2-2] respectively. The response of the above command is

{"msg":"KakaoMomentException","code":-813,"extras":{"detailCode":75806,"detailMsg":"캐러셀 커머스 메시지의 버튼명은 '구매하기'만 가능합니다."}}%                                                                                                                     

Moreover, the following command works and created a CAROUSEL_COMMERCE_MESSAGE creative where the 1st button of the 2nd carousel item is not ‘구매하기’

curl --location 'https://apis.moment.kakao.com/openapi/v4/creatives' \
--header 'adAccountId: 598106' \
--header 'Authorization: Bearer MY_TOKEN' \
--form 'adGroupId="3213635"' \
--form 'messageElement.creativeFormat="CAROUSEL_COMMERCE_MESSAGE"' \
--form 'name="carousel_commerce_no_introaaaaaa"' \
--form 'format="CAROUSEL_COMMERCE_MESSAGE"' \
--form 'messageElement.name="carousel_commerce_no_intro"' \
--form 'messageElement.shareFlag="false"' \
--form 'messageElement.csInfo="02-1234-5678"' \
--form 'messageElement.adFlag="true"' \
--form 'messageElement.profileId="_hBMyT"' \
--form 'messageElement.buttonAssetGroups[0].landingType="LANDING_URL"' \
--form 'messageElement.buttonAssetGroups[0].ordering="0"' \
--form 'messageElement.buttonAssetGroups[0].title="구매하기"' \
--form 'messageElement.buttonAssetGroups[0].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[1].landingType="LANDING_URL"' \
--form 'messageElement.buttonAssetGroups[1].ordering="2"' \
--form 'messageElement.buttonAssetGroups[1].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[1].title="btn2-1"' \
--form 'messageElement.buttonAssetGroups[2].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[2].landingType="LANDING_URL"' \
--form 'messageElement.buttonAssetGroups[2].title="구매하기"' \
--form 'messageElement.buttonAssetGroups[2].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.buttonAssetGroups[2].ordering="3"' \
--form 'messageElement.itemAssetGroups[1].landingType="LANDING_URL"' \
--form 'messageElement.itemAssetGroups[1].title="Item2"' \
--form 'messageElement.itemAssetGroups[1].ordering="1"' \
--form 'messageElement.itemAssetGroups[1].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.itemAssetGroups[1].image.valueWithVariable="${image_url3}"' \
--form 'messageElement.itemAssetGroups[1].priceAmount="100000"' \
--form 'messageElement.itemAssetGroups[1].priceCurrencyCode="KRW"' \
--form 'messageElement.itemAssetGroups[1].discountedPriceAmount="50000"' \
--form 'messageElement.itemAssetGroups[0].landingType="LANDING_URL"' \
--form 'messageElement.itemAssetGroups[0].title="Item1"' \
--form 'messageElement.itemAssetGroups[0].ordering="0"' \
--form 'messageElement.itemAssetGroups[0].mobileLandingUrl="https://www.google.com/"' \
--form 'messageElement.itemAssetGroups[0].image.valueWithVariable="${image_url2}"' \
--form 'messageElement.itemAssetGroups[0].priceAmount="200000"' \
--form 'messageElement.itemAssetGroups[0].priceCurrencyCode="KRW"' \
--form 'messageElement.itemAssetGroups[0].discountedPriceAmount="100000"'

which, is conflicting with the constrains of both the API doc and the Kakao Moment UI.
Please help contact your development or QA team to confirm the above behavior, thank you!

The unexpected Carousel Commerce Message Creative, created by the second command of the above comment.

Hello. I am the Kakao Moment API operator.

It has been confirmed that the button order business logic of personalized message advertisements (CAROUSEL_COMMERCE_MESSAGE) operates abnormally.

We will fix it as quickly as possible.
thank you

1개의 좋아요

Hello. I am the Kakao Moment API operator.

The button order business logic (CAROUSEL COMMERCE MESSAGE) of personalized message advertisements has been modified to operate properly.

Case1.
2 buttons for the first carousel item, 1 button for the second one

Request
–form ‘messageElement.buttonAssetGroups[0].ordering=“0”’
–form ‘messageElement.buttonAssetGroups[0].title=“구매하기”’
–form ‘messageElement.buttonAssetGroups[0].landingType=“LANDING_URL”’
–form ‘messageElement.buttonAssetGroups[0].mobileLandingUrl=“${mobile_url1}”’
–form ‘messageElement.buttonAssetGroups[1].ordering=“1”’
–form ‘messageElement.buttonAssetGroups[1].title=“btn1-2”’
–form ‘messageElement.buttonAssetGroups[1].landingType=“LANDING_URL”’
–form ‘messageElement.buttonAssetGroups[1].mobileLandingUrl=“http://daum.net”’
–form ‘messageElement.buttonAssetGroups[2].ordering=“2”’
–form ‘messageElement.buttonAssetGroups[2].title=“구매하기”’
–form ‘messageElement.buttonAssetGroups[2].landingType=“LANDING_URL”’
–form ‘messageElement.buttonAssetGroups[2].mobileLandingUrl=“${mobile_url2}”’ \

Response
“buttonAssetGroups”: [
{
“ordering”: 0,
“title”: “구매하기”,
“mobileLandingUrl”: “${mobile_url1}”,
“shareFlag”: null,
“landingType”: “LANDING_URL”
},
{
“ordering”: 1,
“title”: “btn1-2”,
“mobileLandingUrl”: “http://daum.net”,
“shareFlag”: null,
“landingType”: “LANDING_URL”
},
{
“ordering”: 2,
“title”: “구매하기”,
“mobileLandingUrl”: “${mobile_url2}”,
“shareFlag”: null,
“landingType”: “LANDING_URL”
}
],

Case2.
1 buttons for the first carousel item, 2 button for the second one

Request
–form ‘messageElement.buttonAssetGroups[0].ordering=“0”’
–form ‘messageElement.buttonAssetGroups[0].title=“구매하기”’
–form ‘messageElement.buttonAssetGroups[0].landingType=“LANDING_URL”’
–form ‘messageElement.buttonAssetGroups[0].mobileLandingUrl=“${mobile_url1}”’
–form ‘messageElement.buttonAssetGroups[1].ordering=“2”’
–form ‘messageElement.buttonAssetGroups[1].title=“구매하기”’
–form ‘messageElement.buttonAssetGroups[1].landingType=“LANDING_URL”’
–form ‘messageElement.buttonAssetGroups[1].mobileLandingUrl=“${mobile_url2}”’
–form ‘messageElement.buttonAssetGroups[2].ordering=“3”’
–form ‘messageElement.buttonAssetGroups[2].title=“btn2-2”’
–form ‘messageElement.buttonAssetGroups[2].landingType=“LANDING_URL”’
–form ‘messageElement.buttonAssetGroups[2].mobileLandingUrl=“http://daum.net”’ \

Response
“buttonAssetGroups”: [
{
“ordering”: 0,
“title”: “구매하기”,
“mobileLandingUrl”: “${mobile_url1}”,
“shareFlag”: null,
“landingType”: “LANDING_URL”
},
{
“ordering”: 2,
“title”: “구매하기”,
“mobileLandingUrl”: “${mobile_url2}”,
“shareFlag”: null,
“landingType”: “LANDING_URL”
},
{
“ordering”: 3,
“title”: “btn2-2”,
“mobileLandingUrl”: “http://daum.net”,
“shareFlag”: null,
“landingType”: “LANDING_URL”
}
],

Please let me know if you have any further questions. thank you