Cenários de solução de problemas de atividades comuns ao vivo troubleshoot-mobile-live

Nesta página: Diagnostique sistematicamente por que suas atividades do Live não aparecem, são atualizadas ou terminam, para que você possa resolver problemas de token de perfil, configuração de campanha, carga e entrega em casos de uso unitários e de difusão.

Encontrar o seu cenário find-your-scenario

Sintoma ou tarefa
Comece aqui
A atividade online não inicia
Cenário 1: perfil e tokens, depois Cenário 2: campanha e carga
As verificações de configuração são bem-sucedidas, mas o delivery falha
Cenário 3: falhas de entrega
A atividade unitária em tempo real do iOS começa, mas não atualiza nem termina
Cenário 4: atualizar sincronização de token
A atividade do Android Live começa, mas não atualiza nem termina
Guias do Android no Cenário 2 e Cenário 3
Verificar o status de processamento de uma solicitação unitária
Cenário 5: API de status de execução
A transmissão não inicia, atualiza ou termina
Cenário 6: configuração de transmissão
Alguns perfis de público-alvo não recebem a transmissão
Cenário 7: associação e atualização de público-alvo
Investigar problemas de produção ou entrega histórica
Consultas do conjunto de dados

Cenário 1: problemas de perfil ou token de push scenario-1-profile-or-push-token-issues

[Aplica-se a casos de uso unitários e de difusão]{class="badge informative"}

A API de acionamento aceita a solicitação, mas a atividade Live não é exibida. Causas comuns:

  • O perfil não existe no Adobe Experience Platform.
  • O token de push necessário não foi sincronizado com o perfil: um token de push de atividade online no iOS ou o token de registro FCM padrão no Android.
  • Os detalhes do token de push contêm configuração incorreta, como um appId, plataforma ou iOS attributeType incorreto.

Para transmissões: Amostra vários perfis de público-alvo para verificar o registro de token. No iOS, as verificações de token de perfil se aplicam a eventos de início remoto, não a eventos de atualização ou término baseados em canal. No Android, verifique também a assinatura do tópico FCM do dispositivo usando o Cenário 6.

Verifique se o perfil existe

Para iOS e Android, comece com essa verificação. Para transmissões, repita-o para vários perfis de público-alvo.

  1. No Journey Optimizer, navegue até Cliente > Perfis.
  2. Pesquise usando o namespace e o valor de identidade da solicitação de API.
  3. Se o perfil não for encontrado, ele não existe ou a assimilação não foi concluída. Crie o perfil ou aguarde a conclusão da assimilação antes de acionar a atividade Live.
  4. Se o perfil for encontrado, continue com as verificações de token para sua plataforma.

Verifique o token de push

iOS

Pré-verificações

  • Requisitos do aplicativo iOS:

    • iOS 16.1+
    • NSSupportsLiveActivities definido como YES em Info.plist
    • ActivityAttributes implementado corretamente.
  • Integração do Mobile SDK:

    • Adobe Experience Platform Mobile SDK (mensagens do SDK 5.11.0+)
    • Messaging.registerLiveActivities implementado e chamado com token de push de atividade online.

Etapas de depuração

accordion
​1. Verificar se o token de push da atividade online está sincronizado

Você pode usar o Assurance para verificar o registro do token:

  1. No Assurance, na lista Eventos, filtre ou pesquise eventos eventType = "liveActivity.pushToStart".
  2. Selecione o Evento e inspecione a carga.
  3. Verifique se os valores token, appId e attributeType estão presentes.
  4. Confirme se o evento foi enviado com êxito.

Também é possível fazer check-in do perfil do Adobe Experience Platform.

  1. No Adobe Experience Platform, em seu Perfil, acesse a guia Eventos.
  2. Pesquisar liveActivity.pushToStart eventos.
  3. Verifique o carimbo de data e hora e a carga do evento.

Se nenhum evento for encontrado, o aplicativo não está chamando Messaging.registerLiveActivities corretamente. Corrija a integração do SDK.

accordion
​2. Validar detalhes do token no perfil
  1. Em seu Perfil, acesse a guia Atributos.

  2. Localizar liveActivityPushNotificationDetails.

  3. Verifique a configuração do token:

    code language-json
    {
       "liveActivityPushNotificationDetails": [
       {
          "appId": "com.example.myapp",
          "token": "abc123def456...",
          "platform": "apns",
          "denylisted": false,
          "attributeType": "OrderTrackingAttributes",
          "identity": {}
       }
       ]
    }
    

Validar cada campo:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Campo Requisito Problema comum
appId Deve corresponder exatamente ao identificador de conjunto do iOS Incompatibilidade entre IDs do pacote dev/prod
attributeType Deve corresponder exatamente ao nome de estrutura Swift ActivityAttributes (diferencia maiúsculas de minúsculas) Erro de digitação ou nome de estrutura incorreto
platform Deve ser "apns" ou "apnsSandbox" Valor de plataforma incorreto
denylisted Deve ser false Token marcado como inválido ou usuário recusado
token Token de push de APNs válido Token expirado ou aplicativo reinstalado

Se algum campo estiver incorreto, atualize o aplicativo móvel, registre-se novamente usando Messaging.registerLiveActivities, aguarde de 5 a 10 minutos e verifique novamente.

Se liveActivityPushNotificationDetails estiver ausente, o token ainda não foi sincronizado. Aguarde de 5 a 10 minutos após ver o evento liveActivity.pushToStart no Assurance e verifique novamente.

Android

Pré-verificações

  • Requisitos do aplicativo Android:

    • Execute o aplicativo no Android 16.1 (nível de API 36.1) ou posterior, com targetSdk definido como 36.
    • Verifique se as permissões de POST_NOTIFICATIONS e POST_PROMOTED_NOTIFICATIONS foram concedidas.
    • Crie o canal de notificação usado pela atividade Live.
  • Integração com o Mobile SDK:

    • Integre a Adobe Experience Platform Mobile SDK com mensagens e a extensão Atividades em tempo real.
    • Encaminhe o token de registro FCM para o SDK usando MobileCore.setPushIdentifier(token).

Etapas de depuração

accordion
​1. Verificar o registro do token FCM

O Android usa o token de registro FCM padrão para atividades Live. Não há nenhum token de push de evento liveActivity.pushToStart ou atividade online separada.

  1. No Assurance, abra a lista Eventos e localize o evento de registro de token de push padrão.
  2. Selecione o evento e inspecione sua carga para verificar se o token de registro FCM está presente.
  3. Confirme se o evento de registro foi enviado com êxito.
  4. No Adobe Experience Platform, abra a guia Atributos do seu perfil e confirme se o token está presente em pushNotificationDetails, conforme descrito na etapa 2.

Se o evento de registro ou o token de perfil estiver ausente, verifique se o aplicativo encaminha o token de registro FCM para a SDK usando MobileCore.setPushIdentifier(token).

accordion
​2. Validar detalhes do token no perfil
  1. Em seu perfil, acesse a guia Atributos.

  2. Localizar pushNotificationDetails. O Android usa este objeto em vez de liveActivityPushNotificationDetails e não requer um campo attributeType.

  3. Verifique se a configuração do token segue essa estrutura:

    code language-json
    {
       "pushNotificationDetails": [
          {
             "appId": "com.adobe.marketing.mobile.liveupdatessample",
             "token": "fcm-registration-token...",
             "platform": "fcm",
             "denylisted": false,
             "identity": {}
          }
       ]
    }
    

Validar cada campo:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
Campo Requisito Problema comum
appId Deve corresponder exatamente ao nome do pacote do Android Incompatibilidade entre nomes de pacote de desenvolvimento e de produção
platform Deve ser "fcm" Valor de plataforma incorreto
denylisted Deve ser false Token marcado como inválido ou usuário recusado
token Deve corresponder ao token de registro FCM atual do dispositivo Token expirado ou aplicativo reinstalado

Se algum campo estiver incorreto, corrija a configuração do aplicativo conforme necessário. Encaminhe o token FCM novamente usando MobileCore.setPushIdentifier(token), aguarde de 5 a 10 minutos e verifique o perfil novamente.

Se pushNotificationDetails estiver ausente, o token ainda não foi sincronizado. Depois de confirmar o registro do token no Assurance, aguarde de de 5 a 10 minutos e verifique novamente o perfil.

Cenário 2: problemas de configuração de campanha e carga scenario-2-campaign-configuration-and-payload-issues

[Aplica-se a casos de uso unitários e de difusão]{class="badge informative"}

O perfil existe e tem tokens válidos, mas a atividade Live não é exibida. Possíveis causas:

  • Configuração de superfície ou canal incorreta.
  • Estrutura de carga de API incorreta.
  • Os campos de carga não correspondem à implementação do aplicativo: iOS ActivityAttributes ou o mapeamento do provedor de estilo do Android.
  • Obsoleto timestamp (crítico para atualização/fim).

Para transmissões: a campanha deve ser de Marketing acionado por API, não Transacional. A carga usa audience em vez de recipients. Consulte o Cenário 6 para cargas de difusão específicas da plataforma e a documentação do Adobe Developer para obter as especificações completas da API.

iOS

