이 페이지에서: 라이브 활동이 표시, 업데이트 또는 종료되지 않는 이유를 체계적으로 진단하여 단일 및 브로드캐스트 사용 사례에서 프로필 토큰, 캠페인 구성, 페이로드 및 게재 문제를 해결할 수 있습니다.
시나리오 찾기 find-your-scenario
시나리오 1: 프로필 또는 푸시 토큰 문제 scenario-1-profile-or-push-token-issues
[단일 및 브로드캐스트 사용 사례에 모두 적용]{class="badge informative"}
트리거 API는 요청을 수락하지만 라이브 활동이 나타나지 않습니다. 일반적인 원인:
- Adobe Experience Platform에 프로필이 없습니다.
- iOS의 라이브 활동 푸시 토큰 또는 Android의 표준 FCM 등록 토큰과 같은 필수 푸시 토큰이 프로필에 동기화되지 않았습니다.
- 푸시 토큰 세부 정보에 잘못된
appId, 플랫폼 또는 iOSattributeType과(와) 같은 잘못된 구성이 포함되어 있습니다.
브로드캐스트의 경우: 토큰 등록을 확인하기 위해 여러 대상 프로필을 샘플링합니다. iOS에서 프로필 토큰 확인은 채널 기반 업데이트 또는 종료 이벤트가 아닌 원격 시작 이벤트에 적용됩니다. Android에서 시나리오 6을(를) 사용하여 장치의 FCM 주제 구독도 확인하십시오.
프로필이 있는지 확인
iOS 및 Android의 경우 이 확인부터 시작하십시오. 브로드캐스트의 경우 여러 대상 프로필에 대해 반복하십시오.
- Journey Optimizer에서 고객
>프로필(으)로 이동합니다. - API 요청의 네임스페이스와 ID 값을 사용하여 검색합니다.
- 프로필을 찾을 수 없으면 프로필이 존재하지 않거나 수집이 완료되지 않았습니다. 라이브 활동을 트리거하기 전에 프로필을 만들거나 수집이 완료될 때까지 기다립니다.
- 프로필이 발견되면 플랫폼에 대한 토큰 검사를 계속 진행합니다.
푸시 토큰 확인
사전 확인
-
iOS 앱 요구 사항:
- iOS 16.1+
Info.plist에서NSSupportsLiveActivities을(를)YES(으)로 설정ActivityAttributes이(가) 올바르게 구현되었습니다.
-
모바일 SDK 통합:
- Adobe Experience Platform Mobile SDK (메시징 SDK 5.11.0+)
Messaging.registerLiveActivities이(가) 라이브 활동 푸시 토큰을 사용하여 구현되고 호출되었습니다.
디버깅 단계
| accordion |
|---|
| 1. 라이브 활동 푸시 토큰이 동기화되었는지 확인 |
|
Assurance을 사용하여 토큰 등록을 확인할 수 있습니다.
Adobe Experience Platform 프로필에서도 확인할 수 있습니다.
이벤트가 없으면 앱이 |
| accordion | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 프로필의 토큰 세부 정보 확인 | |||||||||||||||||||||||
각 필드 유효성 검사:
필드가 올바르지 않으면 모바일 앱을 업데이트하고
|
사전 확인
-
Android 앱 요구 사항:
targetSdk을(를)36(으)로 설정하여 Android 16.1(API 수준 36.1) 이상에서 앱을 실행합니다.POST_NOTIFICATIONS및POST_PROMOTED_NOTIFICATIONS권한이 부여되었는지 확인하십시오.- 라이브 활동에서 사용하는 알림 채널을 만듭니다.
-
Mobile SDK 통합:
- Adobe Experience Platform Mobile SDK을 메시징 및 라이브 활동 확장과 통합합니다.
MobileCore.setPushIdentifier(token)을(를) 사용하여 FCM 등록 토큰을 SDK에 전달합니다.
디버깅 단계
| accordion |
|---|
| 1. FCM 토큰 등록 확인 |
|
Android은 라이브 활동에 표준 FCM 등록 토큰을 사용합니다.
등록 이벤트 또는 프로필 토큰이 누락된 경우 앱이 |
| accordion | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 프로필의 토큰 세부 정보 확인 | ||||||||||||||||||||
각 필드 유효성 검사:
잘못된 필드가 있으면 필요에 따라 앱 구성을 수정하고
|
시나리오 2: 캠페인 구성 및 페이로드 문제 scenario-2-campaign-configuration-and-payload-issues
[단일 및 브로드캐스트 사용 사례에 모두 적용]{class="badge informative"}
프로필이 존재하고 유효한 토큰이 있지만 라이브 활동이 나타나지 않습니다. 가능한 원인:
- 표면 또는 채널 구성이 잘못되었습니다.
- 잘못된 API 페이로드 구조입니다.
- 페이로드 필드가 앱 구현과 일치하지 않습니다. iOS
ActivityAttributes또는 Android 스타일 공급자 매핑. - 오래된
timestamp(업데이트/종료에 중요).
브로드캐스트의 경우: 캠페인은 트랜잭션이 아닌 API 트리거된 마케팅이어야 합니다. 페이로드에서 recipients 대신 audience을(를) 사용합니다. 플랫폼별 브로드캐스트 페이로드는 시나리오 6을, 전체 API 사양은 Adobe Developer 설명서를 참조하십시오.
사전 확인
- 캠페인이 API 트리거 트랜잭션(단일) 또는 API 트리거 마케팅(브로드캐스트)인지 확인하십시오. 높은 처리량은(는) 라이브 활동과 호환되지 않으므로 사용하지 않도록 설정하십시오.
- 시나리오 1에서 iOS 검사를 사용하여 프로필이 있고 해당 토큰이 동기화되었는지 확인하십시오.
디버깅 단계
| accordion |
|---|
| 1. 캠페인 표면 구성 확인 |
|
| accordion | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. API 페이로드 구조 확인 | ||||||||||||||||||||||||||
|
API를 통해 캠페인을 실행할 때 페이로드가 올바른 구조를 따르는지 확인하십시오. 단일 페이로드:
일반적인 페이로드 문제:
중요: 항상 새 타임스탬프를 사용
선택적 필드(모든 이벤트 유형):
정보
|
| accordion | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 페이로드를 iOS 구현에 정렬 | |||||||||||||||||||||||||||||||
|
API 페이로드가 iOS 앱의 매핑 유효성 검사:
유효성 검사 목록:
일반적인 실수:
자세한 예제는 라이브 활동 페이지 만들기를 참조하세요. |
| accordion |
|---|
| 4. Assurance으로 테스트 |
|
Assurance을 사용하여 API 실행 및 페이로드 게재 확인:
|
사전 확인
- 캠페인이 API 트리거 트랜잭션(단일) 또는 API 트리거 마케팅(브로드캐스트)인지 확인하십시오. 높은 처리량은(는) 라이브 활동과 호환되지 않으므로 사용하지 않도록 설정하십시오.
- 시나리오 1에서 Android 검사를 사용하여 프로필이 존재하고 해당 FCM 토큰이 동기화되었는지 확인하십시오.
디버깅 단계
| accordion |
|---|
| 1. 캠페인 표면 구성 확인 |
|
| accordion | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. API 페이로드 구조 확인 | ||||||||||||||||||||||||||||||||
|
단일 시작 페이로드:
샘플 타임스탬프를 현재 Unix Epoch 시간(초)으로 바꿉니다. 브로드캐스트의 경우 일반적인 페이로드 문제:
타임스탬프 및 주기 확인:
이벤트 종료:
|
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 페이로드를 Android 구현에 맞게 조정 | |||||||||||||||||||||
|
앱의 스타일 공급자는 라이브 활동 알림에서
일반적인 실수:
자세한 예제는 라이브 활동 만들기를 참조하세요. |
| accordion |
|---|
| 4. Assurance으로 테스트 |
|
연결된 Android 테스트 장치에서 Assurance을 사용합니다.
|
시나리오 3: 게재 실패 및 오류 분석 scenario-3-delivery-failures-and-error-analysis
[단일 및 브로드캐스트 사용 사례에 모두 적용]{class="badge informative"}
이 시나리오에서는 모든 이전 검사를 통과했습니다.
- 장치 플랫폼에 대해 유효한 푸시 토큰이 있는 프로필이 있습니다.
- Campaign과 페이로드가 구성 확인을 전달합니다.
- iOS 단일 업데이트 또는 종료 이벤트의 경우 인스턴스별 업데이트 토큰이 동기화됨. Android에는 별도의 업데이트 토큰이 필요하지 않습니다.
라이브 활동이 여전히 표시, 업데이트 또는 종료되지 않는 경우 캠페인 처리, 푸시 공급자(iOS의 APNs 또는 Android의 FCM)에 대한 게재 및 장치측 동작을 확인하십시오.
브로드캐스트의 경우: 보고서에는 모든 대상 구성원에 대한 지표가 표시됩니다. 일부 프로필은 성공하지만 다른 프로필은 실패할 수 있습니다.
캠페인 보고서 확인 check-campaign-reports
iOS과 Android 모두에 대해 캠페인 보고서로 시작합니다. 이 시각화는 Journey Optimizer이 전송을 시도했는지, 프로필을 제외했는지 또는 오류가 발생했는지 여부를 보여 줍니다.
-
라이브 활동 캠페인(으)로 이동합니다.
-
보고서 단추를 클릭합니다.
-
모든 시간 보고서 보기를 선택합니다.
-
게재 성공을 이해하려면 전송 통계 지표를 확인하십시오.
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 지표 의미 찾을 내용 타깃팅됨 대상자에 적합한 프로필 수 테스트 프로필을 포함해야 함 전송 횟수 시도된 총 푸시 알림 수 API 호출과 일치해야 함 게재됨 보고된 게재 지표 전송과 비교, 장치 렌더링 개별적으로 확인 오류 보내기 보내지 못한 푸시 알림 오류 원인 조사 제외 보내기 Adobe Journey Optimizer에 의해 제외된 프로필 프로필이 제외되었는지 확인 -
오류 보내기 > 0인 경우 오류 이유 표를 확인하십시오. 플랫폼 탭의 1단계를 사용하여 오류를 해석합니다.
-
제외 보내기 > 0인 경우 제외된 이유 표를 확인하십시오.
table 0-row-3 1-row-3 2-row-3 3-row-3 공통 제외 의미 해결 방법 프로필이 옵트아웃됨 사용자가 알림을 옵트아웃했습니다. 프로필 동의 상태 확인 토큰 차단 목록에 추가된 토큰이 잘못된 것으로 표시됨 토큰 재등록(iOS) 또는 현재 FCM 토큰 전달(Android) 또는 차단 목록 상태 확인 프로필이 적격하지 않음 프로필이 캠페인 기준을 충족하지 않음 캠페인 대상자 규칙 검토 -
라이브 활동 라이프사이클 섹션을 검토하십시오.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 지표 확인할 사항 원격 시작 API 트리거 시작 수를 표시해야 함 업데이트 업데이트 이벤트 수를 표시해야 함 종료 종료 이벤트 수를 표시해야 함 총계 수 전체 라이브 활동 이벤트 볼륨 이러한 지표가 0이거나 API 호출과 일치하지 않는 경우 아래 플랫폼별 검사를 사용하여 캠페인 처리를 조사하고 공급자 게재를 푸시하십시오.
라이브 활동 보고서 페이지에서 자세히 알아보세요.
플랫폼에 대한 게재 확인
사전 확인
-
이전 시나리오가 확인됨:
- 올바른
liveActivityPushNotificationDetails을(를) 가진 프로필이 있습니다. - 캠페인 표면 및 활동 유형이 올바릅니다.
- API 페이로드는 현재 타임스탬프와 함께 유효합니다.
- 업데이트 토큰이 동기화됩니다(단일 업데이트 및 종료 이벤트만 해당).
- 올바른
-
API 호출 확인:
- 트리거 API가 요청을 수락했습니다. 전달 또는 장치 렌더링은 확인되지 않습니다.
- 캠페인 ID 및 수신자 세부 정보가 올바릅니다.
디버깅 단계
| accordion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. 전송 오류 해석 | ||||||||||||||||||
|
캠페인 보고서에 전송 오류가 표시되지 않는 경우 이 단계를 건너뜁니다. 그렇지 않으면 오류 이유 표의 오류를 다음 일반적인 APNs 오류와 일치시키십시오.
|
| accordion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 프로필에서 메시지 피드백 이벤트 확인 | ||||||||||||||||||
|
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. Assurance에서 APNs에 라이브 활동 전달 확인 | |||||||||||||||||||||
|
| accordion |
|---|
| 4. 장치측 동작 확인 |
|
Adobe에 성공적인 게재가 표시되지만 디바이스에 라이브 활동이 표시되지 않는 경우:
|
| accordion |
|---|
| 5. Adobe 지원으로 에스컬레이션 |
|
모든 단계를 완료했지만 문제가 해결되지 않은 경우 Adobe 고객 지원 센터에 문의하십시오. 필수 정보:
|
사전 확인
-
이전 시나리오가 확인됨:
- 현재 FCM 토큰, Android 패키지 이름 및
platform: "fcm"을(를) 포함하여 유효한pushNotificationDetails을(를) 가진 프로필이 있습니다. - 캠페인 표면은 올바른 Android 앱을 타겟팅하고 일치하는 FCM 자격 증명을 사용합니다.
fcm페이로드가 유효하며 해당timestamp이(가) 동일한notification_id(또는 브로드캐스트의 경우topic_name)에 대한 이전 이벤트보다 최신입니다.- 시작, 업데이트 및 종료 이벤트는 동일한
notification_id을(를) 사용합니다. 단일 이벤트는 동일한 FCM 등록 토큰을 사용합니다. 별도의 업데이트 토큰이 필요하지 않습니다.
- 현재 FCM 토큰, Android 패키지 이름 및
-
API 호출 확인:
- API 호출이 HTTP 202(허용됨)를 반환했습니다. 이렇게 하면 게재 또는 장치 렌더링이 아닌 요청 수락이 확인됩니다.
- 캠페인 ID 및 수신자 세부 정보가 올바릅니다. 브로드캐스트의 경우 대상 ID 및 FCM 주제를 확인합니다.
디버깅 단계
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1. 전송 오류 해석 | |||||||||||||||||||||
|
캠페인 보고서에 전송 오류가 표시되지 않는 경우 이 단계를 건너뜁니다. 그렇지 않으면 오류 이유 테이블의 오류를 다음 일반적인 FCM 오류와 일치시키십시오.
|
| accordion | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 프로필에서 메시지 피드백 이벤트 확인 | ||||||||||||||||||
|
| accordion |
|---|
| 3. Assurance에서 FCM 게재 검사 |
|
연결된 Android 테스트 장치에서 Assurance을 사용합니다.
|
| accordion |
|---|
| 4. 장치측 동작 확인 |
|
Adobe에 성공적인 게재가 표시되지만 장치에서 라이브 활동을 표시하거나 업데이트하지 않는 경우:
|
| accordion |
|---|
| 5. Adobe 지원으로 에스컬레이션 |
|
모든 단계를 완료했지만 문제가 해결되지 않은 경우 Adobe 고객 지원 센터에 문의하십시오. 필수 정보:
|
시나리오 4: 라이브 활동 업데이트 토큰이 동기화되지 않음 scenario-4-live-activity-update-token-not-synced
[단일 사용 사례에만 적용]{class="badge informative"}
[iOS에만 적용]{class="badge positive"}
라이브 활동은 장치에서 시작되지만, 수락된 update 또는 end API 요청은 업데이트하거나 취소하지 않습니다. 가능한 원인은 인스턴스당 라이브 활동 업데이트 토큰이 Adobe 시스템에 동기화되지 않았기 때문입니다. 토큰 동기화가 문제인지 확인하려면 아래 검사를 완료하십시오.
업데이트 토큰 이해
장치에서 라이브 활동이 시작되면 iOS은 해당 특정 라이브 활동 인스턴스에 대한 고유한 업데이트 토큰을 생성합니다. 이 토큰은 다음에 필요합니다.
- 라이브 활동에 업데이트 보내기
- 라이브 활동 원격 종료
각 라이브 활동 인스턴스에는 고유한 업데이트 토큰이 있습니다. Adobe은 업데이트 및 최종 이벤트를 전달하기 위해 이 토큰이 필요합니다.
필요한 동작
업데이트 및 종료 이벤트가 작동하려면 다음 상황이 발생해야 합니다.
- 장치에서 라이브 활동이 성공적으로 시작됩니다.
- 장치는 해당 라이브 활동 인스턴스에 대한 업데이트 토큰을 생성합니다.
- Mobile SDK은 업데이트 토큰을 캡처하여 Adobe으로 보냅니다.
- 업데이트 토큰이 동기화되어 Adobe 시스템에 저장됩니다.
- 업데이트/종료에 대한 후속 API 호출은 이 토큰을 게재에 사용합니다.
사전 확인:
디버깅 단계
-
Assurance 세션을 엽니다.
-
장치에서 라이브 활동이 시작될 때 세션이 활성화되었는지 확인합니다.
-
eventType = "liveActivity.updateToken"을(를) 사용하여 이벤트를 필터링하거나 검색합니다. -
이벤트를 선택하고 페이로드를 검사합니다.
token필드에 올바른 업데이트 토큰 문자열이 포함되어 있는지 확인하십시오.liveActivityID이(가) 라이브 활동 인스턴스와 일치하는지 확인하십시오.activityType이(가)attributes-type과(와) 일치하는지 확인하십시오.
-
이벤트를 찾을 수 없는 경우:
- 업데이트 토큰이 SDK에서 생성되거나 캡처되지 않았습니다.
- 사용자가 라이브 활동 권한을 부여했는지 여부를 확인합니다.
- 장치에서 라이브 활동이 실제로 성공적으로 시작되었는지 확인합니다.
- 모바일 SDK이 업데이트 토큰을 캡처하도록 올바르게 통합되었는지 확인합니다.
-
이벤트가 발견되면 2단계로 진행합니다.
-
Journey Optimizer의 고객 > 프로필(으)로 이동합니다.
-
프로필을 검색하여 엽니다.
-
이벤트 탭을 선택합니다.
-
liveActivity.updateToken개의 이벤트를 찾습니다. -
이벤트 세부 사항을 확인합니다.
- 타임스탬프가 최근인지 확인합니다(라이브 활동이 시작된 시기와 일치).
token및liveActivityID이(가) 있는지 확인하십시오.activityType이(가) 올바른지 확인하십시오.
-
프로필에서 이벤트를 찾을 수 없는 경우
- 업데이트 토큰 이벤트가 아직 프로필에 수집되지 않았을 수 있습니다.
- 5-10분 정도 기다린 후 다시 확인하십시오.
- 15분 후에도 계속 누락된 경우 이벤트 수집 문제가 있을 수 있습니다.
-
이벤트를 찾으면 업데이트 토큰이 동기화됩니다. 3단계로 진행합니다.
-
Assurance 세션에서 업데이트 또는 종료 API 호출을 실행합니다.
-
이벤트 목록에서 라이브 활동 전달 이벤트(APNs 푸시 이벤트)를 찾습니다.
-
다음을 나타내는 이벤트를 확인합니다.
- APNs에 푸시 알림을 보냈습니다.
- APNs 응답(성공 또는 오류).
- 게재 확인.
-
APNs 게재 이벤트가 있는 경우 푸시 알림이 전송되었습니다. 디바이스가 여전히 업데이트되지 않으면 디바이스 측에서 문제가 발생할 수 있습니다(푸시, 네트워크 문제 등을 처리하지 않는 앱).
-
APNs 게재 이벤트가 누락된 경우: 업데이트 토큰이 Adobe 시스템의 프로필에 제대로 저장되거나 연결되지 않을 수 있습니다.
-
오류 이벤트가 있는 경우: 특정 실패 이유(잘못된 토큰, APNs 거부됨 등)에 대해 오류 세부 사항을 검사합니다.
시나리오 5: API를 통해 실행 상태 확인 scenario-5-checking-execution-status-via-the-api
[단일 사용 사례에만 적용]{class="badge informative"}
단일 라이브 활동을 트리거한 후 GET 메시지 실행 API는 현재 실행 상태를 반환합니다. 피드백 이벤트가 데이터 세트에 도착할 때까지 기다리지 않고 실행이 큐에 있는지, 진행 중인지, 완료되었는지 또는 실패했는지 여부를 확인하는 데 사용합니다.
executionId은(는) 트리거 응답에서 반환된 메시지 ID입니다. 단일 실행의 경우 앞에 HUOC-이(가) 붙습니다.
끝점 및 예제 요청
끝점: GET https://cjm.adobe.io/imp/message/executions/{executionId}
curl --location 'https://cjm.adobe.io/imp/message/executions/HUOC-123456' \
--header 'x-gw-ims-org-id: <IMS_ORG_ID>' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'x-sandbox-name: <SANDBOX_NAME>' \
--header 'x-sandbox-id: <SANDBOX_UUID>' \
--header 'x-api-key: <API_KEY>'
HTTP 응답 코드
실행 상태 값
200 응답의 status 필드는 실행 진행률을 나타냅니다.
PENDINGINPROGRESSCOMPLETEDFAILED200 응답도 실행을 트리거하는 캠페인 또는 여정에 다시 연결하는 메타데이터(campaignId, journeyId, batchInstanceId, 에셋 정보)가 있는 source 블록, executionType(unitary 또는 batch), executionRunMode(default 또는 test)을 반환합니다.
시나리오 6: 브로드캐스트 캠페인 구성 및 페이로드 문제 broadcast-config
[브로드캐스트 사용 사례에만 적용]{class="badge informative"}
이 섹션에서는 단일 캠페인과 다른 디버깅 접근 방식이 필요한 라이브 브로드캐스트 활동과 관련된 문제 해결 시나리오를 다룹니다.
프로필에 유효한 토큰이 있지만 라이브 활동이 대상 구성원에 대해 나타나거나, 업데이트되거나, 예상대로 작동하지 않는 경우 문제는 일반적으로 다음 중 하나에서 발생합니다.
- 캠페인이 API 트리거 마케팅으로 구성되지 않았습니다.
- API 페이로드에
audience또는 플랫폼별 브로드캐스트 식별자input-push-channel(iOS) 또는topic_name(Android)가 없습니다. - 페이로드 필드가 iOS
ActivityAttributes구현 또는 Android 스타일-공급자 매핑과 일치하지 않습니다. - Apple 푸시 채널이 잘못 구성되었거나 Android 장치가 FCM 주제를 구독하지 않습니다.
이 문제 해결 시나리오는 브로드캐스트 캠페인의 모든 라이브 활동 이벤트(start, update 및 end)에 적용됩니다.
사전 확인:
-
캠페인 유형:
- 캠페인이 API 트리거 마케팅으로 생성되었는지 확인합니다(브로드캐스트/대상 기반 캠페인에 필요).
- 대상이 캠페인 구성에 정의되어 있는지 확인합니다.
-
프로필 및 토큰 유효성 검사: 대상에서 여러 프로필을 샘플링하여
liveActivityPushNotificationDetails이(가) 유효한지 확인합니다. 자세한 유효성 검사 단계는 시나리오 1을(를) 참조하십시오.
디버깅 단계
| accordion |
|---|
| 1. 캠페인 대상자 구성 확인 |
|
| accordion | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 브로드캐스트 API 페이로드 구조 확인 | |||||||||||||||||||||||||||||
|
브로드캐스트 페이로드 구조는 단일 캠페인과 다릅니다. 페이로드가 올바른 브로드캐스트 형식을 따르는지 확인합니다. 브로드캐스트의 필수 필드:
일반적인 페이로드 문제:
중요한 브로드캐스트 관련 필드:
항상 최신 타임스탬프 사용:
선택적 필드:
전체 API 사양은 Adobe Journey Optimizer 메시징 API 설명서를 참조하십시오. |
| accordion | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 컨텐츠 상태, 속성 및 입력-푸시 채널을 iOS 구현에 맞게 조정 | |||||||||||||||||||||||||||||||
|
페이로드 필드가 iOS 앱의
사용자 지정
모든 이벤트 유형에
중요:
주요 유효성 검사 지점:
일반적인 실수:
|
| accordion |
|---|
| 4. Assurance으로 테스트 |
|
Assurance을 사용하여 API 실행 및 페이로드 게재 확인:
|
사전 확인:
- 캠페인 유형: 캠페인이 API로 트리거된 마케팅이고 대상이 정의되어 있는지 확인하십시오.
- 프로필 및 토큰 유효성 검사: 여러 대상 프로필을 샘플링하여
platform: "fcm"과(와) 함께 올바른pushNotificationDetails이(가) 있는지 확인합니다. 시나리오 1에서 Android 검사를 수행합니다. - 주제 구독: 테스트 장치가 브로드캐스트에 사용되는 FCM 주제에 등록되어 있는지 확인합니다.
디버깅 단계
| accordion |
|---|
| 1. 캠페인 대상자 구성 확인 |
|
| accordion | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2. 브로드캐스트 API 페이로드 구조 확인 | ||||||||||||||||||||||||||||||||
|
Android 브로드캐스트는 FCM 주제를 사용합니다. 브로드캐스트 시작 페이로드 예:
샘플 타임스탬프를 현재 Unix Epoch 시간(초)으로 바꿉니다. 일반적인 페이로드 문제:
중요한 브로드캐스트 관련 필드:
타임스탬프 및 옵션 필드:
전체 API 사양은 Adobe Journey Optimizer 메시징 API 설명서를 참조하십시오. |
| accordion | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3. 주제 구독 및 앱 렌더링 확인 | |||||||||||||||||||||
일반적인 실수:
추가 필드 및 예제는 Android 브로드캐스트 페이로드 예제를 참조하십시오. |
| accordion |
|---|
| 4. Assurance으로 테스트 |
|
대상의 일부이며 브로드캐스트 주제를 구독하는 연결된 Android 테스트 장치에서 Assurance을 사용합니다.
|
시나리오 7: 프로필이 대상 또는 부실 대상 스냅샷에 없음 scenario-7-profile-not-in-audience-or-stale-audience-snapshot
[브로드캐스트 사용 사례에만 적용]{class="badge informative"}
이 시나리오에서는 캠페인과 페이로드가 올바르게 구성되었지만 특정 프로필이 라이브 활동을 수신하고 있지 않습니다. 이 문제는 일반적으로 다음과 같은 경우에 발생합니다.
- 프로필이 캠페인에 연결된 대상자의 멤버가 아닙니다.
- 대상자는 일괄 처리 대상자이며 프로필 데이터의 오래된 스냅샷을 포함합니다.
- 프로필의 푸시 토큰 세부 정보(iOS의
liveActivityPushNotificationDetails또는 Android의pushNotificationDetails)가 최근에 업데이트되었지만 아직 대상 스냅숏에 반영되지 않았습니다.
이 문제 해결 시나리오는 특히 대상 기반 타깃팅을 사용하는 브로드캐스트 캠페인에 적용됩니다.
대상 평가 이해
Adobe Experience Platform에서는 프로필 업데이트가 대상에 반영되는 시기를 결정하는 다양한 대상 평가 방법을 사용합니다.
사전 확인
-
캠페인 및 페이로드 유효성 검사:
- 플랫폼에 대한 시나리오 6에서 검사를 완료하여 캠페인과 페이로드가 올바른지 확인하세요.
- API 페이로드의
audience.id이(가) 캠페인 구성과 일치하는지 확인하십시오.
-
프로필 있음: 푸시 토큰 세부 정보가 유효한 Adobe Experience Platform에 프로필이 있는지 확인하십시오. 시나리오 1의 검사를 따르십시오. 찾을 세부 정보는 플랫폼에 따라 다릅니다.
- 유효한 토큰이 있는 iOS:
liveActivityPushNotificationDetails. - 현재 FCM 등록 토큰을 포함하는 Android:
pushNotificationDetails, Android 패키지 이름platform: "fcm"및denylisted: false과(와) 일치하는appId.
- 유효한 토큰이 있는 iOS:
-
주제 구독(Android만 해당): 장치가
topic_name에 지정된 정확한 FCM 주제를 구독하고 있는지 확인합니다. 대상 멤버십은 장치를 주제에 구독하지 않습니다. 시나리오 6에서 Android 주제 구독 검사를 따르십시오.
디버깅 단계
먼저 라이브 활동을 수신해야 하는 프로필이 실제로 대상자의 일부인지 확인합니다.
-
Adobe Experience Platform의 대상(으)로 이동합니다.
-
캠페인의
audience.id을(를) 사용하여 대상자를 검색하고 엽니다. -
대상 구성원을 보려면 찾아보기 또는 샘플 프로필을 클릭하세요.
-
네임스페이스 및 ID 값을 사용하여 테스트 프로필을 검색합니다.
-
프로필이 대상자에 없는 경우:
- 프로필이 대상자 기준이나 세그먼트 규칙을 충족하지 않습니다.
- 대상자 정의를 검토하여 멤버십 요구 사항을 이해합니다.
- 프로필을 포함하도록 프로필 데이터 또는 대상자 정의를 업데이트합니다.
- 대상 평가가 완료될 때까지 기다립니다( 2단계 참조).
-
대상자에 프로필이 있는 경우: 2단계로 진행하여 데이터의 최신 상태를 확인합니다.
대상자가 일괄 처리, 스트리밍 또는 에지 평가를 사용하는지 여부를 식별합니다. 이렇게 하면 데이터의 새로 고침이 결정됩니다.
| note |
|---|
| NOTE |
| 대상 평가는 푸시 토큰을 등록하거나 Android 장치를 FCM 주제에 구독하지 않습니다. 대상 스냅샷에 포함된 프로필 데이터만 결정합니다. |
-
대상자 세부 정보 페이지에서 평가 메서드를 확인하세요.
- 일괄 처리: 일정에 따라 매일 한 번 평가됩니다.
- 스트리밍: 프로필 업데이트가 발생할 때 실시간으로 평가됩니다.
- Edge: 가장자리 위치에서 실시간으로 평가되었습니다.
평가 방법에 따라 적절한 문제 해결 단계를 수행합니다.
대상자가 일괄 처리 평가를 사용하는 경우:
-
일괄 처리 대상 제한 이해:
- 배치 대상은 하루에 한 번(일반적으로 밤에) 평가됩니다.
- 대상 스냅샷은 최대 24시간 경과할 수 있습니다.
- 프로필이 최근에 등록했거나 푸시 토큰 세부 정보를 새로 고친 경우(
liveActivityPushNotificationDetails(iOS) 또는pushNotificationDetails(Android) 업데이트된 세부 정보가 현재 스냅숏에 없을 수 있습니다. - 프로필에 대한 업데이트는 다음 일괄 처리 평가 때까지 반영되지 않습니다.
-
마지막 평가 발생 시기 확인:
- 대상 세부 정보에서 마지막 평가 타임스탬프를 찾습니다.
- 이 타임스탬프 후에 프로필의 푸시 토큰 세부 정보가 업데이트된 경우 대상 스냅숏에는 현재 토큰이 포함되지 않습니다.
-
부실 데이터 해결:
-
옵션 1: 예약된 일괄 처리 평가 대기
- 다음 배치 평가에는 업데이트된 프로필 데이터가 포함됩니다.
- 이 작업은 하루에 한 번 자동으로 수행됩니다.
- 긴급하지 않은 시나리오에 적합합니다.
-
옵션 2: 온디맨드 대상 평가 트리거
- AEP의 대상(으)로 이동합니다.
- 대상자를 선택합니다.
- 지금 평가 또는 요청 시 활성화를 클릭합니다.
- 평가가 완료될 때까지 기다립니다(대상 크기에 따라 몇 분에서 몇 시간이 소요될 수 있음).
- 이제 프로필에서 대상 스냅샷의 데이터를 업데이트했는지 확인합니다.
- 브로드캐스트 API 호출을 다시 시도하십시오.
-
대상자가 스트리밍 평가를 사용하는 경우:
-
스트리밍 대상 동작 이해:
- 스트리밍 대상은 프로필 업데이트가 발생할 때 실시간으로 평가됩니다.
- 새 프로필: 세그먼트 기준을 충족하면 만든 후 곧 사용할 수 있습니다.
- 업데이트된 프로필: 업데이트한 후 곧 자격 조건을 지정하거나 자격을 박탈합니다.
- 변경되지 않은 기존 프로필: 업데이트가 없으면 다시 평가되지 않습니다.
-
문제 식별:
- 프로필이 이미 존재하고 세그먼트 기준을 충족하지만 해당 프로필에서 업데이트가 발생하지 않는 경우 새로 만든 스트리밍 대상에 추가되지 않을 수 있습니다.
- 재평가를 트리거하려면 프로필이 업데이트(속성 변경 사항)를 받아야 합니다.
-
문제 해결:
-
새 프로필의 경우: 조건이 충족되면 자동으로 자격을 부여합니다. 조치가 필요하지 않습니다.
-
최근 업데이트가 없는 기존 프로필의 경우:
- 프로필의 작은 부분을 업데이트합니다(예: 타임스탬프 필드 업데이트).
- 이렇게 하면 스트리밍 평가가 트리거되고 프로필이 대상자에 추가됩니다.
- 대체 요소: 기존 프로필에 대해 배치 대상 또는 에지 대상을 사용합니다.
-
고급: 데이터 세트 쿼리를 통한 디버깅 advanced-debugging-via-dataset-queries
message.feedback 이벤트를 사용하며 아래에 표시된 동일한 스키마 경로와 feedbackStatus 값을 사용합니다.sent 상태는 푸시 공급자인 iOS의 APNs 또는 Android의 FCM에 대한 핸드오프를 나타냅니다.대상: 개발자 및 데이터 엔지니어 Adobe Experience Platform 쿼리 서비스를 통해 Journey Optimizer 데이터 세트에 대한 SQL 액세스 권한이 필요합니다.
사용해야 하는 경우: Assurance은 활성 세션 중에 연결된 테스트 장치로 제한됩니다. 데이터 세트 쿼리를 사용하여 프로덕션 최종 사용자가 보고한 문제를 조사하거나 사후 게재 내역을 감사할 수 있습니다. 데이터 세트는 Assurance 플러그인과 동일한 라이프사이클 및 실패 정보를 노출합니다.
데이터 세트 찾기
-
Journey Optimizer에서 데이터 관리
>데이터 세트(으)로 이동합니다. -
시스템 데이터 세트 표시 토글을 사용하도록 설정하고 AJO 메시지 피드백 이벤트 데이터 세트를 엽니다.
세부 정보 페이지에 표시된 정확한 테이블 이름을 확인합니다. 아래 쿼리는 ajo_message_feedback_event_dataset을(를) 사용합니다. 다른 경우 실제 테이블 이름으로 바꾸십시오. 이 데이터 세트의 필드에 대해서는 Adobe Journey Optimizer 스키마 참조를 참조하십시오.
라이브 활동 ID별 쿼리
라이브 활동 ID(예: 주문 UUID 또는 배송 추적 ID)를 알고 전체 라이프사이클에서 모든 피드백 이벤트를 연결하려는 경우 이 ID를 사용합니다.
SELECT
timestamp,
identitymap,
_experience.customerJourneyManagement
.messageDeliveryfeedback.feedbackStatus AS status,
_experience.customerJourneyManagement
.messageDeliveryfeedback.messageFailure.reason AS failure_reason,
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.event AS la_event,
_experience.customerJourneyManagement
.messageExecution.campaignID AS campaign_id,
_experience.customerJourneyManagement
.messageExecution.batchInstanceID AS batch_id,
_id
FROM ajo_message_feedback_event_dataset
WHERE
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.liveActivityID
= '<YOUR_LIVE_ACTIVITY_ID>'
AND eventtype = 'message.feedback'
ORDER BY timestamp ASC
ECID별 쿼리
영향을 받는 프로필의 ECID를 알 때 사용합니다. <YOUR_ECID>을(를) 프로필에서 검색한 ECID 값으로 바꿉니다.
SELECT
timestamp,
_experience.customerJourneyManagement
.messageDeliveryfeedback.feedbackStatus AS status,
_experience.customerJourneyManagement
.messageDeliveryfeedback.messageFailure.reason AS failure_reason,
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.event AS la_event,
_experience.customerJourneyManagement
.pushChannelContext.liveActivity.liveActivityID AS la_id,
_experience.customerJourneyManagement
.messageExecution.campaignID AS campaign_id,
_id
FROM ajo_message_feedback_event_dataset
WHERE
identityMap['ECID'][0].id = '<YOUR_ECID>'
AND eventtype = 'message.feedback'
ORDER BY timestamp ASC
identityMap은(는) 문자열이 아닌 구조화된 MAP 유형입니다. 위에 표시된 배열 및 구조체 접근자 구문을 사용합니다. LIKE과(와) 같은 문자열 함수는 DATATYPE_MISMATCH 오류를 반환합니다.identityMap에 ECID만 저장합니다. 영향을 받는 프로필이 ECID가 아닌 사용자 지정 네임스페이스로 식별되는 경우, 먼저 ECID를 해결하십시오. AEP에서 프로필(으)로 이동하고 사용자 지정 네임스페이스와 ID 값을 사용하여 프로필을 검색한 다음 프로필의 ID 세부 정보에서 ECID를 검색하십시오. 위의 쿼리에서 해당 ECID 값을 사용합니다.feedbackStatus 값
senterrorfailure_reason 검사denylistexcludedelayduplicatebouncela_event 필드의 경우 데이터 집합은 초기 게재 이벤트에 대해 start이(가) 아닌 remotestart을(를) 기록합니다. 이벤트 유형별로 쿼리할 때 그에 따라 필터링합니다.보낸 상태 해석 interpreting-the-sent-status
sent의 feedbackStatus에서 Journey Optimizer이 푸시 공급자(iOS의 APNs, Android의 FCM)에게 알림을 성공적으로 전달했음을 확인합니다. 라이브 활동이 장치에서 렌더링되었는지 확인하지 않습니다.
푸시 공급자에게 전달 후 데이터 세트에서 장치 렌더링을 확인하지 않습니다. OS 제한, 공급자와 장치 간의 네트워크 감소 또는 iOS에서 도달하는 8시간 라이브 활동 기간 제한과 같은 장치측 실패는 데이터 세트에서 관찰할 수 없습니다.
feedbackStatus이(가) sent이지만 실시간 활동이 장치에 표시되지 않는 경우 Journey Optimizer 게재 파이프라인 외부의 동작을 조사하십시오. Assurance 또는 Android의 logcat을(를) 포함한 앱 수준 로깅을 사용하여 장치측 동작을 진단합니다.
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page provides a systematic approach to diagnose why Live activities fail to appear, update, or end even when the API returns HTTP 200, covering profile and token, campaign configuration, payload, and delivery issues for unitary and broadcast use cases on iOS and Android.
Intents:
- Distinguish the unitary (API-triggered Transactional) and broadcast (API-triggered Marketing) debugging paths
- Verify profile existence and Live activity push token sync (Scenario 1)
- Validate campaign surface, Activity type, and API payload structure (Scenario 2)
- Analyze delivery failures via campaign reports and
message.feedbackevents (Scenario 3) - Diagnose unsynced iOS update tokens (Scenario 4) and check unitary execution status via the GET Message Execution API (Scenario 5)
- Troubleshoot broadcast payload and audience-freshness issues (Scenarios 6 and 7) and query the feedback dataset directly (Advanced)
Glossary:
-
pushNotificationDetails: The AEP profile attribute used for Android FCM registration-token details, includingappId,platform, anddenylisted(product-specific) -
topic_name: The FCM topic subscribed to by target Android devices for broadcast Live activities (product-specific) -
Push-to-start token: An iOS APNs token used for remote start; registered by the mobile SDK and stored on the AEP profile (product-specific)
-
Update token: A per-instance APNs token generated when an iOS Live activity starts; required for iOS unitary
updateandendevents. Android uses the same FCM registration token for start, update, and end; no separate update token is required (product-specific) -
input-push-channel: A unique channel identifier created on the Apple Developer Portal for iOS broadcast Live activities (product-specific) -
liveActivityData: A required property on the Adobe SDKLiveActivityAttributesprotocol; the iOS examples includeliveActivityIDfor unitary orchannelIDfor broadcast (product-specific) -
channelID: The value inliveActivityData.channelID; must exactly matchinput-push-channelfor iOS broadcasts (product-specific) -
attributeType / attributes-type: The name of the Swift
ActivityAttributesstruct; stored asattributeType(camelCase) on the profile and sent asattributes-type(hyphenated) in APS JSON — the same value in different representations (product-specific) -
liveActivityPushNotificationDetails: The AEP profile attribute that stores a device’s push-to-start token,appId,platform, andattributeType(product-specific) -
APS payload: The iOS JSON structure sent under
context.requestPayload.aps, containing the event,content-state, and control fields;attributesincludes the iOS struct fields for start events (product-specific) -
Assurance: A debugging tool limited to test devices connected during an active session; use dataset queries for production end-user diagnostics (product-specific)
-
topic_name(Android): The shared FCM topic through which subscribed devices receive broadcast events; the Android equivalent of iOSinput-push-channel -
notification_id(Android): Client-generated identifier for a Live activity instance; keep it unchanged across start, update, and end events to target the same instance -
timestamp(Android): Message ordering key, expressed in epoch seconds -
when(Android): Optional notification display time, expressed in epoch seconds; it does not control message ordering -
dismiss_after(Android): Used only for end events; specifies how many seconds the completed Live activity remains visible before removal
Guardrails:
-
Android audience membership does not subscribe a device to the FCM topic; verify topic subscription separately from audience evaluation.
-
Use API-triggered Transactional campaigns for unitary Live activities and API-triggered Marketing campaigns for broadcasts.
-
The High Throughput option must not be enabled, since it is incompatible with Live activity.
-
Assurance sessions are for test and QA devices only; end-user production devices are not connected to Assurance.
-
Android: unitary Live activities use the same regular FCM push token to start, update, and end, and no separate activity tokens are required; broadcast events reach subscribed devices through the shared FCM topic identified by
topic_name. -
Android
timestampmust strictly increase for every event with the samenotification_id(ortopic_namefor broadcasts); updates are displayed only if their timestamp is newer than the last processed value, and older or equal timestamps are ignored. -
Android
action_type/action_uriare not read by the current Android SDK. -
iOS requirements: a physical iOS device on iOS 16.1 or later; the Xcode Simulator supports local start only (remote push via APNs is not supported on Simulator); remote start from Assurance requires iOS 17.1 or later, a valid push-to-start token, and a valid channel configuration; Adobe Experience Platform Mobile SDK 5.11.0 or later.
-
Batch audiences may be up to 24 hours stale (batch evaluation, once daily); this audience-freshness risk is not applicable to unitary use cases.
-
The first time a Live activity starts on a device, iOS shows a one-time permission prompt; the user must tap “Allow” for update tokens to be generated and synced.
-
For iOS broadcasts,
input-push-channelmust exactly matchliveActivityData.channelID; a mismatch causes delivery failures. -
For iOS, a
feedbackStatusofsentconfirms hand-off to APNs only, not device rendering; device-side failures and the 8-hour Live activity duration limit are not observable from the dataset.
Terminology:
- Canonical name: API Triggered Campaign — Acronym: n/a — campaign types used for Live activities: API-triggered Transactional (unitary), API-triggered Marketing (broadcast)
- Synonyms: “attributeType” = “attributes-type” (the same value; camelCase on the profile, hyphenated in APS JSON)
- Do not confuse:
input-push-channel(in the iOS APS payload) ≠liveActivityData.channelID(in the iOS attributes); their values must match for broadcasts. - Do not confuse: “Push-to-start token” (starts an iOS Live activity, stored on the profile) ≠ “Update token” (updates or ends an iOS unitary instance, per instance)
- Do not confuse: “Unitary” (API-triggered Transactional, individual profile) ≠ “Broadcast” (API-triggered Marketing, audience segment)
- Do not confuse: execution statuses “
PENDING” ≠ “INPROGRESS” ≠ “COMPLETED” ≠ “FAILED” - Do not confuse:
feedbackStatus“sent” ≠ “error” ≠ “exclude” ≠ “delay” - Do not confuse: “
timestamp” (iOS: the current Unix epoch time in seconds for every call; Android: the ordering key that must strictly increase pernotification_idortopic_name) ≠ “when” (Android: optional notification display time that does not control ordering) - Do not confuse:
la_eventvalue “remotestart” (recorded in the dataset for initial delivery) ≠ “start” (theeventfield value in the payload)
FAQ:
- Q: Why does the API return 200 OK but the Live activity does not appear? — A successful response (200 OK) does not guarantee the Live activity appears; the delivery can fail at multiple points, from API request validation through device rendering, so work through Scenarios 1 to 3.
- Q: Can I use Assurance for production end-user devices? — No; Assurance sessions are for test and QA devices only. For production diagnostics, use the dataset queries.
- Q: Why do update and end calls fail after the Live activity started? — The per-instance update token may not be synced; the user must have tapped “Allow” on the one-time permission prompt for update tokens to be generated (Scenario 4).
- Q: How do I check execution status programmatically? — Use the GET Message Execution API; for unitary executions the
executionIdis prefixed withHUOC-, and thestatusfield returnsPENDING,INPROGRESS,COMPLETED, orFAILED. - Q: What does a
feedbackStatusofsentmean on iOS? — It confirms Journey Optimizer successfully handed the notification to APNs; it does not confirm that the Live activity was rendered on the device. - Q: Why are some audience members not receiving a broadcast? — The profile may not be in the audience, or a batch audience snapshot may be up to 24 hours stale; trigger on-demand evaluation or ensure a streaming update occurs (Scenario 7).
Personas:
- marketer: Can open the Reports button on a Live activity Campaign and select View all time report to check Sending Statistics metrics. Can review the Live activity lifecycle section for Remote starts, Updates, Ends, and Totals count figures. The page states that if Send errors are greater than 0, check the Error Reasons table. Where: “Check campaign reports”.
Onboarding:
- Level: Intermediate
- First minimal step: Navigate to Customer, then Profiles, in Journey Optimizer to search for a profile using the namespace and identity value from the API request.
- Success check: The profile is found, and you can continue with the token checks for your platform.
- Previous: Creating the Live activity message before triggering it: Create a Live activity message (mobile-live/create-mobile-live.md)
- Next: Learning more about Live activity campaign reporting metrics: Campaign Live activity report (reports/campaign-global-report-cja-activity.md)