Scenari comuni per la risoluzione dei problemi relativi alle attività Live troubleshoot-mobile-live

In questa pagina: esegui una diagnosi sistematica del motivo per cui le attività Live non vengono visualizzate, aggiornate o terminate, in modo da poter risolvere i problemi relativi al token di profilo, alla configurazione della campagna, al payload e alla consegna sia nei casi di utilizzo unitari che in quelli di trasmissione.

Trova il tuo scenario find-your-scenario

Sintomo o attività
Inizia qui
L’attività live non si avvia
Scenario 1: profilo e token, quindi Scenario 2: campagna e payload
I controlli di configurazione passano, ma la consegna non riesce
Scenario 3: errori di consegna
L’attività live unitaria di iOS inizia ma non viene aggiornata né terminata
Scenario 4: sincronizzazione token di aggiornamento
L’attività Android Live inizia ma non viene aggiornata né terminata
Schede Android in Scenario 2 e Scenario 3
Controllare lo stato di elaborazione di una richiesta unitaria
Scenario 5: API stato esecuzione
La trasmissione non inizia, non aggiorna né non termina
Scenario 6: configurazione broadcast
Alcuni profili di pubblico non ricevono la trasmissione
Scenario 7: appartenenza e aggiornamento del pubblico
Esaminare i problemi di produzione o la consegna cronologica
Query set di dati

Scenario 1: problemi relativi al profilo o ai token push scenario-1-profile-or-push-token-issues

[Applicabile a casi di utilizzo sia unitari che broadcast]{class="badge informative"}

L’API del trigger accetta la richiesta, ma l’attività Live non viene visualizzata. Cause comuni:

  • Il profilo non esiste in Adobe Experience Platform.
  • Il token push richiesto non è stato sincronizzato con il profilo: un token push di attività live su iOS o il token di registrazione FCM standard su Android.
  • I dettagli del token push contengono una configurazione errata, ad esempio appId, piattaforma o iOS attributeType errati.

Per le trasmissioni: campiona diversi profili di pubblico per controllare la registrazione del token. In iOS, i controlli token di profilo sono applicabili agli eventi di avvio remoto, non agli eventi di aggiornamento o di fine basati sul canale. In Android, verificare anche la sottoscrizione dell’argomento FCM del dispositivo utilizzando Scenario 6.

Verifica che esista il profilo

Per iOS e Android, inizia con questo controllo. Per le trasmissioni, ripetilo per diversi profili di pubblico.

  1. In Journey Optimizer, passa a Cliente > Profili.
  2. Cerca utilizzando lo spazio dei nomi e il valore di identità della richiesta API.
  3. Se il profilo non viene trovato, non esiste o l’acquisizione non è stata completata. Crea il profilo o attendi il completamento dell’acquisizione prima di attivare l’attività Live.
  4. Se il profilo viene trovato, continua con i controlli token per la piattaforma.

Verifica il token push

iOS

Controlli preliminari

  • Requisiti dell’app iOS:

    • iOS 16.1+
    • NSSupportsLiveActivities impostato su YES in Info.plist
    • ActivityAttributes implementato correttamente.
  • Integrazione di Mobile SDK:

    • Adobe Experience Platform Mobile SDK (messaggistica SDK 5.11.0+)
    • Messaging.registerLiveActivities implementato e chiamato con il token push di attività Live.

Passaggi di debug

accordion
​1. Controlla se il token push di attività live è sincronizzato

Puoi utilizzare Assurance per verificare la registrazione del token:

  1. In Assurance, dall’elenco Eventi, filtrare o cercare gli eventi eventType = "liveActivity.pushToStart".
  2. Seleziona Evento e controlla il payload.
  3. Verificare che i valori token, appId e attributeType siano presenti.
  4. Conferma che l’evento è stato inviato correttamente.

Puoi anche effettuare il check-in del profilo Adobe Experience Platform.

  1. In Adobe Experience Platform, dal tuo Profilo, accedi alla scheda Eventi.
  2. Cerca liveActivity.pushToStart eventi.
  3. Controlla la marca temporale e il payload dell’evento.

Se non vengono trovati eventi, l’app non sta chiamando correttamente Messaging.registerLiveActivities. Correggi l’integrazione di SDK.

accordion
​2. Convalidare i dettagli del token sul profilo
  1. Dal tuo Profilo, accedi alla scheda Attributi.

  2. Individuare liveActivityPushNotificationDetails.

  3. Verifica la configurazione del token:

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

Convalida ogni campo:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Campo Requisito Problema comune
appId Deve corrispondere esattamente all’identificatore del bundle di iOS Mancata corrispondenza tra ID bundle di sviluppo/produzione
attributeType Deve corrispondere esattamente al nome struct Swift ActivityAttributes (distinzione maiuscole/minuscole) Digita o nome struct errato
platform Deve essere "apns" o "apnsSandbox" Valore piattaforma errato
denylisted Deve essere false Token contrassegnato come non valido o utente rifiutato
token Token push APNs valido Token scaduto o app reinstallata

Se un campo non è corretto, aggiorna l’app mobile, registrati di nuovo utilizzando Messaging.registerLiveActivities, attendi 5-10 minuti, quindi ricontrolla.

Se manca liveActivityPushNotificationDetails, il token non è ancora stato sincronizzato. Attendi 5-10 minuti dopo aver visto l’evento liveActivity.pushToStart in Assurance, quindi ricontrolla.

Android

Controlli preliminari

  • Requisiti dell’app Android:

    • Esegui l’app su Android 16.1 (livello API 36.1) o versione successiva, con targetSdk impostato su 36.
    • Verificare che siano state concesse le autorizzazioni POST_NOTIFICATIONS e POST_PROMOTED_NOTIFICATIONS.
    • Crea il canale di notifica utilizzato dall’attività Live.
  • Integrazione con Mobile SDK:

    • Integra Adobe Experience Platform Mobile SDK con Messaggistica ed estensione Live Activities.
    • Inoltrare il token di registrazione FCM a SDK utilizzando MobileCore.setPushIdentifier(token).

Passaggi di debug

accordion
​1. Verifica registrazione token FCM

Android utilizza il token di registrazione FCM standard per le attività live. Nessun evento liveActivity.pushToStart o token push attività live separato.

  1. In Assurance, apri l’elenco Eventi e individua l’evento di registrazione push-token standard.
  2. Seleziona l’evento e ispeziona il relativo payload per verificare che sia presente il token di registrazione FCM.
  3. Verificare che l’evento di registrazione sia stato inviato correttamente.
  4. In Adobe Experience Platform, apri la scheda Attributi del tuo profilo e verifica che il token sia presente in pushNotificationDetails, come descritto nel passaggio 2.

Se manca l’evento di registrazione o il token del profilo, verificare che l’app inoltri il token di registrazione FCM al SDK utilizzando MobileCore.setPushIdentifier(token).

accordion
​2. Convalidare i dettagli del token sul profilo
  1. Dal tuo profilo, accedi alla scheda Attributi.

  2. Individuare pushNotificationDetails. Android utilizza questo oggetto invece di liveActivityPushNotificationDetails e non richiede un campo attributeType.

  3. Verifica che la configurazione del token segua questa struttura:

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

Convalida ogni campo:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
Campo Requisito Problema comune
appId Deve corrispondere esattamente al nome del pacchetto Android Mancata corrispondenza tra i nomi dei pacchetti di sviluppo e di produzione
platform Deve essere "fcm" Valore piattaforma errato
denylisted Deve essere false Token contrassegnato come non valido o utente rifiutato
token Deve corrispondere al token di registrazione FCM corrente del dispositivo Token scaduto o app reinstallata

Se un campo non è corretto, correggi la configurazione dell’app in base alle esigenze, inoltra nuovamente il token FCM utilizzando MobileCore.setPushIdentifier(token), attendi 5-10 minuti, quindi ricontrolla il profilo.

Se manca pushNotificationDetails, il token non è ancora stato sincronizzato. Dopo aver confermato la registrazione del token in Assurance, attendi 5-10 minuti, quindi ricontrolla il profilo.

Scenario 2: problemi di configurazione e payload di Campaign scenario-2-campaign-configuration-and-payload-issues

[Applicabile a casi di utilizzo sia unitari che broadcast]{class="badge informative"}

Il profilo esiste e contiene token validi, ma l’attività Live non viene visualizzata. Possibili cause:

  • Configurazione della superficie o del canale errata.
  • Struttura del payload API errata.
  • I campi di payload non corrispondono all’implementazione dell’app: iOS ActivityAttributes o alla mappatura del provider di stili di Android.
  • timestamp non aggiornato (critico per aggiornamento/fine).