Pré-verificações

  • Confirme se a campanha é Transacional acionada por API (unitária) ou Marketing acionado por API (transmissão). Manter Alta Taxa de Transferência desabilitada porque é incompatível com atividades Live.
  • Verifique se o perfil existe e se seus tokens estão sincronizados usando as verificações do iOS no Cenário 1.

Etapas de depuração

accordion
​1. Verificar a configuração da superfície de campanha
  1. No Journey Optimizer, abra a Campanha e navegue até o menu Ações.
  2. Verifique sua configuração de atividade do Live. A superfície deve ser configurada para o aplicativo iOS com um identificador de conjunto que corresponda a appId no liveActivityPushNotificationDetails do seu perfil. Por exemplo, se o seu perfil tem "appId": "com.example.myapp", a superfície deve ter como alvo o mesmo aplicativo.
  3. Verifique se o Tipo de atividade na configuração da campanha corresponde exatamente ao attributeType no liveActivityPushNotificationDetails do seu perfil. Por exemplo, se o seu perfil tiver "attributeType": "FoodDeliveryLiveActivityAttributes", a campanha deverá especificar esse mesmo tipo de Atividade.
accordion
​2. Validar estrutura de carga da API

Ao executar a campanha via API, verifique se a carga segue a estrutura correta.

Carga unitária:

code language-json
{
   "campaignId": "your-campaign-id",
   "recipients": [{
      "type": "aep",
      "userId": "user@example.com",
      "namespace": "email",
      "context": {
         "requestPayload": {
            "aps": {
               "content-available": 1,
               "timestamp": 1756984054,
               "event": "start",
               "attributes-type": "FoodDeliveryLiveActivityAttributes",
               "content-state": { ... },
               "attributes": { ... }
            }
         }
      }
   }]
}

Problemas comuns de carga:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3
Campo Requisito Problema comum
attributes-type Deve corresponder ao tipo de Atividade de campanha e ao perfil attributeType Incompatibilidade ou erro de digitação
campaignId Deve corresponder à ID da campanha ativada ID de campanha incorreta ou ausente
content-available Deve ser 1 Valor ausente ou incorreto
event Deve ser "start", "update" ou "end" Tipo de evento inválido
timestamp Deve ser sempre o horário atual/mais recente da época do Unix em segundos Uso do carimbo de data e hora antigo/em cache
userId / namespace Deve corresponder a um perfil existente no AEP Incompatibilidade do identificador de perfil

Crítico: sempre usar um carimbo de data/hora novo

  • Defina timestamp para o tempo de época Unix atual (em segundos) no momento em que você faz cada chamada de API. Isso se aplica a todos os tipos de evento: start, update e end.
  • Um carimbo de data e hora obsoleto ou reutilizado faz com que as solicitações de atualização e encerramento falhem ou sejam ignoradas pelo dispositivo. não reutilize carimbos de data/hora de solicitações anteriores ou valores em cache.

Campos opcionais (todos os tipos de evento):

  • requestId: Identificador exclusivo para rastreamento (recomendado).
  • alert: Objeto com title e body para a notificação. Útil para chamar a atenção para atualizações.

Sobre dismissal-date:

  • Opcional. Tempo da época Unix em segundos. Relevante somente quando event é "end".
  • Especifica quando a atividade Live é removida automaticamente do dispositivo. Se você a omitir, a atividade Live permanecerá visível até que o usuário a ignore.
  • Deve ser um carimbo de data/hora futuro posterior a timestamp.
accordion
​3. Alinhar a carga com a implementação do iOS

Verifique se a carga da API corresponde à implementação ActivityAttributes do aplicativo iOS. O protocolo LiveActivityAttributes do Adobe SDK estende o iOS ActivityAttributes e requer uma propriedade liveActivityData.

Validar o mapeamento:

  1. Seu ActivityAttributes deve implementar o protocolo LiveActivityAttributes da Adobe. Exemplo:

    code language-swift
    struct FoodDeliveryLiveActivityAttributes: LiveActivityAttributes {
       public struct ContentState: Codable, Hashable {
          var orderStatus: String
          var estimatedDeliveryTime: String
       }
    
       // Adobe SDK requirement
       var liveActivityData: LiveActivityData
    
       // Your custom attributes
       var restaurantName: String
    }
    

    Observe que o campo liveActivityData é exigido pelo Adobe SDK e deve ser incluído em todas as implementações.

  2. A carga da API deve refletir a estrutura do iOS:

    code language-json
    {
       "aps": {
          "event": "start",
          "timestamp": 1756984054,
          "attributes-type": "FoodDeliveryLiveActivityAttributes",
          "content-state": {
             "orderStatus": "Preparing",
             "estimatedDeliveryTime": "20 mins"
          },
          "attributes": {
             "liveActivityData": {
                "liveActivityID": "order-12345"
             },
             "restaurantName": "Pizza Palace"
          }
       }
    }
    

Lista de verificação de validação:

  • Incluir todos os campos ContentState em content-state (obrigatório para todos os tipos de evento).

  • Incluir todos os campos LiveActivityAttributes em attributes (somente eventos iniciais), incluindo:

    • liveActivityData (obrigatório; geralmente contém liveActivityID ou identificador semelhante)
    • Todos os campos personalizados da estrutura
  • Corresponder nomes de campo exatamente (diferencia maiúsculas de minúsculas).

  • Corresponder tipos de dados (String, Int, Bool, objetos aninhados).

  • Preserva a estrutura do objeto aninhado.

Erros comuns:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3
Problema Impacto Corrigir
liveActivityData ausente nos atributos A atividade online não iniciará Sempre incluir objeto liveActivityData no evento inicial
Campo obrigatório ausente no evento de início A atividade online não iniciará Adicionar todos os campos da estrutura do iOS
Nome de campo incorreto (erro de digitação/uso de maiúsculas e minúsculas) Campo ignorado ou erro de análise Corresponder exatamente aos nomes de campo do iOS
Tipo de dados incorreto Erro de análise Corresponder tipos de dados do iOS
Objeto aninhado ausente Dados incompletos Incluir todas as estruturas aninhadas
Incluindo attributes em atualização/fim Desnecessário, mas geralmente ignorado Incluir apenas attributes no evento inicial
Carimbo de data/hora obsoleto na atualização/término Atualização/fim ignorado pelo dispositivo Sempre gerar carimbo de data/hora novo

Para obter mais exemplos, consulte Criar página de atividade ao vivo.

accordion
​4. Testar com o Assurance

Verifique a execução da API e o delivery de carga usando o Assurance:

  1. Abra sua sessão do Assurance.

  2. Execute a chamada de API para acionar a atividade Live.

  3. Na Lista de Eventos, verifique se:

    • Eventos de execução de campanha.
    • Eventos de entrega de atividades online.
    • Eventos de erro de validação de carga.
  4. Revise as cargas do evento para verificar:

    • A carga foi processada corretamente.
    • Não ocorreram erros de validação.
    • A atividade online foi enviada para APNs.
Android

Pré-verificações

  • Confirme se a campanha é Transacional acionada por API (unitária) ou Marketing acionado por API (transmissão). Manter Alta Taxa de Transferência desabilitada porque é incompatível com atividades Live.
  • Verifique se o perfil existe e se seu token FCM está sincronizado usando as verificações do Android no Cenário 1.

Etapas de depuração

accordion
​1. Verificar a configuração da superfície de campanha
  1. No Journey Optimizer, abra a Campanha e navegue até o menu Ações.
  2. Verifique sua configuração de atividade do Live. A superfície deve direcionar o aplicativo Android com um nome de pacote que corresponda a appId no pushNotificationDetails do perfil.
  3. Verifique se a superfície usa as credenciais do FCM para esse aplicativo. A plataforma de token do perfil deve ser "fcm".
  4. Confirme se notification_channel_id na carga corresponde a um canal de notificação criado pelo aplicativo.
accordion
​2. Validar estrutura de carga da API

Coloque os campos de atividade do Android Live em context.requestPayload.fcm.

Carga de início unitário:

code language-json
{
   "requestId": "your-request-id",
   "campaignId": "your-campaign-id",
   "recipients": [
      {
         "type": "aep",
         "userId": "your-device-ECID",
         "namespace": "ECID",
         "context": {
            "requestPayload": {
               "fcm": {
                  "notification_id": "flight-DL-321",
                  "timestamp": 1756984054,
                  "notification_channel_id": "live_updates_channel",
                  "priority": "PRIORITY_HIGH",
                  "event_type": "start",
                  "title": "Flight DL-321",
                  "body": "Boarding starts shortly",
                  "critical_text": "25 min",
                  "content_state": {
                     "custom_key_template_type": "progress",
                     "custom_key_journey_start": "DEL",
                     "custom_key_journey_progress": 10,
                     "custom_key_journey_end": "MUM"
                  }
               }
            }
         }
      }
   ]
}

Substitua o carimbo de data e hora de amostra pelo tempo da época Unix atual em segundos. As chaves content_state são exemplos e devem corresponder ao provedor de estilos do seu aplicativo.

