Rate limiting dell'API Marketing

L'API Marketing ha una propria logica di rate limiting ed è esclusa da tutte le limitazioni di rate limiting dell'API Graph. Quindi, se fai una chiamata all'API Marketing, non sarà calcolata nel throttling dell'API Graph.

La funzione che influisce sulla quota di rate limiting dell'API Marketing è l'accesso standard a Gestione inserzioni. Quando aggiungi il prodotto dell'API Marketing nella tua Dashboard gestione app, ottieni l'accesso standard alla funzione Accesso standard a Gestione inserzioni per impostazione predefinita. Questo ti darà accesso come sviluppatore all'API Marketing. Se hai bisogno di un upgrade per ulteriori quote di rate limiting, esegui l'upgrade all'accesso avanzato della funzione Accesso standard a Gestione inserzioni nell'analisi dell'app.

Quote

Accesso all'API MarketingAccesso standard a Gestione inserzioniCapacità

Accesso come sviluppatore

Accesso standard

Quota di rate limiting di base

Accesso standard

Accesso avanzato

Aumento della quota di rate limiting

La maggior parte delle richieste all'API Marketing e le richieste all'API Pages sono soggette ai rate limiting dei casi d'uso aziendali (BUC) e dipendono dagli endpoint che interroghi. Dovresti essere in grado di capirlo controllando se la tua richiesta HTTP contiene un'intestazione X-Business-Use-Case. Altri dettagli sono disponibili in Limiti dei casi d'uso aziendali.

Limiti a livello di API per account pubblicitario

  • Il rate limiting è a livello di account pubblicitario.
  • Il rate limiting si verifica in tempo reale in un determinato intervallo di tempo.
  • Ad ogni chiamata all'API Marketing viene assegnato un punteggio. Il tuo punteggio è la somma delle tue chiamate API.
  • Applichiamo un punteggio massimo. Generalmente, una chiamata API in lettura equivale a 1 punto e una chiamata API in scrittura a 3 punti; quando si raggiunge il punteggio massimo, viene generato un errore di throttling.
    • Se la tua app è nel livello di sviluppo dell'API Marketing:
      • Il tuo punteggio massimo è 60.
      • Il tasso di decadimento è di 300 secondi.
      • Se raggiungi il punteggio massimo, viene applicato un blocco per 300 secondi.
    • Se la tua app è al livello standard dell'API Marketing:
      • Il tuo punteggio massimo è 9000.
      • Il tasso di decadimento è di 300 secondi.
      • Se raggiungi il punteggio massimo, viene applicato un blocco per 60 secondi.

Codice di errore correlato:17, Error subcode: 2446079, Message: User request limit reached. 613, Error subcode: 1487742, Message: There have been too many calls from this ad-account. Please wait a bit and try again.

Rate limiting in QPS a livello di account pubblicitario

Per evitare che i nostri sistemi vengano sovraccaricati da improvvise intensificazioni del traffico, applichiamo il rate limiting in tempo reale agli endpoint di mutazione dell'API Marketing (operazioni di creazione e modifica per campagne, gruppi di inserzioni e inserzioni).

  • Il rate limiting è a livello di account pubblicitario, per app.
  • Limite: 100 richieste al secondo (QPS) per combinazione di app e account pubblicitario.
  • Si applica a creazione e modifica di operazioni per campagne, gruppi di inserzioni e inserzioni.
  • Questo limite funziona in tempo reale ed è progettato per individuare i picchi di traffico brevi che la finestra di rate limiting standard potrebbe non rilevare.

Sono interessati i seguenti endpoint:

Quando superi questo limite, distribuisci le richieste in modo più uniforme nel tempo anziché inviarle in sequenze.

Codice di errore correlato:613, Error subcode: 5044001, Message: Your ad account {ad_account_id} has exceeded the maximum allowed rate of mutation requests. To resolve this, reduce the frequency of your create, update operations on campaigns, ad sets, and ads.

In caso di riscontro di questo errore, implementa il throttling delle richieste per rimanere al di sotto di 100 QPS per account pubblicitario.

Rate limiting della piattaforma Ads Insights

  • Il rate limiting è a livello di app.
  • Il rate limiting è determinato dalla capacità dei servizi di backend intermedi e a valle.
  • Quando la tua app è sottoposta a rate limiting, tutte le chiamate all'API Ads Insights per l'app sono limitate.
  • Viene applicato il rate limiting a livello di app.