Per le trasmissioni: la campagna deve essere Marketing attivato da API, non transazionale. Il payload utilizza audience invece di recipients. Consulta Scenario 6 per i payload di trasmissione specifici della piattaforma e Documentazione di Adobe Developer per informazioni sulle specifiche API complete.

iOS

Controlli preliminari

  • Conferma che la campagna è Transazionale attivato da API (unitario) o Marketing attivato da API (broadcast). Mantieni Throughput elevato disabilitato perché non è compatibile con le attività Live.
  • Verificare che il profilo esista e che i relativi token siano sincronizzati utilizzando i controlli di iOS in Scenario 1.

Passaggi di debug

accordion
​1. Verificare la configurazione della superficie della campagna
  1. In Journey Optimizer, apri Campaign e passa al menu Azioni.
  2. Controlla la configurazione attività Live. La superficie deve essere configurata per l’app iOS con un identificatore bundle che corrisponde a appId nel liveActivityPushNotificationDetails del tuo profilo. Ad esempio, se il tuo profilo ha "appId": "com.example.myapp", la superficie deve avere come destinazione la stessa app.
  3. Verifica che il tipo di attività nella configurazione della campagna corrisponda esattamente al attributeType nel liveActivityPushNotificationDetails del tuo profilo. Ad esempio, se il tuo profilo ha "attributeType": "FoodDeliveryLiveActivityAttributes", la campagna deve specificare lo stesso tipo di attività.
accordion
​2. Convalidare la struttura del payload API

Durante l’esecuzione della campagna tramite API, assicurati che il payload segua la struttura corretta.

Payload unitario:

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": { ... }
            }
         }
      }
   }]
}

Problemi comuni relativi al payload:

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 comune
attributes-type Deve corrispondere al profilo e al tipo di attività della campagna attributeType Mancata corrispondenza o errore di battitura
campaignId Deve corrispondere all’ID campagna attivato ID campagna errato o mancante
content-available Deve essere 1 Valore mancante o errato
event Deve essere "start", "update" o "end" Tipo di evento non valido
timestamp Deve sempre essere il tempo dell’epoca Unix corrente/più recente in secondi Utilizzo di timestamp vecchi/memorizzati nella cache
userId / namespace Deve corrispondere a un profilo esistente in AEP Identificatore profilo non corrispondente

Critico: usa sempre una marca temporale nuova

  • Imposta timestamp sul tempo attuale (in secondi) dell’epoca Unix nel momento in cui effettui ciascuna chiamata API. Questo vale per tutti i tipi di evento: start, update e end.
  • Un timestamp non aggiornato o riutilizzato fa sì che le richieste di aggiornamento e fine non riescano o vengano ignorate dal dispositivo. non riutilizzare i timestamp da richieste o valori memorizzati nella cache precedenti.

Campi facoltativi (tutti i tipi di eventi):

  • requestId: identificatore univoco per il tracciamento (consigliato).
  • alert: oggetto con title e body per la notifica. Utile per richiamare l’attenzione sugli aggiornamenti.

Informazioni su dismissal-date:

  • Facoltativo. Tempo epoca Unix in secondi. Rilevante solo quando event è "end".
  • Specifica quando l’attività Live viene rimossa automaticamente dal dispositivo. Se la ometti, l’attività Live rimane visibile fino a quando l’utente non la chiude.
  • Deve essere una marca temporale futura, successiva a timestamp.
accordion
​3. Allineare il payload all’implementazione di iOS

Assicurati che il payload API corrisponda all’implementazione ActivityAttributes dell’app iOS. Il protocollo LiveActivityAttributes di Adobe SDK estende iOS ActivityAttributes e richiede una proprietà liveActivityData.

Convalida mapping:

  1. ActivityAttributes deve implementare il protocollo LiveActivityAttributes di Adobe. Esempio:

    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
    }
    

    Nota che il campo liveActivityData è richiesto da Adobe SDK e deve essere incluso in tutte le implementazioni.

  2. Il payload API deve rispecchiare la struttura di 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"
          }
       }
    }
    

Elenco di controllo convalida:

  • Includi tutti i campi ContentState in content-state (obbligatorio per tutti i tipi di evento).

  • Includi tutti i campi LiveActivityAttributes in attributes (solo eventi di inizio), inclusi:

    • liveActivityData (obbligatorio; in genere contiene liveActivityID o un identificatore simile)
    • Tutti i campi personalizzati dalla struttura
  • Fai corrispondere esattamente i nomi dei campi (distinzione maiuscole/minuscole).

  • Tipi di dati corrispondenti (String, Int, Bool, oggetti nidificati).

  • Mantieni struttura oggetto nidificata.

Errori comuni:

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 Impatto Correggi
liveActivityData mancante negli attributi L’attività live non verrà avviata Includi sempre l’oggetto liveActivityData nell’evento di avvio
Campo richiesto mancante nell’evento di avvio L’attività live non verrà avviata Aggiungi tutti i campi da iOS struct
Nome campo errato (errore di battitura/maiuscole/minuscole) Campo ignorato o errore di analisi Corrispondenza esatta dei nomi dei campi di iOS
Tipo di dati errato Errore di analisi Corrispondenza con i tipi di dati di iOS
Oggetto nidificato mancante Dati incompleti Includi tutte le strutture nidificate
Inclusione di attributes in aggiornamento/fine Non necessario, ma generalmente ignorato Includi solo attributes nell’evento di inizio
Timestamp non aggiornato al momento dell’aggiornamento/della fine Aggiornamento/fine ignorato dal dispositivo Genera sempre una nuova marca temporale

Per ulteriori esempi, consulta Crea pagina di attività Live.

accordion
​4. Test con Assurance

Verifica dell’esecuzione dell’API e della consegna del payload tramite Assurance:

  1. Apri la sessione di Assurance.

  2. Esegui la chiamata API per attivare l’attività Live.

  3. Nell’Elenco eventi, verificare che:

    • Eventi di esecuzione della campagna.
    • Eventi di consegna di attività live.
    • Eventi di errore di convalida del payload.
  4. Esamina i payload degli eventi per verificare:

    • Il payload è stato elaborato correttamente.
    • Non si sono verificati errori di convalida.
    • L’attività live è stata inviata ai numeri APN.
Android

Controlli preliminari

  • Conferma che la campagna è Transazionale attivato da API (unitario) o Marketing attivato da API (broadcast). Mantieni Throughput elevato disabilitato perché non è compatibile con le attività Live.
  • Verificare che il profilo esista e che il relativo token FCM sia sincronizzato utilizzando i controlli Android in Scenario 1.

Passaggi di debug

accordion
​1. Verificare la configurazione della superficie della campagna
  1. In Journey Optimizer, apri Campaign e passa al menu Azioni.
  2. Controlla la configurazione attività Live. La superficie deve avere come destinazione l’app Android con un nome di pacchetto che corrisponda a appId nel profilo pushNotificationDetails.
  3. Verifica che la superficie utilizzi le credenziali FCM per l’app. La piattaforma token del profilo deve essere "fcm".
  4. Verificare che notification_channel_id nel payload corrisponda a un canale di notifica creato dall’app.
accordion
​2. Convalidare la struttura del payload API

Posiziona i campi attività Android Live in context.requestPayload.fcm.

Payload di avvio unitario:

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"
                  }
               }
            }
         }
      }
   ]
}

Sostituisci la marca temporale di esempio con il tempo dell’epoca Unix corrente in secondi. Le chiavi content_state sono esempi e devono corrispondere al provider di stili dell’app.

Per le trasmissioni, utilizza una campagna di marketing attivata da API con audience.id e inserisci l’oggetto fcm in context.requestPayload. Imposta topic_name sull’argomento FCM a cui si è iscritti dai dispositivi di destinazione. Mantieni l’argomento e notification_id invariati tra gli eventi di inizio, aggiornamento e fine. Consulta gli esempi di payload per la trasmissione di Android.

Problemi comuni relativi al payload:

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 comune
campaignId Deve corrispondere all’ID campagna attivato ID campagna errato o mancante
notification_id Mantieni lo stesso valore per gli eventi di inizio, aggiornamento e fine dell’attività Live ID modificato destinato a una notifica diversa
notification_channel_id Deve corrispondere a un canale creato dall’app Android Canale mancante o non corrispondente
event_type Deve essere "start", "update" o "end" Evento del ciclo di vita non valido
timestamp Secondi epoca; deve aumentare rigorosamente per ogni evento che esegue il targeting della stessa istanza o argomento di trasmissione I timestamp precedenti o uguali vengono ignorati
content_state Utilizza i campi supportati dal provider di stili dell’app Chiavi non supportate o tipi di valore errati
userId / namespace Per la distribuzione unitaria, utilizza l’ECID del dispositivo con lo spazio dei nomi ECID Identificatore profilo non corrispondente
topic_name Per le trasmissioni, utilizza l’argomento a cui si sono iscritti i dispositivi di destinazione Argomento o dispositivi non corretti non sottoscritti