Para transmissões, use uma campanha de Marketing acionada por API com audience.id e coloque o objeto fcm em context.requestPayload. Defina topic_name como o tópico FCM ao qual os dispositivos de destino fizeram assinatura. Mantenha o tópico e notification_id inalterados nos eventos de início, atualização e término. Veja os exemplos de carga de transmissão do Android.

Problemas comuns de carga:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3
Campo Requisito Problema comum
campaignId Deve corresponder à ID da campanha ativada ID de campanha incorreta ou ausente
notification_id Mantenha o mesmo valor para os eventos de início, atualização e término da atividade Live A ID alterada é direcionada a uma notificação diferente
notification_channel_id Deve corresponder a um canal criado pelo aplicativo Android Canal ausente ou incompatível
event_type Deve ser "start", "update" ou "end" Evento de ciclo de vida inválido
timestamp Segundos da época; deve aumentar rigorosamente para cada evento direcionado à mesma instância ou tópico de transmissão Carimbos de data e hora mais antigos ou iguais são ignorados
content_state Usar os campos aceitos pelo provedor de estilo do aplicativo Chaves não suportadas ou tipos de valores incorretos
userId / namespace Para entrega unitária, use a ECID do dispositivo com o namespace ECID Incompatibilidade do identificador de perfil
topic_name Para transmissões, use o tópico assinado pelos dispositivos de destino Tópico ou dispositivos incorretos não inscritos

Verificações de carimbo de data/hora e ciclo de vida:

  • Use um novo timestamp em segundos da época para cada evento de início, atualização e término. Certifique-se de que ele seja maior que o valor anterior do mesmo notification_id (ou topic_name para transmissões), mesmo quando as solicitações forem feitas no mesmo segundo.
  • Carimbos de data e hora mais antigos ou iguais são ignorados. Não reutilize carimbos de data e hora em cache.
  • O campo when opcional controla a hora exibida da notificação, não a ordenação de mensagens. Mantenha-o razoavelmente atualizado e expresse-o em segundos da época.
  • Para atualizar ou encerrar uma atividade, altere event_type mantendo notification_id inalterado. O Android usa o mesmo token de registro FCM para todos os três eventos do ciclo de vida; nenhum token de atualização separado é necessário.

Descarte de evento de fim:

Para event_type: "end", opcionalmente defina dismiss_after para o número de segundos que a atividade concluída em tempo real deve permanecer visível antes da remoção. Essa é uma duração, não um carimbo de data e hora de época.

accordion
​3. Alinhar o conteúdo à implementação do Android

O provedor de estilos do aplicativo determina como content_state valores são renderizados na notificação de atividade ao vivo.

  1. Confirme se as Mensagens e a extensão Atividades ativas estão integradas no aplicativo.
  2. Verifique se cada campo em content_state corresponde a uma chave manipulada pelo provedor de estilo, incluindo seu tipo de valor esperado.
  3. Verifique se title, body e critical_text contêm o texto de exibição pretendido. critical_text é usado para o chip da barra de status.
  4. Confirme se as permissões de notificação foram concedidas e se o canal identificado por notification_channel_id existe.

Erros comuns:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Problema Impacto Corrigir
content_state chave ou tipo de valor sem suporte O conteúdo está ausente ou foi renderizado incorretamente Corresponder ao mapeamento do provedor de estilo do aplicativo
Canal de notificação ausente ou incompatível A notificação não pode publicar no canal pretendido Criar o canal e usar sua ID exata
Permissões de notificação não concedidas A atividade online pode não aparecer como esperado Verificar permissões de POST_NOTIFICATIONS e POST_PROMOTED_NOTIFICATIONS
Alterado notification_id Atualizar ou encerrar não direciona a notificação original Manter a ID inalterada durante todo o ciclo de vida
Mais antigo ou igual a timestamp Evento ignorado Usar um valor maior que o último carimbo de data e hora processado

Para obter mais exemplos, consulte Criar atividades ao vivo.

accordion
​4. Testar com o Assurance

Use o Assurance em um dispositivo de teste conectado do Android.

  1. Abra uma sessão do Assurance e confirme se o registro do token FCM está visível.
  2. Execute a chamada de API para iniciar a atividade Live e envie eventos de atualização e término com o mesmo notification_id e carimbos de data e hora crescentes.
  3. Revise os eventos e as cargas do SDK disponíveis para erros de processamento ou validação. Confirme se a carga do Android usa fcm e os valores do ciclo de vida pretendidos.
  4. Na guia Eventos do perfil, inspecione os message.feedback eventos correspondentes. Verifique se serviceProvider é fcm e confira feedbackStatus, errorCode e errorMessage as falhas de entrega.
  5. Se a entrega for bem-sucedida, mas a atividade Live não for renderizada, inspecione os logs do aplicativo, os mapeamentos do provedor de estilo, as permissões de notificação e a configuração do canal no dispositivo.

Cenário 3: falhas de delivery e análise de erros scenario-3-delivery-failures-and-error-analysis

[Aplica-se a casos de uso unitários e de difusão]{class="badge informative"}

Nesse cenário, todas as verificações anteriores foram aprovadas:

Se a atividade Live ainda não aparecer, atualizar ou encerrar, verifique o processamento da campanha, a entrega ao provedor de push (APNs no iOS ou FCM no Android) e o comportamento do dispositivo.

Para transmissões: os relatórios mostram métricas em todos os membros do público-alvo. Alguns perfis podem ter sucesso, enquanto outros falham.

Verificar relatórios de campanha check-campaign-reports

Para iOS e Android, comece com o relatório de campanha. Ele mostra se o Journey Optimizer tentou enviar, excluiu o perfil ou encontrou um erro.

  1. Navegue até a Campanha de atividade ao vivo.

  2. Clique no botão Relatórios.

  3. Selecione Exibir relatório de todos os tempos.

  4. Verifique as métricas Estatísticas de envio para entender o sucesso da entrega:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
    Métrica O que significa O que procurar
    Direcionado Número de perfis qualificados para o público Deve incluir seu perfil de teste
    Envios Total de tentativas de notificações por push Deve corresponder às chamadas de API
    Entregues Métrica de entrega relatada Comparar com Envios; verificar renderização do dispositivo separadamente
    Enviar erros Notificações por push que não foram enviadas Investigar os motivos do erro
    Enviar exclusões Perfis excluídos pelo Adobe Journey Optimizer Verifique se o seu perfil foi excluído
  5. Se Enviar erros > 0, verifique a tabela Motivos do Erro. Use a etapa 1 na guia da sua plataforma para interpretar os erros.

  6. Se Enviar exclusões > 0, verifique a tabela Motivos excluídos:

    table 0-row-3 1-row-3 2-row-3 3-row-3
    Exclusão comum Significado Resolução
    Perfil recusado O usuário recusou as notificações Verificar status de consentimento do perfil
    Token alterado Token marcado como inválido Registre novamente o token (iOS) ou encaminhe o token FCM atual (Android), ou verifique o status de inclui na lista de bloqueios
    Perfil não qualificado O perfil não atende aos critérios da campanha Revisar regras de público-alvo da campanha
  7. Revise a seção Ciclo de vida da atividade em tempo real:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    Métrica O que verificar
    Início remoto Deve mostrar a contagem de inicializações acionadas por API
    Atualizações Deve mostrar a contagem de eventos de atualização
    Término Deve mostrar a contagem de eventos finais
    Contagem total Volume geral do evento de atividade Ativa

    Se essas métricas forem zero ou não corresponderem às suas chamadas de API, investigue o processamento da campanha e a entrega do provedor por push usando as verificações específicas da plataforma abaixo.

Saiba mais na página de relatório de campanha de atividades ao vivo.

Verificar o delivery da sua plataforma

iOS

Pré-verificações

  • Cenários anteriores validados:

    • O perfil existe com o liveActivityPushNotificationDetails correto.
    • A superfície de campanha e o tipo de atividade estão corretos.
    • A carga da API é válida com um carimbo de data e hora atual.
    • Os tokens de atualização são sincronizados (somente atualização unitária e eventos de término).
  • Chamada de API confirmada:

    • A API de acionador aceitou a solicitação. Isso não confirma a entrega ou a renderização do dispositivo.
    • A ID da campanha e os detalhes do recipient estão corretos.

Etapas de depuração

accordion
​1. Interpretar erros de envio

Pule esta etapa se o relatório de campanha não mostrar erros de envio. Caso contrário, associe o erro da tabela Motivos de Erro aos seguintes erros comuns de APNs:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
Erro comum Significado Resolução
Token inválido O token de push é inválido ou expirou Registrar novamente os tokens de atividade ao vivo do dispositivo
Token não encontrado Nenhum token válido associado ao perfil Verificar se liveActivityPushNotificationDetails existe
APNs rejeitadas O serviço de Notificação por push do Apple rejeitou o push Verificar certificado APNs, ID do pacote, ambiente
Tempo limite de rede Não é possível acessar APNs Problema transitório; repetir a chamada da API
accordion
​2. Verificar eventos de feedback da mensagem no perfil
  1. Navegue até Cliente > Perfis na Journey Optimizer.

  2. Procure e abra o perfil.

  3. Selecione a guia Eventos.

  4. Filtrar ou pesquisar eventos com eventType = "message.feedback".

  5. Procure eventos de feedback que correspondam aos tipos liveActivityID e event da atividade Ativa.

  6. Revise os seguintes campos principais:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
    Campo Valores possíveis O que significa
    feedbackStatus sent, error, denylist Resultado da entrega do provedor de serviços
    serviceProvider apns/apnsSandbox Deve ser APNs para atividades do iOS Live
    errorCode Código numérico ou null Código de erro específico de APNs em caso de falha
    errorMessage Descrição de erro ou null Mensagem de erro legível
  7. Se feedbackStatus: "error":

    • Verifique se há erros de APNs específicos em errorCode e errorMessage.
    • Erros comuns de APNs incluem token expirado, certificado inválido, ID de pacote incorreta.
  8. Se nenhum evento de comentários for encontrado:

    • A notificação por push pode não ter sido tentada.
    • Verifique se o perfil foi excluído no relatório de campanha.

