AJO 푸시 알림에서 페이로드 배열의 동적 필드 실패
Adobe Journey Optimizer(AJO)에서 푸시 알림은 이메일 및 SMS에서 동일한 데이터가 작동하더라도 페이로드 배열(예: "callerName"
"의 동적 필드를 렌더링하지 못합니다. 필드는 공백으로 나타나거나 특수 문자를 16진수 코드로 표시할 수 있습니다. 이 문제를 해결하려면 표현식을 단순화하고, 가능한 경우 페이로드를 평평하게 하며, UTF-8 인코딩이 처음부터 끝까지 보존되도록 합니다.
설명 description
환경
제품: Adobe Journey Optimizer (AJO)
채널: 푸시(APNs를 통한 iOS, FCM을 통한 Android)
문제/증상
푸시 알림의 배열 기반 필드에 대한 동적 개인화가 실패합니다.
재현 단계
-
푸시 알림을 트리거하는 AJO의 여정을 만듭니다.
-
개인화 속성이 배열의 일부인 페이로드를 전달합니다. 예를 들면 다음과 같습니다.
code language-none { "attribute_list_group": [ { "name": "callerName", "value": "Bill Robert" } ] }
-
푸시 알림 제목/본문에서 개인화 표현식을 구성합니다.
code language-none #each context.journey.events.[ eventId] ._tmobile.decision_detail_group.attribute_list_group as |container| {%#if contains(container.name, "callerName")%} container.value {%/if%} /each
-
알림을 보냅니다.
관찰됨: 모바일에서 필드가 비어 있거나 특수 문자에 대한 16진수 코드가 표시됩니다. 이메일 및 SMS 채널에서도 동일한 표현식이 올바르게 작동합니다.
원인
- AJO의 푸시 채널 파서는 이메일 및 SMS보다 더 엄격합니다. 이 식은 단순 문자열 값을 필요로 하며 제목 또는 본문에 있는 루프, 복합 표현식 및 문자열이 아닌 데이터 유형에 대한 지원이 제한되어 있습니다.
- 템플릿 및 도우미 구문(Handlebars vs. Nunjucks/Liquid)은 푸시 알림 필드에서 동일하게 지원되지 않을 수 있습니다.
- 페이로드의 특수 문자는 직렬화하는 동안 16진수(예:
\u2019
)로 인코딩될 수 있습니다. 푸시 서비스와 일부 디바이스 앱은 이러한 시퀀스를 디코딩하지 않고 대신 그대로 표시할 수 있습니다. - APNs 및 FCM과 같은 푸시 서비스는 UTF-8 인코딩을 적용하고, 제어 문자를 거부하며, 잘못된 시퀀스 또는 이스케이프 처리된 시퀀스가 있는 메시지를 오렌더링, 삭제 또는 거부할 수 있습니다.
- AJO은 올바른 형식의 문자열만 지원합니다. 동적 표현식이 오브젝트, 잘못된 문자열 또는 배열로 확인되는 경우 푸시 메시지가 자동으로 실패하거나 잘릴 수 있습니다.
해결 방법 resolution
- 루핑 표현식에서 모든 공백과 새 줄을 제거합니다. 다음과 같은 간단한 버전 사용:
#each context.journey.events.[ eventId] ._tmobile.decision_detail_group.attribute_list_group as |container|{%#if contains(container.name, "callerName")%}container.value{%/if%}/each
이렇게 하면 현재 고객 구현에서 라틴 문자에 대한 문제가 해결되었습니다. - 가능하면
callerName
을(를) 최상위 필드로 이동하여 페이로드를 병합하십시오. 그런 다음 푸시 템플릿에서 직접event.callerName
을(를) 사용합니다. - 병합을 선택할 수 없는 경우에는 올바른 배열 인덱스가 선택되었는지 확인하고 AJO에서 개인화 미리 보기를 테스트하여 렌더링을 확인합니다.
- 소스 시스템에서 AJO 처리, 푸시 서비스에 이르기까지 모든 단계에서 UTF-8 인코딩이 유지되는지 확인합니다. 이중 인코딩 또는 이스케이프 특수 문자는 사용하지 마십시오.
- 특수 문자가 여전히 16진수로 표시되는 경우 푸시 채널 또는 디바이스 렌더링의 제한일 수 있습니다. AJO은 현재 장치에서 이러한 문자를 강제로 디코딩하는 설정을 제공하지 않습니다.
관련 읽기
- AJO 가이드의 푸시 알림의 Personalization
- AJO 가이드의 Personalization 사용 사례
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f