Controlli timestamp e ciclo di vita:

  • Utilizza un nuovo timestamp in pochi secondi per ogni evento di inizio, aggiornamento e fine. Verificare che sia maggiore del valore precedente per lo stesso notification_id (o topic_name per le trasmissioni), anche quando le richieste vengono effettuate nello stesso secondo.
  • I timestamp precedenti o uguali vengono ignorati. Non riutilizzare i timestamp memorizzati nella cache.
  • Il campo facoltativo when controlla l’ora di visualizzazione della notifica, non l’ordinamento dei messaggi. Mantenerlo ragionevolmente attuale ed esprimerlo in pochi secondi.
  • Per aggiornare o terminare un’attività, modificare event_type mantenendo notification_id invariato. Android utilizza lo stesso token di registrazione FCM per tutti e tre gli eventi del ciclo di vita; non è necessario alcun token di aggiornamento separato.

Chiusura evento finale:

Per event_type: "end", imposta facoltativamente dismiss_after sul numero di secondi in cui l’attività Live completata deve rimanere visibile prima della rimozione. Questa è una durata, non una marca temporale dell’epoca.

accordion
​3. Allinea il payload con l’implementazione di Android

Il provider di stili dell’app determina il rendering dei valori content_state nella notifica dell’attività live.

  1. Conferma che Messaggistica ed estensione Live Activities siano integrati nell’app.
  2. Verificare che ogni campo in content_state corrisponda a una chiave gestita dal provider di stili, incluso il tipo di valore previsto.
  3. Verificare che title, body e critical_text contengano il testo visualizzato desiderato. critical_text è utilizzato per il chip della barra di stato.
  4. Verificare che le autorizzazioni di notifica siano state concesse e che il canale identificato da notification_channel_id esista.

Errori comuni:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Problema Impatto Correggi
Tipo di chiave o valore content_state non supportato Contenuto mancante o renderizzato in modo errato Abbina la mappatura del provider di stili dell’app
Canale di notifica mancante o non corrispondente Impossibile pubblicare la notifica sul canale previsto Creare il canale e utilizzarne l’ID esatto
Autorizzazioni di notifica non concesse L’attività live potrebbe non essere visualizzata come previsto Verifica autorizzazioni POST_NOTIFICATIONS e POST_PROMOTED_NOTIFICATIONS
Modificato notification_id L’aggiornamento o la fine non eseguono il targeting della notifica originale Mantieni l’ID invariato per tutto il ciclo di vita
Precedente o uguale a timestamp Evento ignorato Utilizza un valore maggiore dell’ultimo timestamp elaborato

Per ulteriori esempi, consulta Creare attività live.

accordion
​4. Test con Assurance

Utilizza Assurance su un dispositivo di prova Android collegato.

  1. Apri una sessione di Assurance e conferma che la registrazione del token FCM sia visibile.
  2. Esegui la chiamata API per avviare l’attività Live, quindi invia eventi di aggiornamento e fine con gli stessi notification_id e marche temporali crescenti.
  3. Esamina gli eventi SDK e i payload disponibili per individuare eventuali errori di elaborazione o di convalida. Verificare che il payload di Android utilizzi fcm e i valori previsti per il ciclo di vita.
  4. Nella scheda Eventi del profilo, controlla message.feedback eventi corrispondenti. Verificare che serviceProvider sia fcm e rivedere feedbackStatus, errorCode e errorMessage per gli errori di consegna.
  5. Se la consegna ha esito positivo ma l’attività Live non esegue il rendering, esamina i registri dell’app, le mappature dei provider di stili, le autorizzazioni di notifica e la configurazione dei canali sul dispositivo.

Scenario 3: errori di consegna e analisi degli errori scenario-3-delivery-failures-and-error-analysis

[Applicabile a casi di utilizzo sia unitari che broadcast]{class="badge informative"}

In questo scenario, tutti i controlli precedenti sono stati superati:

Se l’attività Live non viene ancora visualizzata, aggiornata o terminata, controlla l’elaborazione della campagna, la consegna al provider push (APN su iOS o FCM su Android) e il comportamento lato dispositivo.

Per le trasmissioni: i report mostrano metriche per tutti i membri del pubblico. Alcuni profili possono avere esito positivo, mentre altri hanno esito negativo.

Controllare i rapporti delle campagne check-campaign-reports

Per iOS e Android, inizia con il rapporto della campagna. Indica se Journey Optimizer ha tentato l’invio, ha escluso il profilo o ha riscontrato un errore.

  1. Passa alla campagna attività live.

  2. Fai clic sul pulsante Rapporti.

  3. Selezionare Visualizza report completo.

  4. Controlla le metriche Statistiche di invio per comprendere il successo della consegna:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
    Metrica Che cosa significa Cosa cercare
    Target Numero di profili qualificati per il pubblico Deve includere il profilo di test
    Invia Totale notifiche push tentate Deve corrispondere alle chiamate API
    Consegnate Metrica di consegna segnalata Confronta con invii; verifica separatamente il rendering del dispositivo
    Inviare errori Notifiche push non inviate Esaminare i motivi dell’errore
    Inviare esclusioni Profili esclusi da Adobe Journey Optimizer Controlla se il tuo profilo è stato escluso
  5. Se Invia errori > 0, controllare la tabella Motivi di errore. Utilizza il passaggio 1 nella scheda per consentire alla piattaforma di interpretare gli errori.

  6. Se Invia esclusioni > 0, controlla la tabella Motivi esclusi:

    table 0-row-3 1-row-3 2-row-3 3-row-3
    Esclusione comune Significato Risoluzione
    Profilo rifiutato L’utente ha rinunciato alle notifiche Verifica lo stato del consenso del profilo
    Token Token contrassegnato come non valido Registra di nuovo il token (iOS) o inoltra il token FCM corrente (Android), oppure controlla lo stato di inserisce nell’elenco Bloccati di
    Profilo non idoneo Il profilo non soddisfa i criteri della campagna Rivedere le regole del pubblico della campagna
  7. Rivedi la sezione Ciclo di vita attività in tempo reale:

    table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2
    Metrica Cosa controllare
    Avvii remoti Deve mostrare il numero di avvii attivati da API
    Aggiornamenti Deve mostrare il conteggio degli eventi di aggiornamento
    Termina Deve mostrare il conteggio degli eventi finali
    Conteggio totali Volume evento attività live complessivo

    Se queste metriche sono pari a zero o non corrispondono alle chiamate API, esamina l’elaborazione della campagna e la consegna del provider push utilizzando i controlli specifici per la piattaforma riportati di seguito.

Ulteriori informazioni sono disponibili nella pagina del report della campagna di attività live.

Verifica la consegna per la piattaforma

iOS

Controlli preliminari

  • Scenari precedenti convalidati:

    • Il profilo esiste con liveActivityPushNotificationDetails corretto.
    • La superficie della campagna e il tipo di attività sono corretti.
    • Il payload API è valido con una marca temporale corrente.
    • I token di aggiornamento sono sincronizzati (solo eventi di aggiornamento e fine unitari).
  • Chiamata API confermata:

    • L’API del trigger ha accettato la richiesta. Questo non conferma la consegna o il rendering del dispositivo.
    • L’ID della campagna e i dettagli del destinatario sono corretti.

Passaggi di debug

accordion
​1. Interpretare gli errori di invio

Ignora questo passaggio se il report campagna non mostra errori di invio. In caso contrario, impostare una corrispondenza tra l’errore della tabella Motivi errore e gli errori APN comuni seguenti:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
Errore comune Significato Risoluzione
Token non valido Token push non valido o scaduto Registra nuovamente i token di attività live dal dispositivo
Token non trovato Nessun token valido associato al profilo Verifica che liveActivityPushNotificationDetails esista
APN rifiutati Il servizio di notifica push di Apple ha rifiutato il push Verifica certificato APNs, ID bundle, ambiente
Timeout di rete Impossibile raggiungere gli APN Problema transitorio; riprova la chiamata API
accordion
​2. Controllare gli eventi di feedback dei messaggi nel profilo
  1. Passa a Cliente > Profili in Journey Optimizer.

  2. Cerca e apri il profilo.

  3. Selezionare la scheda Eventi.

  4. Filtra o cerca eventi con eventType = "message.feedback".

  5. Cerca eventi di feedback corrispondenti al tipo liveActivityID e event della tua attività Live.

  6. Esamina i seguenti campi chiave:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
    Campo Valori possibili Che cosa significa
    feedbackStatus sent, error, denylist Risultato della consegna dal provider di servizi
    serviceProvider apns/apnsSandbox Deve essere un APN per le attività iOS Live
    errorCode Codice numerico o null Codice di errore specifico per APNs, se non riuscito
    errorMessage Descrizione errore o null Messaggio di errore leggibile
  7. Se feedbackStatus: "error":

    • Controllare che errorCode e errorMessage non contengano errori APN specifici.
    • Gli errori APN comuni includono token scaduto, certificato non valido, ID bundle errato.
  8. Se non viene trovato alcun evento di feedback:

    • È possibile che la notifica push non sia stata tentata.
    • Verifica se il profilo è stato escluso nel report campagna.