Se feedbackStatus for sent: a Journey Optimizer enviou a notificação para APNs. Isso não confirma a renderização do dispositivo. Continue com as verificações do lado do dispositivo na etapa 4.

accordion
​3. Verificar a entrega de atividade em tempo real para APNs no Assurance
  1. Abra sua sessão do Assurance e mantenha-a ativa durante a chamada de API.

  2. Execute a chamada de API (start, update ou end).

  3. Na Lista de Eventos, procure por eventos de entrega de atividades online.

  4. Procure eventos relacionados à entrega por push de APNs.

  5. Verifique os seguintes indicadores:

    • Solicitação de push para APNs: confirma que a Adobe enviou o push para os servidores da Apple
    • Resposta APNs: mostra se APNs aceitaram ou rejeitaram o push
    • Status da entrega: indicação de êxito ou falha
  6. Se forem encontrados problemas, consulte os seguintes problemas comuns de delivery de APNs:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
    Problema Sintoma no Assurance Resolução
    Certificado APNs expirado Erro de autenticação Renovar e carregar novo certificado APNs
    Ambiente errado (desenvolvimento vs. produção) Erro de incompatibilidade de token Verifique se o certificado corresponde ao tipo de build do aplicativo
    Incompatibilidade de ID do pacote Identificador de conjunto inválido Verificar se a ID do conjunto de certificados corresponde ao aplicativo
    Token expirado Erro InvalidToken de APNs Registrar tokens de atividade ao vivo novamente
    Limitação de taxa Solicitações demais Reduzir a frequência de chamada da API
accordion
​4. Verificar o comportamento do lado do dispositivo

Se o Adobe mostrar a entrega bem-sucedida, mas o dispositivo não mostrar a atividade Live:

  • Verifique se há erros de atividade ao vivo nos logs de dispositivos do iOS.
  • Verifique se o aplicativo está em primeiro ou segundo plano (não finalizado).
  • Confirme se o dispositivo tem conectividade de rede.
  • Teste em vários dispositivos para descartar problemas específicos do dispositivo.
  • Verifique se a versão do iOS é 16.1 ou posterior.
accordion
​5. Escalonamento para o suporte da Adobe

Se você concluiu todas as etapas e o problema permanece não resolvido, entre em contato com o Atendimento ao cliente da Adobe com:

Informações necessárias:

  • ID e nome da campanha
  • Namespace e ID do perfil
  • liveActivityID da carga da API
  • Carimbos de data e hora de chamadas de API
  • Capturas de tela do relatório de campanha que mostram estatísticas de envio, motivos de erro e motivos excluídos
  • Eventos de perfil relevantes (liveActivity.updateToken para problemas unitários de atualização/encerramento e message.feedback)
  • Detalhes da sessão do Assurance e capturas de tela de eventos relevantes
  • Carga e resposta da solicitação de API, com credenciais e tokens de dispositivo redigidos
  • Detalhes do certificado APNs (expiração, ambiente, ID do pacote)
Android

Pré-verificações

  • Cenários anteriores validados:

    • O perfil existe com um pushNotificationDetails válido, incluindo o token FCM atual, o nome do pacote do Android e platform: "fcm".
    • A superfície de campanha direciona o aplicativo Android correto e usa as credenciais FCM correspondentes.
    • A carga fcm é válida e sua timestamp é mais recente que o evento anterior para a mesma notification_id (ou topic_name para transmissões).
    • Eventos de início, atualização e término usam o mesmo notification_id. Os eventos unitários usam o mesmo token de registro FCM; nenhum token de atualização separado é necessário.
  • Chamada de API confirmada:

    • A chamada de API retornou HTTP 202 (aceito). Isso confirma a aceitação da solicitação, não a entrega ou a renderização do dispositivo.
    • A ID da campanha e os detalhes do recipient estão corretos. Para transmissões, verifique a ID do público-alvo e o tópico do FCM.

Etapas de depuração

accordion
​1. Interpretar erros de envio

Pule esta etapa se o relatório de campanha não mostrar erros de envio. Caso contrário, associe o erro da tabela Motivos do erro aos seguintes erros comuns do FCM:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Erro comum Significado Resolução
Token inválido/não registrado O token FCM é inválido ou o aplicativo foi desinstalado Obter o token de dispositivo atual e encaminhá-lo usando MobileCore.setPushIdentifier(token)
Token não encontrado Nenhum token FCM válido está associado ao perfil Verificar se pushNotificationDetails contém o token atual
Incompatibilidade de ID do remetente O token foi emitido para um projeto diferente do Firebase Alinhar as credenciais do FCM ao projeto Firebase do aplicativo
Argumento inválido A carga foi rejeitada pelo FCM Validar a estrutura de conteúdo fcm
Tempo limite de rede Não foi possível acessar o FCM Problema transitório; repetir a chamada da API
accordion
​2. Verificar eventos de feedback da mensagem no perfil
  1. Navegue até Cliente > Perfis na Journey Optimizer.

  2. Procure e abra o perfil.

  3. Selecione a guia Eventos.

  4. Filtrar ou pesquisar eventos com eventType = "message.feedback".

  5. Localize eventos de feedback para os carimbos de data e hora da campanha e da chamada de API que você está investigando.

  6. Revise os seguintes campos principais:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
    Campo Valores possíveis O que significa
    feedbackStatus sent, error, denylist Resultado da entrega do provedor de serviços
    serviceProvider fcm O FCM lidou com a entrega por push do Android
    errorCode Código de erro do provedor ou null Código de erro específico do FCM se a entrega falhar
    errorMessage Descrição de erro ou null Mensagem de erro legível
  7. Se feedbackStatus: "error":

    • Inspecione errorCode e errorMessage e aplique a resolução FCM correspondente da etapa 1.
  8. Se nenhum evento de comentários for encontrado:

    • A notificação por push pode não ter sido tentada ou o feedback pode ainda não estar disponível.
    • Verifique se o perfil foi excluído no relatório de campanha.

Se feedbackStatus for sent: o FCM aceitou a notificação. Isso não confirma se o dispositivo renderizou a atividade Live. Continue com as verificações do lado do dispositivo na etapa 4.

accordion
​3. Inspecionar a entrega do FCM no Assurance

Use o Assurance em um dispositivo de teste conectado do Android.

  1. Abra uma sessão do Assurance e mantenha-a ativa durante a chamada de API.
  2. Executar a chamada de API com event_type definido como start, update ou end.
  3. Na lista Eventos, inspecione os eventos de entrega por push disponíveis para verificar a solicitação para o FCM e sua resposta.
  4. Verifique se o FCM aceitou ou rejeitou a solicitação e inspecione todos os detalhes de erro relatados.
  5. Para solicitações rejeitadas, use os erros do FCM na etapa 1 para verificar o token, as credenciais do projeto do Firebase e a carga. Se os eventos do provedor não estiverem disponíveis na sessão, use message.feedback eventos e relatórios de campanha.
accordion
​4. Verificar o comportamento do lado do dispositivo

Se o Adobe exibir um delivery bem-sucedido, mas o dispositivo não exibir ou atualizar a atividade Live:

  • Inspecione os logs do aplicativo do Android para verificar se há erros de processamento de atividades de push e Live.
  • Confirme se as notificações são permitidas e se as notificações promovidas são permitidas usando canPostPromotedNotifications().
  • Verifique se as permissões POST_NOTIFICATIONS e POST_PROMOTED_NOTIFICATIONS foram concedidas e se o canal identificado por notification_channel_id existe.
  • Verifique se timestamp é mais recente que o último evento processado e se notification_id não foi alterado. Para transmissões, verifique também a assinatura do dispositivo para topic_name.
  • Confirme se o aplicativo não foi interrompido à força.
  • Confirme se o dispositivo tem conectividade de rede.
  • Teste em vários dispositivos para descartar problemas específicos do dispositivo.
  • Verifique se o dispositivo executa o Android 16.1 (nível de API 36.1) ou posterior e se o aplicativo usa targetSdk 36.
  • Verifique se content_state chaves e tipos de valor correspondem ao provedor de estilo do aplicativo.
accordion
​5. Escalonamento para o suporte da Adobe

Se você concluiu todas as etapas e o problema permanece não resolvido, entre em contato com o Atendimento ao cliente da Adobe com:

