La libreria client per Perl facilita le interazioni con l'API Google Ads, consentendo una configurazione minima da parte tua. Tuttavia, le prestazioni dipendono molto da come viene utilizzata e integrata la libreria.
La maggior parte di queste best practice si applica a tutte le lingue. Questa guida illustra quelle specifiche di Perl.
Profilazione dell'applicazione
Profila l'applicazione sia per l'utilizzo di CPU sia per la memoria al fine di identificare i colli di bottiglia delle prestazioni. Devel::NYTProf è un profilatore di codice sorgente Perl potente e ricco di funzionalità, che puoi esplorare.
Versione Perl
È buona norma eseguire regolarmente l'upgrade a una versione di Perl più recente, poiché in genere offre prestazioni generali migliori. Consulta qui la versione più recente di Perl e la versione minima richiesta per la libreria in questa pagina.
Logging
Un logging esteso può comportare penalità significative in termini di tempo di esecuzione e consumo di memoria. Ti consigliamo di impostare il livello di logging su WARN
per qualsiasi codice in produzione.
Per ulteriori dettagli sulla configurazione dei log di riepilogo e dettagli, consulta la guida a Logging.
Metodo di ricerca o SearchStream
L'API Google Ads fornisce due metodi principali per recuperare gli oggetti:
Search
(che utilizza l'impaginazione) e
SearchStream
(che utilizza i flussi).
SearchStream
offre prestazioni migliori rispetto al metodo Search
, ma potrebbero
esserci alcuni scenari in cui il metodo Search
potrebbe essere preferibile.
Scopri di più sui due metodi qui.
Timeout HTTP
La libreria client Perl fornisce una piattaforma per l'impostazione dei timeout HTTP a livello di client:
my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
# Set HTTP timeout to 5 minutes.
http_timeout => 300
});
Il valore predefinito è impostato in base all'impostazione DEFAULT_HTTP_TIMEOUT
in
Constants.pm.
Imposta un valore più basso se devi applicare un limite più breve per il tempo massimo per una chiamata API.
Puoi impostare il timeout su un valore pari o superiore a 2 ore, ma l'API potrebbe comunque scadere in tempo per le richieste a lunga esecuzione e restituire un errore DEADLINE_EXCEEDED
.
Se riscontri questo errore, suddividi la richiesta ed esegui i blocchi in parallelo. In questo modo si evita che una richiesta a lunga esecuzione non vada a buon fine e l'unico modo per recuperarla è attivare nuovamente la richiesta dall'inizio.