Se feedbackStatus è sent: Journey Optimizer ha passato la notifica ad APNs. Questo non conferma il rendering del dispositivo. Continuare con i controlli lato dispositivo al punto 4.

accordion
​3. Verificare la consegna delle attività live ai numeri APN in Assurance
  1. Apri la sessione di Assurance e mantienila attiva durante la chiamata API.

  2. Esegui la chiamata API (inizio, aggiornamento o fine).

  3. Nell’Elenco eventi, cerca gli eventi di consegna delle attività live.

  4. Cerca gli eventi relativi alla consegna push APN.

  5. Controllare la presenza dei seguenti indicatori:

    • Invia la richiesta al servizio APN: conferma l’invio del messaggio push ai server di Apple da parte di Adobe
    • Risposta APNs: indica se APNs ha accettato o rifiutato il messaggio push
    • Stato consegna: indicazione di esito positivo o negativo
  6. Se vengono rilevati problemi, consulta i seguenti problemi comuni relativi alla consegna di APN:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
    Problema Sintomo in Assurance Risoluzione
    Certificato APNs scaduto Errore di autenticazione Rinnovare e caricare un nuovo certificato APN
    Ambiente errato (sviluppo e produzione) Errore di mancata corrispondenza del token Assicurati che il certificato corrisponda al tipo di build dell’app
    Mancata corrispondenza ID bundle Identificatore bundle non valido Verifica che l’ID del bundle di certificati corrisponda all’app
    Token scaduto Errore InvalidToken da APNs Registra nuovamente i token di attività live
    Limitazione di velocità Troppe richieste Ridurre la frequenza delle chiamate API
accordion
​4. Controllare il comportamento lato dispositivo

Se Adobe mostra una consegna corretta ma il dispositivo non mostra l’attività Live:

  • Controlla i registri del dispositivo iOS per verificare la presenza di errori di attività live.
  • Verifica che l’app sia in primo piano o in background (non terminata).
  • Verificare che il dispositivo disponga della connettività di rete.
  • Esegui il test su più dispositivi per escludere problemi specifici del dispositivo.
  • Verifica che la versione di iOS sia 16.1 o successiva.
accordion
​5. Escalation al supporto Adobe

Se hai completato tutti i passaggi e il problema rimane non risolto, contatta l’Assistenza clienti Adobe con:

Informazioni richieste:

  • ID e nome della campagna
  • Spazio dei nomi e ID del profilo
  • liveActivityID dal payload API
  • Marca temporale delle chiamate API
  • Schermate del rapporto della campagna che mostrano statistiche di invio, motivi di errore e motivi di esclusione
  • Eventi di profilo rilevanti (liveActivity.updateToken per problemi di aggiornamento/fine unitari e message.feedback)
  • Dettagli della sessione Assurance e schermate dell’evento rilevanti
  • Payload e risposta della richiesta API, con credenziali e token del dispositivo eliminati
  • Dettagli del certificato APNs (scadenza, ambiente, ID bundle)
Android

Controlli preliminari

  • Scenari precedenti convalidati:

    • Esiste un profilo con pushNotificationDetails valido, inclusi il token FCM corrente, il nome del pacchetto Android e platform: "fcm".
    • La superficie della campagna esegue il targeting dell’app Android corretta e utilizza le credenziali FCM corrispondenti.
    • Il payload fcm è valido e il relativo timestamp è più recente dell’evento precedente per lo stesso notification_id (o topic_name per le trasmissioni).
    • Gli eventi di inizio, aggiornamento e fine utilizzano lo stesso notification_id. Gli eventi unitari utilizzano lo stesso token di registrazione FCM; non è necessario alcun token di aggiornamento separato.
  • Chiamata API confermata:

    • La chiamata API ha restituito HTTP 202 (accettato). Questo conferma l’accettazione della richiesta, non la consegna o il rendering del dispositivo.
    • L’ID della campagna e i dettagli del destinatario sono corretti. Per le trasmissioni, verifica l’ID del pubblico e l’argomento FCM.

Passaggi di debug

accordion
​1. Interpretare gli errori di invio

Ignora questo passaggio se il report campagna non mostra errori di invio. In caso contrario, verificare che l’errore della tabella Motivi errore corrisponda ai seguenti errori comuni di FCM:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Errore comune Significato Risoluzione
Token non valido/non registrato Token FCM non valido o app disinstallata Ottenere il token dispositivo corrente e inoltrarlo utilizzando MobileCore.setPushIdentifier(token)
Token non trovato Nessun token FCM valido associato al profilo Verifica che pushNotificationDetails contenga il token corrente
Mancata corrispondenza ID mittente Token emesso per un progetto Firebase diverso Allinea le credenziali FCM al progetto Firebase dell’app
Argomento non valido Payload rifiutato da FCM Convalida la struttura del payload fcm
Timeout di rete Impossibile raggiungere FCM Problema transitorio; riprova la chiamata API
accordion
​2. Controllare gli eventi di feedback dei messaggi nel profilo
  1. Passa a Cliente > Profili in Journey Optimizer.

  2. Cerca e apri il profilo.

  3. Selezionare la scheda Eventi.

  4. Filtra o cerca eventi con eventType = "message.feedback".

  5. Individua gli eventi di feedback per la campagna e le marche temporali delle chiamate API che stai esaminando.

  6. Esamina i seguenti campi chiave:

    table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3
    Campo Valori possibili Che cosa significa
    feedbackStatus sent, error, denylist Risultato della consegna dal provider di servizi
    serviceProvider fcm Consegna push Android gestita da FCM
    errorCode Codice errore provider o null Codice di errore specifico per FCM se la consegna non è riuscita
    errorMessage Descrizione errore o null Messaggio di errore leggibile
  7. Se feedbackStatus: "error":

    • Controllare errorCode e errorMessage e applicare la risoluzione FCM corrispondente dal passaggio 1.
  8. Se non viene trovato alcun evento di feedback:

    • La notifica push potrebbe non essere stata tentata o il feedback potrebbe non essere ancora disponibile.
    • Verifica se il profilo è stato escluso nel report campagna.

Se feedbackStatus è sent: FCM ha accettato la notifica. Ciò non conferma che il dispositivo abbia eseguito il rendering dell’attività Live. Continuare con i controlli lato dispositivo al punto 4.

accordion
​3. Ispezionare la consegna FCM in Assurance

Utilizza Assurance su un dispositivo di prova Android collegato.

  1. Apri una sessione di Assurance e mantienila attiva durante la chiamata API.
  2. Eseguire la chiamata API con event_type impostato su start, update o end.
  3. Nell’elenco Eventi, controlla gli eventi di consegna push disponibili per la richiesta a FCM e la relativa risposta.
  4. Verificare se FCM ha accettato o rifiutato la richiesta e controllare i dettagli degli errori segnalati.
  5. Per le richieste rifiutate, utilizza gli errori FCM nel passaggio 1 per verificare il token, le credenziali del progetto Firebase e il payload. Se gli eventi del provider non sono disponibili nella sessione, utilizzare message.feedback eventi e report campagna.
accordion
​4. Controllare il comportamento lato dispositivo

Se Adobe mostra una consegna corretta ma il dispositivo non visualizza o aggiorna l’attività Live:

  • Ispeziona i registri dell’app Android per individuare eventuali errori di gestione push e rendering delle attività live.
  • Verificare che le notifiche siano consentite e che le notifiche promosse siano consentite utilizzando canPostPromotedNotifications().
  • Verificare che siano state concesse le autorizzazioni POST_NOTIFICATIONS e POST_PROMOTED_NOTIFICATIONS e che esista il canale identificato da notification_channel_id.
  • Verificare che timestamp sia più recente dell’ultimo evento elaborato e che notification_id non sia stato modificato. Per le trasmissioni, verificare anche la sottoscrizione del dispositivo a topic_name.
  • Conferma che l’app non venga forzatamente arrestata.
  • Verificare che il dispositivo disponga della connettività di rete.
  • Esegui il test su più dispositivi per escludere problemi specifici del dispositivo.
  • Verificare che il dispositivo esegua Android 16.1 (livello API 36.1) o versione successiva e che l’app utilizzi targetSdk 36.
  • Verificare che le chiavi e i tipi di valore di content_state corrispondano al provider di stili dell’app.