Informações necessárias:

  • ID e nome da campanha
  • Namespace e ID do perfil
  • notification_id e event_type da carga da API; para transmissões, também inclua topic_name e a ID de público
  • Carimbos de data e hora de chamadas de API
  • Capturas de tela do relatório de campanha que mostram estatísticas de envio, motivos de erro e motivos excluídos
  • Eventos message.feedback de perfil relevantes, incluindo mensagens e códigos de erro do FCM
  • Detalhes da sessão do Assurance e capturas de tela de eventos relevantes
  • Carga e resposta da solicitação de API, com credenciais e tokens de dispositivo redigidos
  • O nome do pacote do Android, o projeto Firebase, a ID do remetente e os detalhes de configuração da credencial do FCM; não inclua chaves privadas
  • Versão do sistema operacional do Android, modelo do dispositivo, status de permissão de notificação e logs relevantes do aplicativo

Cenário 4: token de atualização de atividade online não sincronizado scenario-4-live-activity-update-token-not-synced

[Aplica-se somente a casos de uso unitários]{class="badge informative"}

[Aplica-se somente ao iOS]{class="badge positive"}

A atividade Live começa no dispositivo, mas as solicitações de API update ou end aceitas não as atualizam ou descartam. Uma possível causa é que o token de atualização de atividade online por instância não foi sincronizado com o sistema da Adobe. Conclua as verificações abaixo para confirmar se a sincronização de token é o problema.

Noções básicas sobre tokens de atualização

Quando uma atividade Live é iniciada em um dispositivo, o iOS gera um token de atualização exclusivo para essa instância de atividade Live específica. Este token é necessário para:

  • Envio de atualizações para a atividade Live
  • Encerrando a atividade Live remotamente

Cada instância da atividade Live tem seu próprio token de atualização exclusivo. O Adobe precisa desse token para fornecer eventos de atualização e término.

Comportamento esperado

Para que os eventos de atualização e término funcionem, o seguinte deve ocorrer:

  1. A atividade online é iniciada com sucesso no dispositivo.
  2. O dispositivo gera um token de atualização para a instância da atividade Live.
  3. O Mobile SDK captura e envia o token de atualização para a Adobe.
  4. O token de atualização é sincronizado e armazenado no sistema do Adobe.
  5. As chamadas de API subsequentes para atualização/fim usam esse token para entrega.

Pré-verificações:

  • Permissão de usuário: na primeira vez que uma atividade ao vivo é iniciada em um dispositivo, o iOS exibe um prompt do sistema: “Permitir que o [Nome do aplicativo] forneça atualizações de atividade ao vivo?” O usuário deve tocar em “Permitir” para que os tokens de atualização sejam gerados e sincronizados. Se o usuário tocar em “Não permitir”, nenhum token de atualização será criado e as solicitações de atualização/encerramento falharão. Esta é uma permissão única por aplicativo.
  • Validação de perfil e campanha: Conclua as verificações do Cenário 1 e do Cenário 2 para garantir que o perfil, os tokens e a configuração da campanha estejam corretos.

Etapas de depuração

​1. Verificar sincronização do token de atualização no Assurance
  1. Abra sua sessão do Assurance.

  2. Verifique se a sessão estava ativa quando a atividade Live foi iniciada no dispositivo.

  3. Filtrar ou pesquisar eventos com eventType = "liveActivity.updateToken".

  4. Selecione o evento e inspecione a carga:

    • Verifique se o campo token contém uma cadeia de token de atualização válida.
    • Verifique se o liveActivityID corresponde à sua instância de atividade do Live.
    • Confirme se o activityType corresponde ao seu attributes-type.
  5. Se o evento não for encontrado:

    • O token de atualização não foi gerado ou capturado pela SDK.
    • Verifique se o usuário concedeu permissões de atividade Live.
    • Verifique se a atividade Live foi iniciada com êxito no dispositivo.
    • Confirme se o SDK para dispositivos móveis está integrado corretamente para capturar tokens de atualização.
  6. Se o evento for encontrado, prossiga para a etapa 2.

​2. Verificar token de atualização em eventos de perfil
  1. Navegue até Cliente > Perfis na Journey Optimizer.

  2. Procure e abra o perfil.

  3. Selecione a guia Eventos.

  4. Procurar liveActivity.updateToken eventos.

  5. Verifique os detalhes do evento:

    • Verifique se o carimbo de data e hora é recente (corresponde ao início da atividade online).
    • Confirme se token e liveActivityID estão presentes.
    • Verifique se activityType está correto.
  6. Se o evento não for encontrado no perfil:

    • O evento de token de atualização pode não ter sido assimilado no perfil ainda.
    • Aguarde de 5 a 10 minutos e verifique novamente.
    • Se ainda estiver ausente após 15 minutos, pode haver um problema de assimilação de evento.
  7. Se o evento for encontrado, o token de atualização foi sincronizado. Vá para a etapa 3.

​3. Verificar eventos de entrega de atividade em tempo real no Assurance
  1. Na sessão do Assurance, execute uma chamada de API de atualização ou fim.

  2. Na Lista de Eventos, procure por eventos de entrega de atividade (eventos de push APNs).

  3. Verificar se há eventos que indicam:

    • Notificação por push enviada para APNs.
    • Resposta de APNs (sucesso ou erro).
    • Confirmação de entrega.
  4. Se um evento de delivery APNs estiver presente: a notificação por push foi enviada. Se o dispositivo ainda não for atualizado, o problema pode estar no lado do dispositivo (aplicativo que não lida com push, problemas de rede etc.).

  5. Se o evento de entrega APNs estiver ausente: o token de atualização pode não estar armazenado ou associado corretamente ao perfil no sistema do Adobe.

  6. Se houver eventos de erro: inspecione os detalhes do erro em busca de motivos específicos de falha (token inválido, APNs rejeitados etc.).

Cenário 5: verificação do status de execução por meio da API scenario-5-checking-execution-status-via-the-api

[Aplica-se somente a casos de uso unitários]{class="badge informative"}

Depois de acionar uma atividade Live unitária, a API de Execução de Mensagem GET retorna o estado atual da execução. Use-o para confirmar se uma execução está na fila, em andamento, concluída ou falhou — sem esperar que o evento de feedback chegue ao conjunto de dados.

O executionId é a ID da mensagem retornada na resposta do gatilho. Para execuções unitárias, ele tem o prefixo HUOC-.

Ponto de extremidade e solicitação de exemplo

Ponto de extremidade: 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>'

Códigos de resposta HTTP

Código
Significado
200 OK
Execução encontrada e retornada com sucesso
401 Não autorizado
Token de portador ausente ou inválido
403 Proibido
Token válido, mas com permissões insuficientes
404 Não encontrado
A ID de execução não existe

Valores de status de execução

O campo status em uma resposta 200 indica o progresso da execução:

Status
Descrição
PENDING
Execução na fila, mas ainda não iniciada
INPROGRESS
A execução está sendo atualmente processada
COMPLETED
Execução concluída com sucesso
FAILED
A execução encontrou um erro

A resposta 200 também retorna executionType (unitary ou batch), executionRunMode (default ou test) e um bloco source com metadados (campaignId, journeyId, batchInstanceId, informações de ativos) vinculando a execução de volta à campanha ou jornada de acionamento.

Cenário 6: configuração da campanha de transmissão e problemas de carga broadcast-config

[Aplicável somente a casos de uso de Difusão]{class="badge informative"}

Esta seção aborda cenários de solução de problemas específicos para atividades de transmissão ao vivo, que exigem abordagens de depuração diferentes das campanhas unitárias.

Quando os perfis têm tokens válidos, mas a atividade Ao vivo não é exibida, atualizada ou se comporta conforme esperado para membros do público-alvo, o problema normalmente resulta de um dos seguintes:

  • A campanha não está configurada como Marketing acionado por API.
  • A carga da API está ausente audience ou o identificador de difusão específico da plataforma: input-push-channel no iOS ou topic_name no Android.
  • Os campos de carga não correspondem à implementação do iOS ActivityAttributes ou ao mapeamento do provedor de estilo do Android.
  • O canal de push do Apple está configurado incorretamente ou o dispositivo Android não está inscrito no tópico FCM.

Este cenário de solução de problemas se aplica a todos os eventos de atividade Live em campanhas de difusão: start, update e end.

iOS

Pré-verificações:

  • Tipo de campanha:

    • Verifique se a campanha foi criada como Marketing acionado por API (necessário para campanhas com base em transmissão/público-alvo).
    • Confirme se um público-alvo está definido na configuração da campanha.
  • Validação de perfil e token: exemplifique vários perfis do público-alvo para verificar se eles têm um liveActivityPushNotificationDetails válido. Para obter etapas de validação detalhadas, siga o Cenário 1.

Etapas de depuração

accordion
​1. Verificar a configuração do público-alvo da campanha
  1. Abra sua Campanha de Marketing Acionado pela API na Journey Optimizer.

  2. Navegue até a seção Público-alvo e verifique:

    • Um público é selecionado para a campanha.
    • A ID de público-alvo corresponde à ID usada na carga da API.
    • O público-alvo contém os perfis esperados.
  3. Navegue até a seção Ações.

  4. Verifique a configuração da atividade online:

    • A configuração deve ser definida para o aplicativo iOS com o identificador de pacote correto.
    • O tipo de atividade deve corresponder ao attributes-type na carga da API. Por exemplo, se sua carga contém "attributes-type": "AirplaneTrackingAttributes", a campanha deve especificar esse mesmo tipo de Atividade.
