Il nostro obiettivo è fornire sempre tutti i messaggi inviati utilizzando FCM. Tuttavia, la pubblicazione di ogni messaggio a volte comporta 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 di FCM, proteggendo al contempo la stabilità del sistema e riducendo al minimo l'impatto dei progetti con picchi.
Pattern di traffico irregolari possono
causare errori di superamento 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 gestirle in base ai consigli pubblicati.
Keep in mind:
- La quota downstream misura i messaggi, non le richieste.
- Gli errori client (codice di stato HTTP 400-499) vengono conteggiati (esclusi i codici 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 su Google Cloud Console utilizzando quanto segue:
- Vai alla console Google Cloud.
- Seleziona API e servizi.
- Dall'elenco delle tabelle, seleziona API Firebase Cloud Messaging.
- Seleziona QUOTA 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 rapporto di errori del client è inferiore al 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 un massimo del 25% e FCM farà ogni sforzo pratico per soddisfare la richiesta (nessun aumento può essere garantito).
Se hai bisogno di una quota di messaggistica downstream maggiore a causa di un lancio imminente o di un evento temporaneo, richiedi la quota almeno 15 giorni prima 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. Le richieste di lancio ed eventi speciali sono comunque soggette al rapporto di errori del client e ai requisiti delle best practice.
Per saperne di più, consulta le quote di FCM.
Limiti dei messaggi dell'argomento e limitazione della distribuzione
Per ulteriori dettagli, consulta Quote e limiti di messaggistica argomento.
Limitazione dei messaggi comprimibili
Come descritto in Messaggi comprimibili, i messaggi comprimibili sono notifiche senza contenuti progettate per comprimersi una sull'altra. Nel caso in cui uno sviluppatore ripeta 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 sincronizzarsi a una velocità media inferiore. Questa limitazione viene eseguita rigorosamente per limitare l'impatto sulla batteria riscontrato dall'utente.
Se il tuo caso d'uso richiede pattern di invio di burst elevati, i messaggi non comprimibili potrebbero essere la scelta giusta. Per questi messaggi, assicurati di includere il contenuto per ridurre il consumo della batteria.
Limitiamo i messaggi comprimibili a una raffica di 20 messaggi per app per dispositivo, con un reintegro di 1 messaggio ogni 3 minuti.
Frequenza massima dei messaggi a 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 la batteria di un dispositivo si scarichi inavvertitamente a causa di errori nella logica di invio.
Per iOS, restituiamo un errore quando la frequenza supera i limiti APN.