accordion
​5. Escalation al supporto Adobe

Se hai completato tutti i passaggi e il problema rimane non risolto, contatta l’Assistenza clienti Adobe con:

Informazioni richieste:

  • ID e nome della campagna
  • Spazio dei nomi e ID del profilo
  • notification_id e event_type dal payload API; per le trasmissioni, includono anche topic_name e l’ID pubblico
  • Marca temporale delle chiamate API
  • Schermate del rapporto della campagna che mostrano statistiche di invio, motivi di errore e motivi di esclusione
  • Eventi del profilo message.feedback rilevanti, inclusi codici di errore FCM e messaggi
  • Dettagli della sessione Assurance e schermate dell’evento rilevanti
  • Payload e risposta della richiesta API, con credenziali e token del dispositivo eliminati
  • Nome pacchetto Android, ID progetto e mittente Firebase e dettagli di configurazione delle credenziali FCM; non includere chiavi private
  • Versione del sistema operativo Android, modello del dispositivo, stato delle autorizzazioni di notifica e registri delle app rilevanti

Scenario 4: token di aggiornamento dell’attività live non sincronizzato scenario-4-live-activity-update-token-not-synced

[Si applica solo ai casi d’uso unitari]{class="badge informative"}

[Si applica solo ad iOS]{class="badge positive"}

L’attività Live viene avviata sul dispositivo, ma le richieste API update o end accettate non vengono aggiornate né ignorate. Una possibile causa è che il token di aggiornamento dell’attività Live per istanza non è stato sincronizzato con il sistema di Adobe. Completa i controlli seguenti per verificare se il problema è la sincronizzazione dei token.

Informazioni sui token di aggiornamento

Quando un’attività Live viene avviata su un dispositivo, iOS genera un token di aggiornamento univoco per tale istanza di attività Live specifica. Questo token è necessario per:

  • Invio di aggiornamenti all’attività Live
  • Terminazione dell’attività Live in remoto

Ogni istanza di attività Live ha un proprio token di aggiornamento univoco. Adobe necessita di questo token per distribuire eventi di aggiornamento e fine.

Comportamento previsto

Affinché gli eventi di aggiornamento e fine funzionino, si devono verificare i seguenti eventi:

  1. L’attività live viene avviata correttamente sul dispositivo.
  2. Il dispositivo genera un token di aggiornamento per l’istanza dell’attività Live.
  3. Mobile SDK acquisisce e invia il token di aggiornamento ad Adobe.
  4. Il token di aggiornamento viene sincronizzato e memorizzato nel sistema di Adobe.
  5. Le successive chiamate API per l’aggiornamento o la fine utilizzano questo token per la consegna.

Controlli preliminari:

  • Autorizzazione utente: la prima volta che un’attività Live viene avviata su un dispositivo, iOS visualizza un prompt di sistema: “Consenti a [Nome app] di fornire aggiornamenti dell’attività Live?” L’utente deve toccare “Consenti” per generare e sincronizzare i token di aggiornamento. Se l’utente tocca “Non consentire”, non vengono creati token di aggiornamento e le richieste di aggiornamento/fine non riusciranno. Si tratta di un’autorizzazione una tantum per app.
  • Convalida profilo e campagna: completa I controlli dello scenario 1 e dello scenario 2 per verificare che la configurazione del profilo, dei token e della campagna sia corretta.

Passaggi di debug

​1. Verificare la sincronizzazione del token di aggiornamento in Assurance
  1. Apri la sessione di Assurance.

  2. Assicurati che la sessione sia stata attiva quando l’attività Live è stata avviata sul dispositivo.

  3. Filtra o cerca eventi con eventType = "liveActivity.updateToken".

  4. Seleziona l’evento e controlla il payload:

    • Verificare che il campo token contenga una stringa token di aggiornamento valida.
    • Controlla che liveActivityID corrisponda alla tua istanza di attività Live.
    • Conferma che activityType corrisponda al tuo attributes-type.
  5. Se l’evento non viene trovato:

    • Il token di aggiornamento non è stato generato o acquisito da SDK.
    • Verifica se l’utente ha concesso le autorizzazioni per l’attività live.
    • Verifica che l’attività Live sia stata effettivamente avviata sul dispositivo.
    • Verifica che il SDK mobile sia correttamente integrato per acquisire i token di aggiornamento.
  6. Se l’evento viene trovato, procedere al passaggio 2.

​2. Verificare il token di aggiornamento negli eventi del profilo
  1. Passa a Cliente > Profili in Journey Optimizer.

  2. Cerca e apri il profilo.

  3. Selezionare la scheda Eventi.

  4. Cerca liveActivity.updateToken eventi.

  5. Controlla i dettagli dell’evento:

    • Verifica che il timestamp sia recente (corrisponde all’avvio dell’attività Live).
    • Verificare che token e liveActivityID siano presenti.
    • Verificare che activityType sia corretto.
  6. Se l’evento non viene trovato nel profilo:

    • L’evento del token di aggiornamento potrebbe non essere ancora stato acquisito nel profilo.
    • Attendere 5-10 minuti e ricontrollare.
    • Se manca ancora dopo 15 minuti, potrebbe esserci un problema di acquisizione dell’evento.
  7. Se l’evento viene trovato, il token di aggiornamento è stato sincronizzato. Procedere al passaggio 3.

​3. Controllare gli eventi di consegna delle attività live in Assurance
  1. Nella sessione di Assurance, esegui una chiamata API di aggiornamento o di fine.

  2. Nell’Elenco eventi, cerca eventi di consegna attività live (eventi push APN).

  3. Verifica la presenza di eventi che indicano:

    • Notifica push inviata ai numeri APN.
    • Risposta da APN (riuscita o errore).
    • Conferma della consegna.
  4. Se è presente un evento di consegna APN: è stata inviata la notifica push. Se il dispositivo non viene ancora aggiornato, il problema potrebbe essere sul lato dispositivo (app che non gestisce il push, problemi di rete, ecc.).

  5. Se manca l’evento di consegna APN: il token di aggiornamento potrebbe non essere memorizzato correttamente o associato al profilo nel sistema di Adobe.

  6. Se sono presenti eventi di errore: controlla i dettagli dell’errore per specifici motivi di errore (token non valido, APN rifiutati, ecc.).

Scenario 5: controllo dello stato di esecuzione tramite l’API scenario-5-checking-execution-status-via-the-api

[Si applica solo ai casi d’uso unitari]{class="badge informative"}

Dopo aver attivato un’attività Live unitaria, l’API di esecuzione dei messaggi GET restituisce lo stato corrente dell’esecuzione. Utilizzala per confermare se un’esecuzione è in coda, in corso, completata o non riuscita, senza attendere che l’evento di feedback arrivi al set di dati.

executionId è l’ID del messaggio restituito nella risposta del trigger. Per le esecuzioni unitarie, ha il prefisso HUOC-.

Richiesta endpoint e esempio

Endpoint: 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>'

Codici di risposta HTTP

Codice
Significato
200 OK
Esecuzione trovata e restituita correttamente
401 Non autorizzato
Token Bearer mancante o non valido
403 - Non consentito
Token valido ma autorizzazioni insufficienti
404 Non trovato
L’ID di esecuzione non esiste

Valori dello stato di esecuzione

Il campo status in una risposta 200 indica lo stato di avanzamento dell’esecuzione:

Stato
Descrizione
PENDING
Esecuzione in coda ma non ancora avviata
INPROGRESS
Esecuzione in fase di elaborazione
COMPLETED
Esecuzione completata
FAILED
L’esecuzione ha riscontrato un errore

La risposta 200 restituisce anche executionType (unitary o batch), executionRunMode (default o test) e un blocco source con metadati (campaignId, journeyId, batchInstanceId, informazioni risorsa) che lega l’esecuzione alla campagna o al percorso di attivazione.

Scenario 6: problemi relativi alla configurazione e al payload della campagna di trasmissione broadcast-config

[Si applica solo ai casi d’uso di trasmissione]{class="badge informative"}

Questa sezione descrive gli scenari di risoluzione dei problemi specifici per le attività di trasmissione Live, che richiedono approcci di debug diversi rispetto alle campagne unitarie.

Quando i profili hanno token validi ma l’attività Live non viene visualizzata, aggiornata o si comporta come previsto per i membri del pubblico, il problema in genere deriva da uno dei seguenti elementi:

  • La campagna non è configurata come marketing attivato da API.
  • Nel payload API manca audience o l’identificatore di trasmissione specifico per la piattaforma: input-push-channel in iOS o topic_name in Android.
  • I campi di payload non corrispondono all’implementazione di iOS ActivityAttributes o alla mappatura del provider di stili di Android.
  • Il canale push di Apple non è configurato correttamente oppure il dispositivo Android non è abbonato all’argomento FCM.