accordion
​2. Validar a estrutura de carga da API de transmissão

A estrutura de carga da transmissão é diferente das campanhas unitárias. Verifique se a carga segue o formato de transmissão correto.

Campos obrigatórios para difusão:

code language-json
{
   "campaignId": "878a11d4-b519-47bd-8313-fecfee19857b",
   "audience": {
      "id": "8c3dbdea-2957-401f-acf0-3966fba1601e"
   },
   "context": {
      "requestPayload": {
         "aps": {
            "input-push-channel": "FEt0NgvLEfEAAOqA6AXdIQ==",
            "content-available": 1,
            "timestamp": 1771829292,
            "event": "start",
            "attributes-type": "AirplaneTrackingAttributes",
            "content-state": { ... },
            "attributes": { ... }
         }
      }
   }
}

Problemas comuns de carga:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3
Campo Requisito Problema comum
campaignId Deve corresponder à ID de campanha de marketing ativada ID de campanha incorreta ou uso da campanha transacional
audience.id Deve corresponder a um público-alvo existente no AEP ID de público-alvo ou público-alvo incorreto não existe
input-push-channel Obrigatório para transmissão - Identificador exclusivo para esta instância de transmissão Ausente ou não corresponde a channelID em liveActivityData
timestamp Deve ser sempre o horário atual/mais recente da época do Unix em segundos Uso do carimbo de data e hora antigo/em cache
event Deve ser "start", "update" ou "end" Tipo de evento inválido
attributes-type Deve corresponder ao tipo de Atividade da campanha Incompatibilidade ou erro de digitação
content-available Deve ser 1 Valor ausente ou incorreto

Campos críticos específicos da difusão:

  • input-push-channel:

    • Obrigatório para todas as atividades de transmissão ao vivo.
    • Atua como um identificador exclusivo para essa instância de transmissão específica.
    • Todos os perfis no público-alvo recebem atividades ao vivo vinculadas a este canal.
    • Deve corresponder a channelID em liveActivityData.channelID (consulte a etapa 3).
    • Deve ser criado para o appID no Portal do Desenvolvedor do Apple pela sua equipe.
    • Somente os canais criados para o appID específico podem ser usados para transmitir a atividade em tempo real nesse aplicativo.
  • audience.id:

    • Deve fazer referência a um segmento de público-alvo válido criado no Adobe Experience Platform.
    • Todos os perfis neste público-alvo são direcionados para a atividade Live.
    • O público deve ser ativado e conter perfis com liveActivityPushNotificationDetails válido.

Sempre usar o carimbo de data/hora mais recente:

  • O campo timestamp deve ser sempre o tempo da época Unix atual (em segundos) para cada chamada de API.
  • Este requisito se aplica a todos os tipos de evento: start, update e end.
  • Crítico para atualizações/fim: usar carimbos de data/hora obsoletos faz com que as solicitações de atualização e término falhem.
  • Gere um carimbo de data e hora novo para cada chamada de API de transmissão.

Campos opcionais:

  • dismissal-date: Tempo de época Unix para descarte automático (relevante somente para end eventos)
  • alert: Objeto com title e body para notificação

Consulte a documentação da API de Mensagens do Adobe Journey Optimizer para obter as especificações completas da API.

accordion
​3. Alinhar o estado do conteúdo, os atributos e o canal de push de entrada com a implementação do iOS

Verifique se os campos de carga correspondem à implementação ActivityAttributes do aplicativo iOS e se input-push-channel corresponde a channelID em liveActivityData.

  1. Revise sua definição de Atributos da atividade do iOS.

Sua estrutura ActivityAttributes personalizada deve implementar o protocolo LiveActivityAttributes da Adobe:

code language-swift
struct AirplaneTrackingAttributes: LiveActivityAttributes {
   public struct ContentState: Codable, Hashable {
      var journeyProgress: Int
   }

   // Adobe SDK requirement
   var liveActivityData: LiveActivityData

   // Your custom attributes
   var arrivalAirport: String
   var departureAirport: String
   var arrivalTerminal: String
}
  1. Mapeie os campos do iOS para a carga da API de transmissão.

Incluir content-state para todos os tipos de evento. Incluir attributes, incluindo liveActivityData.channelID, somente para eventos de início:

code language-json
{
   "aps": {
      "input-push-channel": "FEt0NgvLEfEAAOqA6AXdIQ==",
      "event": "start",
      "timestamp": 1771829292,
      "attributes-type": "AirplaneTrackingAttributes",
      "content-state": {
         "journeyProgress": 0
      },
      "attributes": {
         "arrivalAirport": "DEL",
         "departureAirport": "MUM",
         "arrivalTerminal": "T1",
         "liveActivityData": {
            "channelID": "FEt0NgvLEfEAAOqA6AXdIQ=="
         }
      }
   }
}

Crítico: input-push-channel deve corresponder achannelID

  • O valor input-push-channel na raiz de aps deve corresponder exatamente a channelID em liveActivityData.
  • No exemplo acima, ambos os valores são "FEt0NgvLEfEAAOqA6AXdIQ==".
  • Isso vincula a instância de transmissão aos dados de atividade Live.
  • Uma incompatibilidade causa falhas de delivery.

Pontos principais de validação:

  • Incluir todos os campos ContentState em content-state para todos os tipos de evento.
  • Incluir todos os campos personalizados LiveActivityAttributes em attributes somente para eventos iniciais.
  • Para eventos de início, liveActivityData.channelID deve corresponder a input-push-channel.
  • Os nomes de campos diferenciam maiúsculas de minúsculas e devem corresponder exatamente.
  • Os tipos de dados devem corresponder (String, Int, Bool, objetos aninhados etc.).
  • Para eventos de atualização/encerramento, use o mesmo input-push-channel que o evento inicial original.

Erros comuns:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3
Problema Impacto Corrigir
input-push-channel ausente A transmissão não funcionará Adicionar ID de canal exclusiva para cada transmissão
input-push-channel não corresponde a channelID A atividade online não iniciará Certifique-se de que ambos os valores sejam idênticos
Diferente de input-push-channel para atualização/fim Atualizar/encerrar não atingirá as atividades Live Usar a mesma ID de canal no ciclo de vida
liveActivityData.channelID ausente A atividade ao vivo não será vinculada à transmissão Incluir channelID em atributos para iniciar evento
Campo obrigatório ausente no evento de início A atividade online não iniciará Adicionar todos os campos da estrutura do iOS
Nome de campo incorreto (erro de digitação/uso de maiúsculas e minúsculas) Campo ignorado ou erro de análise Corresponder exatamente aos nomes de campo do iOS
Carimbo de data/hora obsoleto na atualização/término Atualização/fim ignorado pelos dispositivos Sempre gerar carimbo de data/hora novo
accordion
​4. Testar com o Assurance

Verifique a execução da API e o delivery de carga usando o Assurance:

  1. Abra a sessão do Assurance em um dispositivo de teste que faça parte do público-alvo.

  2. Execute a chamada de API de transmissão.

  3. Na Lista de Eventos, procure:

    • Eventos de execução de campanha.
    • Eventos de entrega de atividades online.
    • Eventos de erro que indicam falhas de validação de carga.
  4. Inspecione as cargas do evento para confirmar:

    • A carga foi processada corretamente.
    • O input-push-channel está presente.
    • Não ocorreram erros de validação.
    • As atividades ativas foram enviadas para APNs para membros do público-alvo.
Android

Pré-verificações:

  • Tipo de campanha: verifique se a campanha é Marketing acionado por API e se tem um público definido.
  • Validação de perfil e token: faça uma amostra de vários perfis de público-alvo para verificar se eles têm um pushNotificationDetails válido com platform: "fcm". Siga as verificações do Android no Cenário 1.
  • Assinatura do tópico: Confirme se o dispositivo de teste está inscrito no tópico FCM usado para a transmissão.

Etapas de depuração

accordion
​1. Verificar a configuração do público-alvo da campanha
  1. Abra sua campanha de Marketing acionada por API na Journey Optimizer.

  2. Navegue até a seção Público-alvo e verifique:

    • Um público é selecionado para a campanha.
    • A ID de público-alvo corresponde à ID usada na carga da API.
    • O público-alvo contém os perfis esperados.
  3. Navegue até a seção Ações.

  4. Verifique se a Configuração da atividade online está direcionada ao pacote correto do Android e se usa as credenciais FCM correspondentes. A Android não usa um tipo de atividade ou campo attributes-type.

accordion
​2. Validar a estrutura de carga da API de transmissão

As transmissões do Android usam um tópico FCM. Inclua audience.id e coloque o objeto fcm em context.requestPayload, em vez de em um destinatário individual.

Exemplo de carga de início de transmissão:

