Il nostro obiettivo è garantire sempre la consegna di tutti i messaggi inviati tramite FCM. Tuttavia, la consegna di ogni messaggio a volte comporta una scarsa esperienza utente complessiva. In altri casi, dobbiamo fornire dei limiti per garantire che FCM fornisca un servizio scalabile per tutti i mittenti. I tipi di limiti e quote descritti in questa sezione ci aiutano a bilanciare questi fattori importanti.
Limitazione dei messaggi downstream
L'API HTTP v1 ha introdotto quote per progetto e al minuto per la messaggistica downstream. La quota predefinita di 600.000 messaggi al minuto copre oltre il 99% degli sviluppatori FCM proteggendo al contempo la stabilità del sistema e riducendo al minimo l'impatto dei progetti con picchi di traffico.
I pattern di traffico con picchi possono
causare errori di superamento della quota. In uno scenario di superamento della quota, il sistema restituisce il codice di stato HTTP 429 RESOURCE_EXHAUSTED ("QUOTA_EXCEEDED") finché la quota non viene ricaricata nel minuto successivo. Le risposte 429 possono essere restituite anche in situazioni di sovraccarico, pertanto ti consigliamo vivamente di gestirle in base alle
raccomandazioni
pubblicate.
Keep in mind:
- La quota downstream misura i messaggi, non le richieste.
- Gli errori del client (codice di stato HTTP 400-499) vengono conteggiati (esclusi i 429).
- Le quote sono al minuto, ma questi minuti non sono allineati all'orologio.
Monitoraggio della quota
Puoi visualizzare la quota, l'utilizzo e gli errori nella console Google Cloud utilizzando quanto segue:
- Vai a Google Cloud console.
- Seleziona API e servizi.
- Nell'elenco delle tabelle, seleziona API Firebase Cloud Messaging.
- Seleziona QUOTE E LIMITI DI SISTEMA.
Richiedi un aumento della quota
Prima di richiedere un aumento della quota, assicurati che:
- Il tuo utilizzo sia regolarmente ≥ 80% della quota per almeno 5 minuti consecutivi al giorno.
- Hai una percentuale di errori del client < 5%, soprattutto durante il picco di traffico.
- Rispetta le best practice per l'invio di messaggi su larga scala.
Se soddisfi questi criteri, puoi inviare una richiesta di aumento della quota fino a +25% nella console Google Cloud utilizzando quanto segue:
- Vai a QUOTE E LIMITI DI SISTEMA.
- Nella tabella, seleziona la riga Invia richieste al minuto.
- Fai clic sul pulsante Modifica.
- Segui le istruzioni per effettuare la richiesta.
FCM farà ogni sforzo per soddisfare la richiesta (non è possibile garantire alcun aumento ).
Se hai bisogno di una quota di messaggistica downstream maggiore a causa di un lancio imminente o di un evento temporaneo, devi inviare la richiesta di aumento della quota tramite l'assistenza Firebase. Richiedi la quota con almeno 15 giorni di anticipo per consentire un tempo sufficiente per gestire la richiesta. Per le richieste di grandi dimensioni (> 18 milioni di messaggi al minuto), è necessario un preavviso di almeno 30 giorni. Possiamo approvare solo 2 eventi di quota temporanea all'anno. La durata totale della quota temporanea nell'arco dell'anno non deve superare i 30 giorni. Le richieste di lanci ed eventi speciali sono comunque soggette alla percentuale di errori del client e ai requisiti delle best practice.
Per saperne di più, consulta FCM quote.
Limiti dei messaggi dell'argomento e limitazione del fanout
Per maggiori dettagli, consulta Quote e limiti della messaggistica degli argomenti.
Limitazione dei messaggi comprimibili
Come descritto in Messaggi comprimibili, i messaggi comprimibili sono notifiche senza contenuti progettate per essere compresse l'una sull'altra. Se uno sviluppatore ripete lo stesso messaggio a un'app troppo spesso, ritardiamo i messaggi per ridurre l'impatto sulla batteria di un utente.
Ad esempio, se invii un numero elevato di nuove richieste di sincronizzazione delle email a un singolo dispositivo, potremmo ritardare la successiva richiesta di sincronizzazione delle email di alcuni minuti in modo che il dispositivo possa eseguire la sincronizzazione a una frequenza media inferiore. Questa limitazione viene eseguita rigorosamente per limitare l'impatto sulla batteria dell'utente.
Se il tuo caso d'uso richiede pattern di invio con picchi elevati, i messaggi non comprimibili potrebbero essere la scelta giusta. Per questi messaggi, assicurati di includere i contenuti in modo da ridurre il consumo della batteria.
Limitiamo i messaggi comprimibili a un picco di 20 messaggi per app per dispositivo, con una ricarica di 1 messaggio ogni 3 minuti.
Frequenza massima dei messaggi per un singolo dispositivo
Per Android, puoi inviare fino a 240 messaggi al minuto e 5000 messaggi all'ora a un singolo dispositivo. Questa soglia elevata è pensata per consentire picchi di traffico a breve termine, ad esempio quando gli utenti interagiscono rapidamente tramite chat. Questo limite impedisce che gli errori nella logica di invio scarichino inavvertitamente la batteria di un dispositivo.
Per iOS, restituiamo un errore quando la frequenza supera i limiti APN.