Il nostro obiettivo è recapitare sempre ogni messaggio inviato tramite FCM. Tuttavia, la consegna di ogni messaggio a volte si traduce in un'esperienza utente complessiva scadente. 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 utilizzo.
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 ripristinata nel minuto successivo. Le risposte 429 possono essere restituite anche in situazioni di sovraccarico, pertanto ti consigliamo vivamente di gestire le risposte 429 in base ai consigli pubblicati.
Keep in mind:
- La quota downstream misura i messaggi, non le richieste.
- Vengono conteggiati gli errori del client (codice di stato HTTP 400-499), esclusi i codici 429.
- Le quote sono al minuto, ma questi minuti non sono allineati all'orologio.
Quota di monitoraggio
Puoi visualizzare la quota, l'utilizzo e gli errori nella console Google Cloud:
Vai alla console Google Cloud.
Seleziona API e servizi.
Dall'elenco della tabella, 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 è regolarmente ≥ 80% della quota per almeno 5 minuti consecutivi al giorno.
- Il tasso di errore del client è inferiore al 5%, soprattutto durante i picchi di traffico.
- Rispetti le best practice per l'invio di messaggi su larga scala.
Se soddisfi questi criteri, puoi inviare una richiesta di aumento della quota fino al +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à tutto il possibile 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 presentare la richiesta di aumento della quota tramite l'assistenza Firebase. Richiedi la quota con almeno 15 giorni di anticipo per avere tempo sufficiente per gestire la richiesta. Per richieste di grandi dimensioni (>18 milioni di messaggi al minuto), è richiesto un preavviso di almeno 30 giorni. Possiamo approvare solo 2 eventi di quota temporanea all'anno. La durata totale della quota temporanea nel corso dell'anno non deve superare i 30 giorni. Le richieste di lancio e di eventi speciali sono comunque soggette ai requisiti relativi al rapporto di errori del client e alle best practice.
Per saperne di più, consulta Quote di FCM.
Limiti dei messaggi degli argomenti e limitazione del fanout
Per maggiori dettagli, consulta Quote e limiti della messaggistica per 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. Nel caso in cui uno sviluppatore ripeta lo stesso messaggio a un'app troppo di frequente, ritardiamo i messaggi per ridurre l'impatto sulla batteria dell'utente.
Ad esempio, se invii un numero elevato di nuove richieste di sincronizzazione delle email a un singolo dispositivo, potremmo ritardare la richiesta di sincronizzazione successiva di alcuni minuti in modo che il dispositivo possa eseguire la sincronizzazione a una frequenza media inferiore. Questa limitazione viene applicata esclusivamente per ridurre l'impatto sulla batteria riscontrato dall'utente.
Se il tuo caso d'uso richiede pattern di invio con burst 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 burst di 20 messaggi per app per dispositivo, con un 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 errori nella logica di invio scarichino inavvertitamente la batteria di un dispositivo.
Per iOS, restituiamo un errore quando la frequenza supera i limiti di APN.