Questo scenario di risoluzione dei problemi si applica a tutti gli eventi di attività Live nelle campagne di trasmissione: start, update e end.

iOS

Controlli preliminari:

  • Tipo di campagna:

    • Verifica che la campagna sia creata come Marketing attivato da API (necessario per campagne broadcast/basate su pubblico).
    • Conferma che un pubblico sia definito nella configurazione della campagna.
  • Convalida profilo e token: è possibile campionare più profili dal pubblico per verificare che dispongano di liveActivityPushNotificationDetails validi. Per i passaggi di convalida dettagliati, segui Scenario 1.

Passaggi di debug

accordion
​1. Verificare la configurazione del pubblico della campagna
  1. Apri la campagna di marketing con attivazione API in Journey Optimizer.

  2. Passa alla sezione Pubblico e verifica:

    • Per la campagna viene selezionato un pubblico.
    • L’ID del pubblico corrisponde a quello utilizzato nel payload API.
    • Il pubblico contiene i profili previsti.
  3. Passa alla sezione Azioni.

  4. Controlla la configurazione attività in tempo reale:

    • La configurazione deve essere impostata per l’app iOS con l’identificatore del bundle corretto.
    • Il tipo di attività deve corrispondere a attributes-type nel payload API. Ad esempio, se il payload contiene "attributes-type": "AirplaneTrackingAttributes", la campagna deve specificare lo stesso tipo di attività.
accordion
​2. Convalidare la struttura del payload dell’API di trasmissione

La struttura del payload della trasmissione è diversa dalle campagne unitarie. Verifica che il payload segua il formato di trasmissione corretto.

Campi obbligatori per la trasmissione:

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": { ... }
         }
      }
   }
}

Problemi comuni relativi al payload:

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 comune
campaignId Deve corrispondere all’ID campagna di marketing attivato ID campagna errato o utilizzo di una campagna transazionale
audience.id Deve corrispondere a un pubblico esistente in AEP L’ID o il pubblico errato non esiste
input-push-channel Obbligatorio per la trasmissione: identificatore univoco per questa istanza di trasmissione Manca o non corrisponde a channelID in liveActivityData
timestamp Deve sempre essere il tempo dell’epoca Unix corrente/più recente in secondi Utilizzo di timestamp vecchi/memorizzati nella cache
event Deve essere "start", "update" o "end" Tipo di evento non valido
attributes-type Deve corrispondere al tipo di attività della campagna Mancata corrispondenza o errore di battitura
content-available Deve essere 1 Valore mancante o errato

Campi critici specifici per la trasmissione:

  • input-push-channel:

    • Obbligatorio per tutte le attività di trasmissione in diretta.
    • Funge da identificatore univoco per questa istanza di broadcast specifica.
    • Tutti i profili del pubblico ricevono attività live collegate a questo canale.
    • Deve corrispondere a channelID in liveActivityData.channelID (vedere il passaggio 3).
    • Deve essere creato dal team per appID nel portale per sviluppatori di Apple.
    • Solo i canali creati per l’elemento appID specifico possono essere utilizzati per trasmettere le attività Live su tale app.
  • audience.id:

    • Deve fare riferimento a un segmento di pubblico valido creato in Adobe Experience Platform.
    • Tutti i profili in questo pubblico sono destinati all’attività Live.
    • Il pubblico deve essere attivato e contenere profili con liveActivityPushNotificationDetails validi.

Usa sempre la marca temporale più recente:

  • Il campo timestamp deve essere sempre l’ora Unix corrente (in secondi) per ogni chiamata API.
  • Questo requisito si applica a tutti i tipi di evento: start, update e end.
  • Critico per aggiornamenti/fine: l’utilizzo di marche temporali non aggiornate causa errori nelle richieste di aggiornamento e fine.
  • Genera una nuova marca temporale per ogni chiamata API di trasmissione.

Campi facoltativi:

  • dismissal-date: tempo epoca Unix per il licenziamento automatico (pertinente solo per eventi end)
  • alert: oggetto con title e body per la notifica

Per informazioni sulle specifiche API complete, consulta la documentazione API di messaggistica Adobe Journey Optimizer.

accordion
​3. Allinea lo stato dei contenuti, gli attributi e il canale di input-push con l’implementazione di iOS

Assicurati che i campi del payload corrispondano all’implementazione ActivityAttributes dell’app iOS e che input-push-channel corrisponda a channelID in liveActivityData.

  1. Rivedi la definizione degli Attributi di attività di iOS.

Lo struct ActivityAttributes personalizzato deve implementare il protocollo LiveActivityAttributes di 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. Mappa i campi di iOS sul payload API della trasmissione.

Includi content-state per tutti i tipi di evento. Includi attributes, incluso liveActivityData.channelID, solo per gli eventi di inizio:

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=="
         }
      }
   }
}

Critico: input-push-channel deve corrispondere achannelID

  • Il valore input-push-channel nella radice di aps deve corrispondere esattamente a channelID in liveActivityData.
  • Nell’esempio precedente, entrambi i valori sono "FEt0NgvLEfEAAOqA6AXdIQ==".
  • Questa corrispondenza collega l’istanza di trasmissione ai dati dell’attività Live.
  • Una mancata corrispondenza causa errori di consegna.

Punti di convalida chiave:

  • Includi tutti i campi ContentState in content-state per tutti i tipi di evento.
  • Includi tutti i campi LiveActivityAttributes personalizzati in attributes solo per gli eventi di inizio.
  • Per gli eventi di inizio, liveActivityData.channelID deve corrispondere a input-push-channel.
  • I nomi dei campi fanno distinzione tra maiuscole e minuscole e devono corrispondere esattamente.
  • I tipi di dati devono corrispondere (String, Int, Bool, oggetti nidificati, ecc.).
  • Per gli eventi di aggiornamento/fine, utilizzare lo stesso input-push-channel dell’evento iniziale originale.

Errori comuni:

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 Impatto Correggi
Manca input-push-channel La trasmissione non funzionerà Aggiungi un ID canale univoco per ogni trasmissione
input-push-channel non corrisponde a channelID L’attività live non verrà avviata Assicurati che entrambi i valori siano identici
input-push-channel diverso per aggiornamento/fine Update/end non raggiungerà le attività live Usa lo stesso ID canale per tutto il ciclo di vita
Manca liveActivityData.channelID L’attività live non verrà collegata alla trasmissione Includi channelID negli attributi per l’evento di inizio
Campo richiesto mancante nell’evento di avvio L’attività live non verrà avviata Aggiungi tutti i campi da iOS struct
Nome campo errato (errore di battitura/maiuscole/minuscole) Campo ignorato o errore di analisi Corrispondenza esatta dei nomi dei campi di iOS
Timestamp non aggiornato al momento dell’aggiornamento/della fine Aggiornamento/fine ignorato dai dispositivi Genera sempre una nuova marca temporale
accordion
​4. Test con Assurance

Verifica dell’esecuzione dell’API e della consegna del payload tramite Assurance:

  1. Apri la sessione di Assurance su un dispositivo di prova che fa parte del pubblico.

  2. Esegui la chiamata API di trasmissione.

  3. Nell’Elenco eventi cercare:

    • Eventi di esecuzione della campagna.
    • Eventi di consegna di attività live.
    • Eventi di errore che indicano errori di convalida del payload.
  4. Ispeziona i payload degli eventi per confermare:

    • Il payload è stato elaborato correttamente.
    • input-push-channel è presente.
    • Non si sono verificati errori di convalida.
    • Le attività live sono state inviate ai numeri APN per i membri del pubblico.
Android

Controlli preliminari:

  • Tipo di campagna: Verificare che la campagna sia Marketing attivato da API e che sia stato definito un pubblico.
  • Convalida profilo e token: Puoi campionare diversi profili di pubblico per verificare che contengano pushNotificationDetails validi con platform: "fcm". Segui i controlli di Android nello Scenario 1.
  • Sottoscrizione argomento: Verificare che il dispositivo di prova sia abbonato all’argomento FCM utilizzato per la trasmissione.

Passaggi di debug

accordion
​1. Verificare la configurazione del pubblico della campagna
  1. Apri la campagna di marketing attivata da API in Journey Optimizer.

  2. Passa alla sezione Pubblico e verifica:

    • Per la campagna viene selezionato un pubblico.
    • L’ID del pubblico corrisponde a quello utilizzato nel payload API.
    • Il pubblico contiene i profili previsti.
  3. Passa alla sezione Azioni.

  4. Verifica che la configurazione attività live esegua il targeting del pacchetto Android corretto e utilizzi le credenziali FCM corrispondenti. Android non utilizza un tipo di attività o un campo attributes-type.

