개인화 변수 길이 계산 인코딩 기준이 있나요?ㄴ

카카오모먼트 API에 대한 최신 공지는 카카오모먼트 공지사항카카오광고 통합 에이전시 에서 확인 가능합니다.

카카오모먼트 API 외 문의사항은 DevTalk 각 카테고리나 FAQ에서 확인 가능합니다. 카카오모먼트 오픈API 외 자주 발생하는 문의는 아래 게시판에서 확인 및 등록 가능합니다.

︎- AdFit SDK FAQ
︎- AdFit SDK 고객센터 문의
︎- 픽셀&SDK FAQ 1
︎- 픽셀&SDK 고객센터 문의

카카오모먼트 오픈API 권한이 없는 앱, 카카오모먼트 오픈API가 아닌 다른 문의의 경우 답변이 늦어지거나 진행이 불가하오니 이 점 양해 부탁드립니다.

※ 사용 중 문의사항은 아래 내용을 기재하신 후 작성해주시길 바랍니다.
호출 시 발생한 오류의 경우 호출 /응답 내용을 상세히 남겨주시는 것이 확인 및 답변에 도움이 됩니다.

  • **사업자명: 다이티
  • **APP 이름(ID): 다이티
  • **문의 내용:

개인화 변수의 문자 길이 제한이 있는 것으로 알고 있는데, 단순히 문자 길이로 계산되는 것은 아닌 것 같아 해당 부분 문의 드리고자 합니다.

예를 들어 012345678901234567890💯... 의 경우에는 단순 글자 수를 세면 25자입니다.

이 때, 소재 내 홍보문구를 25자를 제외하고 제한 길이에 해당되는 문구로 가득 채워두었을 때 예시의 값으로 변수를 치환하여 개인화 메시지를 발송하게 되면 길이를 초과했다고 메시지 발송에 실패하게 되어 치환 이후 문자가 25자로 인식되지 않는 것 같습니다.

반면에 012345678901234567890가... 와 같이 이모지를 한글 1글자로 바꿔서 발송하면 메시지 발송에 성공하는 것으로 확인했는데요. 확인한 내용 상으로는 개인화 메시지 발송 시 일부 이모지의 경우에 2글자로 인식되는 기준이 있기 때문으로 생각합니다.

정확하게 문자열 길이를 체크해서 실패 없이 메시지 발송이 가능하도록 메시지 발송 시 문자열 길이를 카운팅하는 정확한 기준 확인 부탁 드립니다.

@daniel_lee
안녕하세요, 카카오모먼트 오픈API 담당자입니다.

조금 더 정확한 답변을 위해 내부 개발팀에 확인을 요청하도록 하겠습니다.

요청사항

  1. 테스트시 사용하신, 개인화 메시지광고 등록 요청문 또는 응답문
  2. 테스트시 사용하신, 개인화 메시지광고 발송 요청문 예제
  • 성공 케이스
  • 실패 케이스

위와 같은 예제문 전달 주시면 좀 더 자세히 확인 후 답변드리도록 하겠습니다.
감사합니다.

@moment
안녕하세요.
메시지 발송 요청에 대한 실패 케이스 성공 케이스를 각각 전달 드립니다(전화번호 마스킹).
다음과 같이 개인화 메시지 전송 시 변수 값 최대 길이 초과 사유로 발송에 실패합니다.

curl -L -X POST 'https://apis.moment.kakao.com/openapi/v4/messages/creatives/25147914/sendTestPersonalMessage' \
-H 'adAccountId: 578262' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer 3YnH29NKE_qx54isVngYDgQkZVlgiQ17gmAKPXSYAAABjnMuLxunsOtctwzlGQ' \
-d '{
    "messageSerialNumber": "20240325-25147914-1",
    "phoneNumber": "01******7",
    "variables": {
        "user_name1": "이름😃",
        "product_name1": "012345678901234567890💯..."
    }
 }'
{
    "msg": "KakaoMomentException",
    "code": -813,
    "extras": {
        "detailCode": 75705,
        "detailMsg": "발송요청 변수가 유효하지 않습니다.",
        "details": [
            {
                "id": null,
                "name": "product_name",
                "description": "변수 값의 최대 길이를 초과 하였습니다. 최대 길이 : 25",
                "value": null
            }
        ]
    }
}

다음과 같이 개인화 메시지 전송 시 발송 성공합니다.

curl -L -X POST 'https://apis.moment.kakao.com/openapi/v4/messages/creatives/25147914/sendTestPersonalMessage' \
-H 'adAccountId: 578262' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer 3YnH29NKE_qx54isVngYDgQkZVlgiQ17gmAKPXSYAAABjnMuLxunsOtctwzlGQ' \
-d '{
    "messageSerialNumber": "20240325-25147914-1",
    "phoneNumber": "01******7",
    "variables": {
        "user_name1": "이름😃",
        "product_name1": "012345678901234567890가..."
    }
 }'

변수로 사용한 product_name1의 경우 실패, 성공 케이스 모두 단순 글자 수를 세면 25자입니다.
일부 이모지에 대해서 2글자로 인식되는 것으로 보여 앞서 문의 드린 바와 같이 정확한 문자열 길이 카운팅 기준에 대해서 확인 부탁 드립니다.

감사합니다.

@daniel_lee
안녕하세요, 카카오모먼트 오픈API 담당자입니다.

변수의 값으로 사용되는
문자의 유형 별로 글자 수 카운팅 기준 확인했습니다.

  1. 한글은 초성중성종성 조합(ex. ‘한’)이 1글자
  2. 영문은 알파벳 하나(ex. ‘a’)가 1글자
  3. 이모지는 사용하는 이모지에 따라 여러 글자일 수 있음

사용하시는 이모지에 따라 글자 수 카운팅이 달라질 수 있음으로
최대 글자 수에 여유를 두고 사용하시길 권장드립니다.

감사합니다.

@moment

안녕하세요. 우선 답변 감사드립니다.
가능하다면 말씀하신 글자 수 카운팅이 달라지는 이모지의 유니코드 범위 값에 대하여 확인 부탁 드리고자 합니다.

감사합니다.