Imposta e gestisci la priorità dei messaggi

Hai due opzioni per assegnare la priorità di consegna ai messaggi downstream su Android: normale e priorità alta. La consegna di messaggi normali e ad alta priorità funziona in questo modo:

  • Priorità normale. Questa è la priorità predefinita per i messaggi di dati . I normali messaggi di priorità vengono consegnati immediatamente quando il dispositivo non è in modalità di sospensione. Quando il dispositivo è in modalità Doze , la consegna potrebbe essere ritardata per risparmiare la batteria fino a quando il dispositivo non esce da Doze. Per i messaggi meno urgenti, come le notifiche di nuove e-mail, la sincronizzazione dell'interfaccia utente o la sincronizzazione dei dati dell'app in background, scegli la normale priorità di consegna.

    Quando ricevi un messaggio di priorità normale su Android che richiede una sincronizzazione dei dati in background per la tua app, puoi pianificare un'attività con WorkManager per gestirla quando la rete è disponibile.

  • Priorità alta. FCM tenta di consegnare immediatamente messaggi ad alta priorità, consentendo a FCM di riattivare un dispositivo inattivo quando necessario e di eseguire alcune elaborazioni limitate (incluso un accesso alla rete molto limitato). I messaggi ad alta priorità in genere dovrebbero comportare l'interazione dell'utente con la tua app o le relative notifiche.

Utilizzo di messaggi ad alta priorità per Android

I messaggi ad alta priorità su Android sono pensati per contenuti sensibili al tempo e visibili agli utenti e dovrebbero generare notifiche rivolte agli utenti. Se FCM rileva uno schema in cui i messaggi non generano notifiche rivolte all'utente, è possibile che i tuoi messaggi vengano privati ​​della priorità normale. FCM utilizza 7 giorni di comportamento dei messaggi per determinare se depriorizzare i messaggi; effettua questa determinazione in modo indipendente per ogni istanza dell'applicazione. Se, in risposta a messaggi ad alta priorità, le notifiche vengono visualizzate in modo visibile all'utente, i tuoi futuri messaggi ad alta priorità non verranno depriorizzati. Ciò vale se la notifica viene visualizzata dall'SDK FCM tramite un messaggio di notifica o una notifica generata dallo sviluppatore tramite un messaggio di dati .

Misurare la depriorizzazione dei messaggi su Android

  • Messaggi individuali. Alla consegna, puoi determinare se un singolo messaggio è stato depriorizzato o meno confrontando la sua priorità di consegna, da getPriority() , con la sua priorità originale, da getOriginalPriority()

  • Tutti i messaggi. L' API FCM Aggregate Delivery Data può segnalare quale percentuale di tutti i tuoi messaggi ad Android viene eliminata la priorità. Alcuni messaggi possono essere omessi dai rapporti sui dati aggregati, ma nel complesso dovrebbero fornire una visione globale dei tassi di depriorizzazione dei messaggi. Consulta il nostro articolo sui dati di consegna aggregati per ulteriori informazioni e codice di esempio per eseguire query sull'API; può anche essere esplorato da API explorer .

Risoluzione dei problemi

  • Assicurati che l'istanza dell'app abbia le notifiche abilitate. Se l'utente ha disabilitato l'autorizzazione di notifica per la tua app, nessuna delle tue notifiche verrà pubblicata, di conseguenza, i tuoi messaggi verranno privati ​​della priorità. È necessario verificare che le notifiche siano abilitate prima di inviare messaggi ad alta priorità a un'istanza dell'applicazione.

  • Non chiamare casa prima di aver inviato una notifica. Poiché una piccola parte della popolazione mobile Android si trova su reti ad alta latenza, evita di aprire una connessione ai tuoi server prima di visualizzare una notifica. Richiamare il server prima della fine del tempo di elaborazione consentito può essere rischioso per gli utenti su reti ad alta latenza. Includere invece il contenuto della notifica nel messaggio FCM e visualizzarlo immediatamente. Se devi sincronizzare contenuti in-app aggiuntivi su Android, puoi pianificare un'attività con WorkManager per gestirli in background.