code language-json
{
   "requestId": "your-request-id",
   "campaignId": "your-marketing-campaign-id",
   "audience": {
      "id": "your-audience-id"
   },
   "context": {
      "requestPayload": {
         "fcm": {
            "topic_name": "flight_DL321",
            "notification_id": "flight-DL-321",
            "notification_channel_id": "live_updates_channel",
            "timestamp": 1771829292,
            "priority": "PRIORITY_HIGH",
            "event_type": "start",
            "title": "Flight DL-321",
            "body": "Boarding starts shortly",
            "critical_text": "25 min",
            "content_state": {
               "custom_key_template_type": "progress",
               "custom_key_journey_start": "DEL",
               "custom_key_journey_progress": 10,
               "custom_key_journey_end": "MUM"
            }
         }
      }
   }
}

Substitua o carimbo de data e hora de amostra pelo tempo da época Unix atual em segundos. Adapte as chaves do content_state ao provedor de estilos do seu aplicativo.

Problemas comuns de carga:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3
Campo Requisito Problema comum
campaignId Deve corresponder à ID de campanha de marketing ativada ID de campanha incorreta ou uso da campanha transacional
audience.id Deve corresponder ao público configurado na campanha ID de público-alvo incorreta ou público ausente
topic_name Deve ser não vazio e inalterado entre o início, a atualização e o fim O tópico ausente é rejeitado como malformado; o tópico alterado interrompe o direcionamento de atualização/término
notification_id Deve permanecer inalterado durante o ciclo de vida da atividade Atualizar ou finalizar direcionamentos de uma notificação diferente
notification_channel_id Deve corresponder a um canal de notificação criado pelo aplicativo Canal ausente ou incompatível
timestamp Segundos da época; deve ser maior que o valor anterior do mesmo tópico Carimbos de data e hora mais antigos ou iguais são ignorados
event_type Deve ser "start", "update" ou "end" Evento de ciclo de vida inválido
content_state Deve usar chaves e tipos de valor compatíveis com o provedor de estilos do aplicativo Chaves incompatíveis ou tipos incorretos

Campos críticos específicos da difusão:

  • topic_name: Identifica o tópico FCM ao qual os dispositivos de destino fizeram assinatura. Inclua o mesmo valor não vazio em cada solicitação de início, atualização e término.
  • audience.id: Identifica o público da campanha no Adobe Experience Platform. Verifique sua associação e perfis de exemplo para pushNotificationDetails válido.

Carimbo de data/hora e campos opcionais:

  • Gere um novo timestamp em segundos de época para cada evento e verifique se ele é estritamente maior que o último valor para o mesmo tópico. Valores mais antigos ou iguais são ignorados.
  • when opcionalmente define o tempo de exibição da notificação em segundos da época. Ela não controla a ordenação de mensagens.
  • Para event_type: "end", dismiss_after especifica opcionalmente quantos segundos a atividade concluída permanece visível antes da remoção. É uma duração, não um carimbo de data e hora de época.

Consulte a documentação da API de Mensagens do Adobe Journey Optimizer para obter as especificações completas da API.

accordion
​3. Verificar assinatura do tópico e renderização do aplicativo
  1. Confirme se o dispositivo de teste se inscreve no tópico exato especificado em topic_name, usando FirebaseMessaging.getInstance().subscribeToTopic(topic).
  2. Verifique se a assinatura foi bem-sucedida e se o aplicativo a relata por meio da API de rastreamento topic-subscription compatível com sua extensão de Atividades do Adobe Live instalada.
  3. Manter topic_name e notification_id inalterados em eventos de início, atualização e término.
  4. Verifique se content_state chaves e tipos de valor correspondem ao provedor de estilo do aplicativo.
  5. Verifique se as permissões de notificação são concedidas e se notification_channel_id corresponde a um canal criado pelo aplicativo.

Erros comuns:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Problema Impacto Corrigir
topic_name ausente ou vazio A solicitação foi rejeitada porque estava malformada Incluir um tópico não vazio em cada solicitação de ciclo de vida
Dispositivo não inscrito no tópico O dispositivo não recebe eventos de transmissão Assine o tópico exato e verifique o sucesso da assinatura
Tópico ou ID de notificação alterados Atualizar/encerrar não direciona a atividade original Manter ambos os valores inalterados durante o ciclo de vida
content_state chaves ou tipos sem suporte O conteúdo está ausente ou foi renderizado incorretamente Corresponder ao mapeamento do provedor de estilo do aplicativo
Mais antigo ou igual a timestamp Evento ignorado Usar um valor maior que o último carimbo de data e hora processado

Consulte o exemplo de carga de transmissão do Android para obter campos e exemplos adicionais.

accordion
​4. Testar com o Assurance

Use o Assurance em um dispositivo de teste conectado do Android que faça parte do público-alvo e assine o tópico de transmissão.

  1. Abra a sessão do Assurance antes de executar a chamada de API de transmissão.
  2. Enviar solicitações de início, atualização e término com os mesmos topic_name e notification_id, aumentando os carimbos de data e hora.
  3. Na lista Eventos, verifique se há erros de processamento de carga nos SDK e eventos de entrega disponíveis.
  4. Confirme se a carga contém o objeto fcm, topic_name e event_type valores pretendidos.
  5. Revise os relatórios da campanha e os eventos message.feedback disponíveis para confirmar os resultados da entrega do FCM. O valor serviceProvider do Android é fcm.
  6. Se o FCM aceitar a mensagem, mas o dispositivo não renderizar a atividade, inspecione a assinatura do tópico, as permissões de notificação, a configuração do canal e os logs do aplicativo. A aceitação do provedor não confirma a renderização do dispositivo.

Cenário 7: perfil que não está no instantâneo de público ou público obsoleto scenario-7-profile-not-in-audience-or-stale-audience-snapshot

[Aplicável somente a casos de uso de Difusão]{class="badge informative"}

Nesse cenário, a campanha e a carga são configuradas corretamente, mas perfis específicos não recebem a atividade Live. Isso normalmente ocorre quando:

  • O perfil não é um membro do público vinculado à campanha.
  • O público-alvo é um público-alvo em lote e contém um instantâneo desatualizado dos dados do perfil.
  • Os detalhes do token de push do perfil (liveActivityPushNotificationDetails no iOS ou pushNotificationDetails no Android) foram atualizados recentemente, mas ainda não foram refletidos no instantâneo do público-alvo.

Esse cenário de solução de problemas se aplica especificamente a campanhas de transmissão que usam direcionamento baseado em público-alvo.

Noções básicas sobre a avaliação de público-alvo

O Adobe Experience Platform usa diferentes métodos de avaliação de público-alvo que determinam quando as atualizações de perfil são refletidas no público-alvo:

Método
Frequência de avaliação
Atualização de dados
Melhor para
Lote
Uma vez por dia (agendado)
Pode estar obsoleto por até 24 horas
Grandes públicos-alvo, sem distinção de tempo
Transmissão
Tempo real (em alterações de perfil)
Quase em tempo real para perfis atualizados
Requer atualizações de perfil, diferencia tempo
Edge
Tempo real em locais de borda
Quase em tempo real
Casos de uso avaliados pela Edge

Pré-verificações

  • Validação de campanha e carga:

    • Conclua as verificações no Cenário 6 para sua plataforma para garantir que a campanha e a carga estejam corretas.
    • Verifique se o audience.id na carga da API corresponde à configuração da campanha.
  • Perfil existente: confirme se o perfil existe no Adobe Experience Platform com detalhes válidos de token de push. Siga as verificações em Cenário 1. Os detalhes a serem procurados dependem da plataforma:

    • iOS: liveActivityPushNotificationDetails com um token válido.
    • Android: pushNotificationDetails que inclui o token de registro FCM atual, um appId correspondente ao nome do pacote Android, platform: "fcm" e denylisted: false.
  • Assinatura do tópico (somente Android): Confirme se o dispositivo está inscrito no tópico FCM exato especificado em topic_name. A associação de público-alvo não inscreve o dispositivo no tópico. Siga as verificações de assinatura de tópico do Android no Cenário 6.

Etapas de depuração

​1. Verificar se o perfil está no público

Primeiro, confirme se o perfil que deve receber a atividade Live faz parte do público-alvo.

  1. Navegue até Públicos-alvo no Adobe Experience Platform.

  2. Procure e abra o público-alvo usando o audience.id da sua campanha.

  3. Clique em Procurar ou Perfis de amostra para exibir membros do público-alvo.

  4. Procure pelo perfil de teste usando o valor de namespace e identidade.

  5. Se o perfil não for encontrado na audiência:

    • O perfil não atende aos critérios de público-alvo ou às regras de segmento.
    • Revise a definição de público-alvo para entender os requisitos de associação.
    • Atualize os dados do perfil ou a definição do público-alvo para incluir o perfil.
    • Aguarde a conclusão da avaliação do público-alvo (consulte a etapa 2).
  6. Se o perfil for encontrado no público-alvo: Vá para a etapa 2 para verificar a atualização dos dados.

​2. Verificar o tipo e a programação da avaliação do público-alvo

Identifique se o público-alvo usa avaliação de lote, fluxo ou borda, pois isso determina a atualização dos dados.