accordion
​2. Convalidare la struttura del payload dell’API di trasmissione

Le trasmissioni Android utilizzano un argomento FCM. Includere audience.id e inserire l’oggetto fcm in context.requestPayload, anziché in un singolo destinatario.

Esempio di payload di avvio della trasmissione:

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"
            }
         }
      }
   }
}

Sostituisci la marca temporale di esempio con il tempo dell’epoca Unix corrente in secondi. Adattare le chiavi content_state al provider di stili dell’app.

Problemi comuni relativi al payload:

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 comune
campaignId Deve corrispondere all’ID campagna di marketing attivato ID campagna errato o utilizzo di una campagna transazionale
audience.id Deve corrispondere al pubblico configurato nella campagna ID pubblico errato o pubblico mancante
topic_name Deve essere non vuoto e non modificato per inizio, aggiornamento e fine L’argomento mancante viene rifiutato in quanto non valido; l’argomento modificato interrompe il targeting di aggiornamento/fine
notification_id Deve rimanere invariato per tutto il ciclo di vita dell’attività Aggiorna o termina le destinazioni con una notifica diversa
notification_channel_id Deve corrispondere a un canale di notifica creato dall’app Canale mancante o non corrispondente
timestamp Secondi epoca; deve essere maggiore del valore precedente per lo stesso argomento I timestamp precedenti o uguali vengono ignorati
event_type Deve essere "start", "update" o "end" Evento del ciclo di vita non valido
content_state Utilizza le chiavi e i tipi di valore supportati dal provider di stili dell’app Chiavi non supportate o tipi non corretti

Campi critici specifici per la trasmissione:

  • topic_name: identifica l’argomento FCM a cui si è iscritti i dispositivi di destinazione. Includi lo stesso valore non vuoto in ogni richiesta di inizio, aggiornamento e fine.
  • audience.id: identifica il pubblico della campagna in Adobe Experience Platform. Verificare l’appartenenza e i profili di esempio per pushNotificationDetails validi.

Timestamp e campi facoltativi:

  • Genera un nuovo timestamp in pochi secondi d’epoca per ogni evento e assicurati che sia rigorosamente maggiore dell’ultimo valore per lo stesso argomento. I valori più vecchi o uguali vengono ignorati.
  • when imposta facoltativamente il tempo di visualizzazione della notifica in secondi epoca. Non controlla l’ordinamento dei messaggi.
  • Per event_type: "end", dismiss_after specifica facoltativamente per quanti secondi l’attività completata rimane visibile prima della rimozione. È una durata, non una marca temporale dell’epoca.

Per informazioni sulle specifiche API complete, consulta la documentazione API di messaggistica Adobe Journey Optimizer.

accordion
​3. Verifica abbonamento argomento e rendering app
  1. Verificare che il dispositivo di test sia abbonato all’argomento specificato in topic_name, utilizzando FirebaseMessaging.getInstance().subscribeToTopic(topic).
  2. Verifica che la sottoscrizione abbia esito positivo e che l’app la segnali tramite l’API di tracciamento delle sottoscrizioni per argomento supportata dall’estensione Adobe Live Activities installata.
  3. Mantieni topic_name e notification_id invariati tra gli eventi di inizio, aggiornamento e fine.
  4. Verificare che le chiavi e i tipi di valore di content_state corrispondano al provider di stili dell’app.
  5. Verificare che le autorizzazioni di notifica siano concesse e che notification_channel_id corrisponda a un canale creato dall’app.

Errori comuni:

table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3
Problema Impatto Correggi
topic_name mancante o vuoto Richiesta rifiutata perché non valida Includere un argomento non vuoto in ogni richiesta del ciclo di vita
Dispositivo non iscritto all’argomento Il dispositivo non riceve eventi di trasmissione Iscriviti all’argomento esatto e verifica il successo dell’abbonamento
ID dell’argomento o della notifica modificato Aggiorna/termina non esegue il targeting dell’attività originale Mantenere entrambi i valori invariati per tutto il ciclo di vita
Tipi o chiavi content_state non supportati Contenuto mancante o renderizzato in modo errato Abbina la mappatura del provider di stili dell’app
Precedente o uguale a timestamp Evento ignorato Utilizza un valore maggiore dell’ultimo timestamp elaborato

Per ulteriori campi ed esempi, consulta l’esempio di payload di trasmissione di Android.

accordion
​4. Test con Assurance

Utilizza Assurance su un dispositivo di test di Android connesso che fa parte del pubblico e si abbona all’argomento della trasmissione.

  1. Apri la sessione di Assurance prima di eseguire la chiamata API per la trasmissione.
  2. Invia richieste di inizio, aggiornamento e fine con gli stessi topic_name e notification_id e con marche temporali crescenti.
  3. Nell’elenco Eventi, controlla gli eventi di SDK e consegna disponibili per individuare eventuali errori di elaborazione del payload.
  4. Verificare che il payload contenga l’oggetto fcm, topic_name e i valori event_type previsti.
  5. Esamina i rapporti delle campagne e i message.feedback eventi disponibili per confermare i risultati della consegna FCM. Il valore di Android serviceProvider è fcm.
  6. Se FCM accetta il messaggio ma il dispositivo non esegue il rendering dell’attività, controlla l’abbonamento all’argomento, le autorizzazioni di notifica, la configurazione del canale e i registri dell’app. L’accettazione del provider non conferma il rendering del dispositivo.

Scenario 7: profilo non presente nello snapshot del pubblico o non aggiornato scenario-7-profile-not-in-audience-or-stale-audience-snapshot

[Si applica solo ai casi d’uso di trasmissione]{class="badge informative"}

In questo scenario, la campagna e il payload sono configurati correttamente, ma profili specifici non ricevono l’attività Live. Ciò si verifica in genere quando:

  • Il profilo non è un membro del pubblico collegato alla campagna.
  • Il pubblico è un pubblico batch e contiene un’istantanea obsoleta dei dati di profilo.
  • I dettagli del token push del profilo (liveActivityPushNotificationDetails su iOS o pushNotificationDetails su Android) sono stati aggiornati di recente ma non sono ancora stati riflessi nello snapshot del pubblico.

Questo scenario di risoluzione dei problemi si applica in modo specifico alle campagne di trasmissione che utilizzano un targeting basato sul pubblico.

Informazioni sulla valutazione del pubblico

Adobe Experience Platform utilizza diversi metodi di valutazione del pubblico che determinano quando gli aggiornamenti del profilo vengono rispecchiati nel pubblico:

Metodo
Frequenza di valutazione
Aggiornamento dei dati
Ideale per
Batch
Una volta al giorno (pianificato)
Può essere non aggiornato fino a 24 ore
Pubblico numeroso, senza distinzione temporale
Streaming
In tempo reale (in caso di modifiche al profilo)
Profilo aggiornato quasi in tempo reale
Sensibile al tempo, richiede aggiornamenti del profilo
Edge
In tempo reale nelle posizioni edge
In tempo reale
Casi d’uso valutati da Edge

Controlli preliminari

  • Convalida della campagna e del payload:

    • Completa i controlli in Scenario 6 per la tua piattaforma per verificare che la campagna e il payload siano corretti.
    • Verifica che audience.id nel payload API corrisponda alla configurazione della campagna.
  • Profilo esistente: Verificare che il profilo esista in Adobe Experience Platform con dettagli del token push validi. Segui i controlli in Scenario 1. I dettagli da cercare dipendono dalla piattaforma:

    • iOS: liveActivityPushNotificationDetails con un token valido.
    • Android: pushNotificationDetails che include il token di registrazione FCM corrente, un appId che corrisponde al nome del pacchetto Android, platform: "fcm" e denylisted: false.
  • Sottoscrizione argomento (solo Android): Verificare che il dispositivo sia abbonato all’argomento FCM specificato in topic_name. L’iscrizione al pubblico non abbona il dispositivo all’argomento. Segui i controlli per abbonamento ad argomenti di Android in Scenario 6.

Passaggi di debug

​1. Verifica che il profilo sia nel pubblico

In primo luogo, conferma se il profilo che deve ricevere l’attività Live fa effettivamente parte del pubblico.

  1. Passa a Tipi di pubblico in Adobe Experience Platform.

  2. Cerca e apri il pubblico utilizzando audience.id della tua campagna.

  3. Fai clic su Sfoglia o Profili campione per visualizzare i membri del pubblico.

  4. Cerca il profilo di test utilizzando lo spazio dei nomi e il valore di identità.

  5. Se il profilo non è stato trovato nel pubblico:

    • Il profilo non soddisfa i criteri di pubblico o le regole dei segmenti.
    • Rivedi la definizione del pubblico per comprendere i requisiti di iscrizione.
    • Aggiorna i dati del profilo o la definizione del pubblico per includere il profilo.
    • Attendi il completamento della valutazione del pubblico (vedi passaggio 2).
  6. Se il profilo viene trovato nel pubblico: Procedi al passaggio 2 per verificare l’aggiornamento dei dati.

