Imposta e gestisci la priorità dei messaggi

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

  • Priorità normale. Questa è la priorità predefinita per i messaggi di dati . I messaggi con priorità normale vengono recapitati immediatamente quando il dispositivo non è in modalità di sospensione. Quando il dispositivo è in modalità Doze , l'erogazione potrebbe essere ritardata per risparmiare la batteria finché il dispositivo non esce dalla modalità Doze. Per i messaggi meno urgenti, come le notifiche di nuove email, la sincronizzazione dell'interfaccia utente o la sincronizzazione dei dati delle app in background, scegli la priorità di recapito normale.

    Quando ricevi un normale messaggio prioritario 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 sue notifiche.

Utilizzo di messaggi ad alta priorità per Android

I messaggi ad alta priorità su Android sono destinati a contenuti sensibili al fattore tempo, visibili all'utente e dovrebbero comportare notifiche rivolte all'utente. Se FCM rileva un modello in cui i messaggi non generano notifiche rivolte all'utente, ai tuoi messaggi potrebbe essere assegnata una priorità normale. FCM utilizza 7 giorni di comportamento dei messaggi per determinare se ridurre la priorità dei messaggi; effettua questa determinazione in modo indipendente per ogni istanza dell'applicazione. Se, in risposta ai messaggi ad alta priorità, le notifiche vengono visualizzate in modo visibile all'utente, ai futuri messaggi ad alta priorità non verrà declassata. Ciò si applica sia che la notifica venga visualizzata dall'SDK FCM tramite un messaggio di notifica o una notifica generata dallo sviluppatore tramite un messaggio di dati .

Misurazione della riduzione della priorità dei messaggi su Android

  • Messaggi individuali. Al momento della consegna, puoi determinare se a un singolo messaggio è stata depriorizzata o meno confrontando la sua priorità consegnata, da getPriority() , con la sua priorità originale, da getOriginalPriority()

  • Tutti i messaggi. L' API Aggregate Delivery Data di FCM può segnalare la percentuale di tutti i messaggi inviati ad Android a cui è stata depriorizzata. Alcuni messaggi potrebbero essere omessi dai report sui dati aggregati, ma nel complesso dovrebbero fornire una visione globale dei tassi di riduzione della priorità dei messaggi. Consulta il nostro articolo sui dati di consegna aggregati per ulteriori informazioni e un codice di esempio per eseguire query sull'API; può anche essere esplorato dall'API Explorer .

Risoluzione dei problemi

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

  • Non chiamare a casa prima di aver pubblicato una notifica. Poiché una piccola parte della popolazione mobile Android utilizza 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 gestirla in background.