Die Clientbibliothek für Perl erleichtert die Interaktion mit der Google Ads API und erfordert nur minimale Konfigurationen. Die Leistung hängt jedoch stark davon ab, wie die Bibliothek verwendet und eingebunden wird.
Die meisten allgemeinen Best Practices gelten für alle Sprachen. Auf dieser Seite finden Sie leistungsbezogene Hinweise speziell für Perl.
Anwendung profilieren
Profilieren Sie Ihre Anwendung sowohl für die CPU- als auch für die Arbeitsspeichernutzung, um Leistungsengpässe zu identifizieren. Devel::NYTProf ist ein funktionsreicher Profiler für Perl-Quellcode, mit dem Sie die Ausführungszeit analysieren können.
Perl-Version
Führen Sie regelmäßig ein Upgrade auf eine neuere Perl-Version durch, um von Verbesserungen der Laufzeitleistung zu profitieren. Laden Sie die aktuelle Version von den CPAN-Perl-Quellcode-Releases herunter und prüfen Sie die erforderliche Mindestversion für die Bibliothek in den README-Anforderungen.
Logging
Umfangreiche Protokollierung kann zu erheblichen Einbußen bei der Ausführungszeit und beim Speicherverbrauch führen. Legen Sie die Protokollierungsebene für Code in der Produktion auf WARN fest.
Weitere Informationen zum Konfigurieren von Zusammenfassungs- und Detail-Loggern finden Sie im Logging-Leitfaden.
SearchStream im Vergleich zur Google Suche
Die Google Ads API bietet zwei Hauptmethoden zum Abrufen von Objekten:
Search (mit Paginierung) und
SearchStream (mit Streaming). SearchStreambietet eine bessere Leistung als Search, obwohl es bestimmte Szenarien gibt, in denen Search bevorzugt werden sollte.
Einen detaillierten Vergleich der beiden Methoden finden Sie im Streaming-Leitfaden.
Nutzlastoptimierung und Batching
So minimieren Sie den Netzwerk-Overhead und den Arbeitsspeicherverbrauch:
- Fordern Sie in Ihren GAQL-Abfragen (Google Ads Query Language) nur die spezifischen Felder an, die Ihre Anwendung benötigt.
- Fassen Sie mehrere Mutationen in einer einzigen
mutate-Anfrage zusammen, anstatt für jede Änderung eine separate Anfrage zu senden.
HTTP-Zeitüberschreitung
Die Perl-Clientbibliothek bietet eine Einstellung zum Konfigurieren von HTTP-Timeouts auf Clientebene:
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
Der Standardwert beträgt 3600 Sekunden (1 Stunde) und wird basierend auf der Konstanten DEFAULT_HTTP_TIMEOUT in Constants.pm festgelegt.
Legen Sie ein benutzerdefiniertes Client-Zeitlimit fest, wenn Sie ein kürzeres Limit für die maximale Zeit für einen API-Aufruf erzwingen möchten.
Sie können das Zeitlimit auf 2 Stunden oder mehr festlegen. Bei sehr zeitaufwendigen Anfragen kann es jedoch trotzdem zu einem Zeitlimitüberschreitungsfehler kommen und die API gibt dann den Fehler DEADLINE_EXCEEDED zurück. Wenn dieser Fehler auftritt, teilen Sie die Anfrage in kleinere Teile auf und führen Sie sie parallel aus. So wird verhindert, dass eine Anfrage mit langer Ausführungszeit fehlschlägt und die einzige Möglichkeit zur Wiederherstellung darin besteht, die Anfrage noch einmal von Anfang an auszulösen.