note
NOTE
A avaliação de público-alvo não registra tokens de push nem inscreve dispositivos Android em tópicos do FCM. Ele determina apenas quais dados de perfil o instantâneo de público-alvo contém.
  1. Na página Detalhes do público-alvo, verifique o Método de avaliação:

    • Lote: avaliado uma vez por dia de acordo com um agendamento.
    • Streaming: avaliado em tempo real quando ocorrem atualizações de perfil.
    • Edge: avaliado em locais de borda em tempo real.

Siga as etapas apropriadas de solução de problemas com base no método de avaliação:

Se o público-alvo usar a Avaliação em lote:

  1. Compreender as limitações de público-alvo em lotes:

    • Os públicos-alvo em lote são avaliados uma vez por dia (normalmente durante a noite).
    • O instantâneo do público-alvo pode ter até 24 horas.
    • Se um perfil tiver registrado ou atualizado recentemente seus detalhes de token de push (liveActivityPushNotificationDetails no iOS ou pushNotificationDetails no Android), os detalhes atualizados talvez não estejam no instantâneo atual.
    • As atualizações para perfis não serão refletidas até a próxima avaliação do lote.
  2. Verificar quando ocorreu a última avaliação:

    • Nos detalhes do público, procure pelo carimbo de data e hora Última avaliação.
    • Se os detalhes do token de push do perfil tiverem sido atualizados após esse carimbo de data e hora, o instantâneo do público-alvo não incluirá o token atual.
  3. Resolver dados obsoletos:

    1. Opção 1: Aguardar a avaliação agendada do lote

      • A próxima avaliação do lote incluirá os dados atualizados do perfil.
      • Isso acontece automaticamente uma vez por dia.
      • Melhor para cenários não urgentes.
    2. Opção 2: acionar avaliação de público-alvo sob demanda

      1. Navegue até Públicos-alvo no AEP.
      2. Selecione o público-alvo.
      3. Clique em Avaliar agora ou Ativar sob demanda.
      4. Aguarde a conclusão da avaliação (isso pode levar de alguns minutos a horas, dependendo do tamanho do público).
      5. Verifique se o perfil agora atualizou os dados no instantâneo do público-alvo.
      6. Tente novamente a chamada da API de transmissão.

Se o público-alvo usar a avaliação de Streaming:

  1. Entender o comportamento de transmissão de público:

    • Os públicos-alvo de transmissão são avaliados em tempo real quando ocorrem atualizações de perfil.
    • Novos perfis: qualifique-se logo após a criação se eles atenderem aos critérios de segmento.
    • Perfis atualizados: qualifique ou desqualifique logo após ser atualizado.
    • Perfis inalterados existentes: não serão reavaliados, a menos que ocorra uma atualização.
  2. Identificar o problema:

    • Se um perfil já existir e atender aos critérios de segmento, mas nenhuma atualização ocorrer nesse perfil, ele não poderá ser adicionado a um público de transmissão recém-criado.
    • O perfil deve receber uma atualização (qualquer alteração de atributo) para acionar a reavaliação.
  3. Resolver o problema:

    • Para novos perfis: eles se qualificam automaticamente se os critérios forem atendidos. Nenhuma ação necessária.

    • Para perfis existentes sem atualizações recentes:

      • Faça uma pequena atualização no perfil (por exemplo, atualize um campo de carimbo de data e hora).
      • Isso aciona a avaliação de transmissão e adiciona o perfil ao público-alvo.
      • Alternativa: use um público-alvo em lote ou público-alvo de borda para perfis existentes.

Avançado: depuração via consultas do conjunto de dados advanced-debugging-via-dataset-queries

NOTE
Essas consultas se aplicam ao iOS e ao Android. Ambas as plataformas usam message.feedback eventos no Conjunto de Dados de Eventos de Feedback de Mensagens do AJO, com os mesmos caminhos de esquema e feedbackStatus valores mostrados abaixo.
Um status sent indica entrega para o provedor de push: APNs no iOS ou FCM no Android.

Público: desenvolvedores e engenheiros de dados. Requer acesso SQL aos conjuntos de dados do Journey Optimizer por meio do Serviço de consulta da Adobe Experience Platform.

Quando usar: o Assurance está limitado a dispositivos de teste conectados durante uma sessão ativa. Use consultas do conjunto de dados para investigar problemas relatados pelos usuários finais de produção ou para auditar o histórico de entregas após o fato. O conjunto de dados expõe as mesmas informações de ciclo de vida e falha que o plug-in do Assurance.

Localização do conjunto de dados

  1. No Journey Optimizer, navegue até Gerenciamento de dados > Conjuntos de dados.

  2. Habilite a opção Mostrar conjuntos de dados do sistema e abra o Conjunto de Dados de Eventos de Feedback de Mensagens do AJO.

Observe o nome exato da tabela mostrado na página de detalhes. As consultas abaixo usam ajo_message_feedback_event_dataset, substitua-o pelo nome real da tabela se ele for diferente. Para os campos desse conjunto de dados, consulte a Referência de esquema do Adobe Journey Optimizer.

Consulta por ID de atividade online

Use-a quando souber a ID de atividade Live (por exemplo, uma UUID de pedido ou ID de rastreamento de remessa) e quiser todos os eventos de feedback vinculados a ela durante todo o ciclo de vida.

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

Consulta por ECID

Use-a quando a ECID do perfil afetado for conhecida. Substitua <YOUR_ECID> com o valor ECID recuperado do perfil.

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
NOTE
identityMap é um tipo MAP estruturado, não uma cadeia de caracteres. Use a sintaxe do acessador array e struct mostrada acima. Funções de cadeia de caracteres como LIKE retornarão um erro DATATYPE_MISMATCH.
O Conjunto de Dados de Evento de Feedback de Mensagem armazena apenas a ECID em seu identityMap. Se o perfil afetado for identificado por um namespace personalizado em vez da ECID, resolva a ECID primeiro: navegue até Perfis no AEP, procure o perfil usando o namespace personalizado e o valor de identidade e recupere a ECID dos detalhes de identidade do perfil. Use esse valor de ECID na consulta acima.

valores de feedbackStatus

Valor
Significado
sent
Entregue ao provedor de push (APNs no iOS, FCM no Android); não confirma a renderização do dispositivo (veja abaixo)
error
Erro de entrega — inspecione failure_reason para obter detalhes
denylist
O token é inválido, não registrado ou (por exemplo, um aplicativo desinstalado); registre novamente o token do dispositivo
exclude
Perfil excluído antes de enviar (token ausente, problema de consentimento ou regras de tipologia)
delay
Entrega atrasada; será repetida
duplicate
Um envio repetido foi suprimido pela desduplicação em nível de entrega
bounce
Delivery rejeitado pelo provedor de push (por exemplo, uma falha grave retornada para o token)
NOTE
Para o campo la_event, o conjunto de dados registra remotestart, não start, para eventos de entrega iniciais. Filtre de acordo ao consultar por tipo de evento.

Interpretação do status enviado interpreting-the-sent-status

IMPORTANT
O limite de duração da atividade de 8 horas em tempo real se aplica somente ao iOS, não ao Android.

Um feedbackStatus de sent confirma que o Journey Optimizer entregou com êxito a notificação ao provedor de push (APNs no iOS, FCM no Android). Ele confirma não que a atividade Live foi renderizada no dispositivo.

O conjunto de dados não confirma a renderização do dispositivo após a entrega ao provedor de push. Falhas do lado do dispositivo, como uma restrição do SO, uma queda de rede entre o provedor e o dispositivo ou o limite de duração de 8 horas de atividade online que está sendo atingido no iOS, não são observáveis no conjunto de dados.

Se feedbackStatus for sent, mas nenhuma atividade Live aparecer no dispositivo, investigue o comportamento fora do pipeline de entrega do Journey Optimizer. Use o Assurance ou o registro em log no nível do aplicativo, incluindo o logcat no Android, para diagnosticar o comportamento do lado do dispositivo.

AI Knowledge Reference

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.feedback events (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, including appId, platform, and denylisted (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 update and end events. 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 SDK LiveActivityAttributes protocol; the iOS examples include liveActivityID for unitary or channelID for broadcast (product-specific)

  • channelID: The value in liveActivityData.channelID; must exactly match input-push-channel for iOS broadcasts (product-specific)

  • attributeType / attributes-type: The name of the Swift ActivityAttributes struct; stored as attributeType (camelCase) on the profile and sent as attributes-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, and attributeType (product-specific)

  • APS payload: The iOS JSON structure sent under context.requestPayload.aps, containing the event, content-state, and control fields; attributes includes 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 iOS input-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 timestamp must strictly increase for every event with the same notification_id (or topic_name for 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_uri are 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-channel must exactly match liveActivityData.channelID; a mismatch causes delivery failures.

  • For iOS, a feedbackStatus of sent confirms 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 per notification_id or topic_name) ≠ “when” (Android: optional notification display time that does not control ordering)
  • Do not confuse: la_event value “remotestart” (recorded in the dataset for initial delivery) ≠ “start” (the event field 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 executionId is prefixed with HUOC-, and the status field returns PENDING, INPROGRESS, COMPLETED, or FAILED.
  • Q: What does a feedbackStatus of sent mean 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).
recommendation-more-help
journey-optimizer-help