Codice di errore correlato:4, Error subcode: 1504022 or 1504039, Message: There have been too many calls from this app. Wait a bit and try again.

Quando viene generato questo errore, tutte le tue chiamate vengono ridimensionate.

Limiti a livello di app

  • Il rate limiting è a livello di app.
  • Il rate limiting è determinato dagli utenti totali di un'app.
  • Quando la tua app è sottoposta a rate limiting, tutte le chiamate per l'app sono limitate.
  • Viene applicato il rate limiting a livello di app.

Codice di errore correlato:4, Message: Application request limit reached.

Quando viene generato questo errore, tutte le tue chiamate vengono ridimensionate.

Limiti dei casi d'uso aziendali a livello di account pubblicitario

Calcoliamo la quota di rate limiting in base al tuo livello di accesso all'API Marketing e alla tua app.

  • Il rate limiting è a livello dell'account pubblicitario e la quota è calcolata in base al livello di accesso all'API delle inserzioni per la tua app.
  • ads_management - Per ogni account pubblicitario in un periodo di un'ora: (100 000 se la tua app è nel livello standard dell'API Marketing o 300 se la tua app è nel livello sviluppo) + 40 * numero di inserzioni attive.
  • custom_audience - Per ogni account pubblicitario in un'ora: non più di 700 000. Non meno di 190 000 se la tua app è nel livello standard dell'API Marketing o 5000 se la tua app è nel livello sviluppo + 40 * numero di gruppi di pubblico personalizzato attivi.
  • ads_insights - Per ogni account pubblicitario in un periodo di un'ora: (190 000 se la tua app è nel livello standard dell'API Ads o 600 se la tua app è nel livello sviluppo) + 400 * numero di inserzioni attive - 0,001 * errori degli utenti.
  • Gestione cataloghi - Per ogni account pubblicitario in un periodo di un'ora: 20 000 + 20 000 * log2(utenti unici).
  • Gruppo catalogo - Per ogni account pubblicitario in un periodo di tempo di un'ora: 200 + 200 * log2(utenti unici).
  • Il rate limiting dell'API Marketing può anche essere determinato in base al tempo totale della CPU e al tempo bacheca totale sul tuo account pubblicitario. Avrai più quota se la tua app ha l'accesso standard all'API Marketing; per maggiori dettagli, controlla l'intestazione [X-Business-Use-Case](/docs/graph-api/overview/rate-limiting/#headers-2) HTTP e i limiti di rate limiting dei casi d'uso aziendali.

Codice di errore correlato:80000, 80003, 80004, 80014, Message: There have been too many calls from this ad-account. Wait a bit and try again. For more info, please refer to https://developers.facebook.com/docs/graph-api/overview/rate-limiting.

Verifica l'endpoint API e l'intestazione X-Business-Use-Case HTTP per confermare il tipo di throttling. Altri dettagli sono disponibili in Limiti dei casi d'uso aziendali. Quando viene generato questo errore, ridimensiona le modifiche all'account pubblicitario.

Limiti di rate limiting alla spesa pubblicitaria a livello di account pubblicitario

La possibilità di modifica dei limiti di spesa del tuo account sono limitate a 10 volte al giorno per garantire le prestazioni di pubblicazione delle inserzioni.

  • Il numero di modifiche alla spesa dell'account pubblicitario come i campi spend_cap e spend_cap_action è limitato

Codice di errore correlato:17, Error subcode: 1885172, Message: You can only change your account spending limit 10 times per day. Please wait to make more changes.

Limiti a livello di gruppo di inserzioni

Il numero di modifiche ai campi daily_budget e lifetime_budget del gruppo di inserzioni è limitato. Per ogni gruppo di inserzioni, il budget può essere modificato solo 4 volte all'ora; se viene superato il limite, la modifica del budget per quel gruppo di inserzioni è bloccata per un'ora.

Codice di errore correlato:613, Error subcode: 1487632, Message: You can only change your ad set budget 4 times per hour. Please wait to make more changes.

Quando viene generato questo errore, ridimensiona le modifiche al gruppo di inserzioni.

Limiti a livello di inserzione

La creazione di inserzioni è limitata per un determinato account pubblicitario in base al limite di spesa giornaliero.

Codice di errore correlato:613, Error subcode: 1487225, Message: User request limit reached.

Verifica il sottocodice di errore (1487225) e l'endpoint API per confermare il tipo di throttling. Quando viene generato questo errore, ridimensiona le modifiche. Per aumentare il limite, puoi anche aumentare il limite di spesa giornaliero.

Rate limiting per la prevenzione degli abusi

Quando il nostro sistema rileva che alcuni account pubblicitari generano una grande quantità di traffico anomalo, al fine di proteggere la stabilità del sistema e garantire l'esperienza di altri utenti, la quota di rate limiting dell'API degli account anormali viene ridotta temporaneamente. Prova a contattare l'assistenza Meta per ricevere aiuto.

Codice di errore correlato:613, Error subcode: null, Message: (#613) Calls to this api have exceeded the rate limit.

La differenza tra questo e il limite a livello di API per account pubblicitario è che questo errore non contiene sottocodici di errore. Quando viene generato questo errore, verificare l'eventuale presenza di qualche azione che sta determinando l'invio di richieste eccessive all'API e contatta l'assistenza Meta per ricevere aiuto.

Gestione degli errori di throttling

Valutazione iniziale

Controlla il livello di accesso all'API Marketing:

Per impostazione predefinita, le app hanno development_access all'API Marketing. Per scoprire il tuo livello, vai alla dashboard dell'Analisi dell'app. Sei nel livello per sviluppatori dell'accesso all'API Marketing se hai l'accesso standard alla funzione Accesso standard a Gestione inserzioni. Sei nel livello standard di accesso all'API Marketing se hai accesso avanzato alla funzione Accesso standard a Gestione inserzioni. Puoi anche controllare l'intestazione HTTP e cercare ads_api_access_tier nell'intestazione X-Ad-Account-Usage, X-Business-Use-Case o X-FB-Ads-Insights-Throttle.

Se continui a ricevere errori di rate limiting, prendi in considerazione di eseguire l'upgrade a standard_access della funzione Accesso standard a Gestione inserzioni. Per raggiungere il livello standard e ottenere una quota di rate limiting più alta, puoi richiedere l'accesso avanzato alla funzione Accesso standard a Gestione inserzioni nella dashboard dell'Analisi dell'app.

  • Controlla i codici di errore: determina i codici di errore specifici relativi al throttling nella risposta API.
  • Controlla le intestazioni HTTP:
    • X-Ad-Account-Usage contiene acc_id_util_pct, reset_time_duration e ads_api_access_tier.
    • X-Business-Use-Case contiene informazioni su call_count, total_cputime, total_time e estimated_time_to_regain_access, ecc. per l'endpoint del caso d'uso aziendale.
    • X-FB-Ads-Insights-Throttle contiene app_id_util_pct, acc_id_util_pct e ads_api_access_tier per gli endpoint dell'API Ads Insights.
  • Consulta la Dashboard gestione app: forniamo console nella Dashboard gestione app che forniscono agli sviluppatori dettagli sul sistema di rate limiting che li aiutano a diagnosticare e prevenire problemi di rate limiting.

Identifica la causa

  • Rate limiting: comprendi i rate limiting dell'API Marketing di Meta per i diversi endpoint usati e verifica se il numero di richieste API rientra nei limiti consentiti per l'app.
  • Limiti di burst: controlla se i limiti di burst stanno causando problemi durante i periodi di picco di utilizzo. Di solito il traffico di burst causerà limiti a livello di API per account pubblicitario (codici di errore correlati:17, 613).
  • Operazioni errati: verificare se eventuali operazioni errate stanno attivando richieste API eccessive.

Procedura di mitigazione

  • Previeni il traffico di burst: distribuisci le richieste API in modo uniforme per evitare throttling causato da un gran numero di accessi in breve tempo.
  • Ottimizza le richieste: combina più richieste più piccole in richieste di gruppo, gruppo di ID o richieste asincrone, per minimizzare il numero totale di chiamate API.
  • Strategia di backoff: implementa un backoff esponenziale quando ricevi errori di throttling, aumentando gradualmente il tempo tra un tentativo e l'altro. Puoi anche esaminare le intestazioni HTTP per la stima del tempo di reimpostazione.

Altri suggerimenti per la mitigazione

  • Verifica la necessità di queste chiamate e riducile se non sono necessarie.
  • Per gli endpoint che supportano richieste asincrone come l'API Ads Insights, usa richieste asincrone per interrogare una grande quantità di dati.
  • Puoi anche provare a passare una lista di ID se hai bisogno di interrogare più oggetti pubblicitari dello stesso tipo.
  • Per l'API Insights, usa i parametri di livello o applica un filtro per ridurre il numero di chiamate.