AJO 푸시 알림에서 페이로드 배열의 동적 필드 실패

Adobe Journey Optimizer(AJO)에서 푸시 알림은 이메일 및 SMS에서 동일한 데이터가 작동하더라도 페이로드 배열(예: "callerName""의 동적 필드를 렌더링하지 못합니다. 필드는 공백으로 나타나거나 특수 문자를 16진수 코드로 표시할 수 있습니다. 이 문제를 해결하려면 표현식을 단순화하고, 가능한 경우 페이로드를 평평하게 하며, UTF-8 인코딩이 처음부터 끝까지 보존되도록 합니다.

설명 description

환경

제품: Adobe Journey Optimizer (AJO)
채널: 푸시(APNs를 통한 iOS, FCM을 통한 Android)

문제/증상

푸시 알림의 배열 기반 필드에 대한 동적 개인화가 실패합니다.

재현 단계

  1. 푸시 알림을 트리거하는 AJO의 여정을 만듭니다.

  2. 개인화 속성이 배열의 일부인 페이로드를 전달합니다. 예를 들면 다음과 같습니다.

    code language-none
    {
      "attribute_list_group": [
        {
          "name": "callerName",
          "value": "Bill Robert"
        }
      ]
    }
    
  3. 푸시 알림 제목/본문에서 개인화 표현식을 구성합니다.

    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
    
  4. 알림을 보냅니다.

관찰됨: 모바일에서 필드가 비어 있거나 특수 문자에 대한 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은 현재 장치에서 이러한 문자를 강제로 디코딩하는 설정을 제공하지 않습니다.

관련 읽기

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f