​2. Controllare il tipo e la pianificazione di valutazione del pubblico

Identifica se il pubblico utilizza la valutazione in batch, in streaming o Edge, in quanto questa determina l’aggiornamento dei dati.

note
NOTE
La valutazione del pubblico non registra i token di push né abbona i dispositivi Android ad argomenti FCM. Determina solo i dati di profilo contenuti nello snapshot del pubblico.
  1. Nella pagina Dettagli pubblico, controlla il Metodo di valutazione:

    • Batch: valutato una volta al giorno secondo una pianificazione.
    • Streaming: valutato in tempo reale quando si verificano aggiornamenti del profilo.
    • Edge: valutato in tempo reale nelle posizioni edge.

Segui i passaggi appropriati per la risoluzione dei problemi in base al metodo di valutazione:

Se il pubblico utilizza la valutazione batch:

  1. Comprendere le limitazioni del pubblico batch:

    • I tipi di pubblico in batch vengono valutati una volta al giorno (in genere durante la notte).
    • Lo snapshot del pubblico può risalire a un massimo di 24 ore.
    • Se un profilo ha recentemente registrato o aggiornato i dettagli del token push (liveActivityPushNotificationDetails su iOS o pushNotificationDetails su Android), è possibile che i dettagli aggiornati non siano presenti nello snapshot corrente.
    • Gli aggiornamenti ai profili verranno rispecchiati solo nella successiva valutazione batch.
  2. Controlla quando si è verificata l’ultima valutazione:

    • Nei dettagli del pubblico, cerca il timestamp Ultima valutazione.
    • Se i dettagli del token push del profilo sono stati aggiornati dopo questa marca temporale, lo snapshot del pubblico non include il token corrente.
  3. Risolvi dati non aggiornati:

    1. Opzione 1: attesa della valutazione batch pianificata

      • La successiva valutazione batch includerà i dati di profilo aggiornati.
      • Questo accade automaticamente una volta al giorno.
      • Consigliato per scenari non urgenti.
    2. Opzione 2: attivare la valutazione del pubblico su richiesta

      1. Passa a Tipi di pubblico in AEP.
      2. Seleziona il pubblico.
      3. Fai clic su Valuta ora o Attiva su richiesta.
      4. Attendi il completamento della valutazione (l’operazione può richiedere da diversi minuti ad ore, a seconda delle dimensioni del pubblico).
      5. Verifica che il profilo disponga ora di dati aggiornati nello snapshot del pubblico.
      6. Riprova la chiamata API di trasmissione.

Se il pubblico utilizza la valutazione in streaming:

  1. Comprendere il comportamento del pubblico in streaming:

    • I tipi di pubblico in streaming valutano in tempo reale quando si verificano aggiornamenti del profilo.
    • Nuovi profili: dopo la creazione, puoi qualificarti se soddisfano i criteri del segmento.
    • Profili aggiornati: dopo l’aggiornamento è possibile qualificarsi o annullare la qualifica.
    • Profili non modificati esistenti: non vengono rivalutati a meno che non si verifichi un aggiornamento.
  2. Identificare il problema:

    • Se un profilo esiste già e soddisfa i criteri del segmento, ma non si verifica alcun aggiornamento su tale profilo, potrebbe non essere aggiunto a un pubblico in streaming appena creato.
    • Il profilo deve ricevere un aggiornamento (qualsiasi modifica all’attributo) per attivare la rivalutazione.
  3. Risolvi il problema:

    • Per i nuovi profili: sono qualificati automaticamente se i criteri sono soddisfatti. Non è necessaria alcuna azione.

    • Per i profili esistenti senza aggiornamenti recenti:

      • Effettua un aggiornamento minore al profilo (ad esempio, aggiorna un campo timestamp).
      • Questo attiva la valutazione in streaming e aggiunge il profilo al pubblico.
      • Alternativa: utilizza un pubblico batch o Edge per i profili esistenti.

Avanzate: debug tramite query di set di dati advanced-debugging-via-dataset-queries

NOTE
Queste query si applicano sia ad iOS che ad Android. Entrambe le piattaforme utilizzano message.feedback eventi nel set di dati evento di feedback dei messaggi di AJO, con gli stessi percorsi dello schema e feedbackStatus valori mostrati di seguito.
Uno stato sent indica trasferimento al provider push: APN su iOS o FCM su Android.

Pubblico: sviluppatori e data engineer. Richiede l’accesso SQL ai set di dati di Journey Optimizer tramite Adobe Experience Platform Query Service.

Quando utilizzare: Assurance è limitato ai dispositivi di prova connessi durante una sessione attiva. Utilizza le query sui set di dati per esaminare i problemi segnalati dagli utenti finali di produzione o per controllare la cronologia delle consegne dopo il fatto. Il set di dati espone le stesse informazioni sul ciclo di vita e sugli errori del plug-in Assurance.

Individuazione del set di dati

  1. In Journey Optimizer, passa a Gestione dati > Set di dati.

  2. Attiva l’interruttore Mostra set di dati di sistema e apri Set di dati evento feedback messaggi di AJO.

Osserva il nome esatto della tabella mostrato nella pagina dei dettagli. Nelle query seguenti viene utilizzato ajo_message_feedback_event_dataset, sostituirlo con il nome effettivo della tabella, se diverso. Per i campi di questo set di dati, consulta la Guida di riferimento dello schema di Adobe Journey Optimizer.

Query per ID attività live

Usa questa opzione quando conosci l’ID attività live (ad esempio, un UUID di ordine o di tracciamento della spedizione) e vuoi che ogni evento di feedback sia associato ad esso durante l’intero ciclo di vita.

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

Query eseguita da ECID

Utilizzalo quando è noto l’ECID del profilo interessato. Sostituisci <YOUR_ECID> con il valore ECID recuperato dal profilo.

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 è un tipo MAP strutturato, non una stringa. Utilizza la sintassi della funzione di accesso array e struct mostrata sopra. Le funzioni stringa come LIKE restituiranno un errore DATATYPE_MISMATCH.
Il set di dati dell'evento Feedback messaggio memorizza solo ECID nel relativo identityMap. Se il profilo interessato è identificato da uno spazio dei nomi personalizzato anziché da ECID, risolvi prima l'ECID: passa a Profili in AEP, cerca il profilo utilizzando lo spazio dei nomi e il valore di identità personalizzati e recupera l'ECID dai dettagli di identità del profilo. Utilizza quel valore ECID nella query precedente.

valori feedbackStatus

Valore
Significato
sent
Consegnato al provider push (APN su iOS, FCM su Android); non conferma il rendering del dispositivo (vedi sotto)
error
Errore di consegna. Controllare failure_reason per i dettagli
denylist
Il token non è valido, non è registrato o è stato (ad esempio, un’app disinstallata); registra nuovamente il token dispositivo
exclude
Profilo escluso prima dell’invio (token mancante, problema di consenso o regole di tipologia)
delay
Consegna ritardata; verrà eseguito un nuovo tentativo
duplicate
Un invio ripetuto è stato eliminato dalla deduplicazione a livello di consegna
bounce
Consegna non recapitata dal provider push (ad esempio, è stato restituito un errore hardware per il token)
NOTE
Per il campo la_event, il set di dati registra remotestart, non start, per gli eventi di consegna iniziali. Filtra di conseguenza la query per tipo di evento.

Interpretazione dello stato inviato interpreting-the-sent-status

IMPORTANT
Il limite di durata dell’attività Live di 8 ore si applica solo ad iOS, non ad Android.

Un feedbackStatus di sent conferma che Journey Optimizer ha trasmesso correttamente la notifica al provider push (APN su iOS, FCM su Android). not conferma che l’attività Live è stata sottoposta a rendering sul dispositivo.

Il set di dati non conferma il rendering del dispositivo dopo il trasferimento al provider push. Gli errori lato dispositivo, come una restrizione del sistema operativo, un calo di rete tra il provider e il dispositivo o il raggiungimento del limite di durata dell’attività Live di 8 ore su iOS, non sono osservabili dal set di dati.

Se feedbackStatus è sent ma sul dispositivo non viene visualizzata alcuna attività Live, esaminare il comportamento al di fuori della pipeline di consegna di Journey Optimizer. Utilizza la registrazione a livello di app o Assurance, incluso logcat su Android, per diagnosticare il comportamento lato 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).

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)
recommendation-more-help
journey-optimizer-help