Leistung

Die PHP-Clientbibliothek 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 Best Practices gelten für alle Sprachen. In diesem Leitfaden werden die PHP-spezifischen behandelt.

Protobuf-Implementierung

Protobuf wird von gRPC und der Google Ads API für Anfrage- und Antwortnachrichten verwendet. Es sind zwei Implementierungen verfügbar, wobei die in C geschriebene Implementierung die bessere Leistung bietet.

Weitere Informationen finden Sie im Protobuf-Leitfaden.

Betriebsmodus des PHP-Interpreters

PHP ist eine vielseitige Scriptsprache und hat je nach Verwendung viele Betriebsmodi. PHP-CGI (Common Gateway Interface) hat einen wesentlichen Vorteil, da Ressourcen zwischen Ausführungen gemeinsam genutzt werden können.

PHP-Version

Es empfiehlt sich, regelmäßig auf eine neuere PHP-Version zu aktualisieren, da diese in der Regel eine bessere Gesamtleistung bietet. Liste der unterstützten PHP-Versionen

Nicht verwendete Google Ads API-Versionen

Alle Versionen der Clientbibliothek unterstützen mehrere Google Ads API-Versionen. Für jede Version der Google Ads API, die von der Clientbibliothek unterstützt wird, gibt es spezielle Pakete.

Die Pakete für Versionen der Google Ads API, die nicht verwendet werden, können problemlos aus der Clientbibliothek entfernt werden. Da es nützlich sein kann, die Ausführung zu beschleunigen oder den Speicherbedarf zu verringern, bietet die Clientbibliothek Dienstprogramme, um dies programmatisch zu tun.

Beispiel

Angenommen, Sie implementieren die Clientbibliothek, die nur die neueste API-Version v20 verwendet, und Sie möchten die Unterstützung für die nicht verwendeten API-Versionen v19 und v18 entfernen.

Definieren Sie in der Datei composer.json des Projekts ein Composer-Script mit dem Namen remove-google-ads-api-version-support, das die von der Clientbibliothek bereitgestellte Utility in der Klasse ApiVersionSupport nutzt:

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

Verwenden Sie dann das Composer-Skript mit den Versionsnummern als Parameter und geben Sie einige Statusmeldungen aus:

# Change the current directory to the project directory.
cd /path/to/the/project

# Install the project.
composer install

# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v18 and v19 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 18 19

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

Die Beispielausgabe unten zeigt eine Dateigrößenreduzierung von 50 MB. Die einzige verbleibende unterstützte Version ist V20:

# Supported Google Ads API versions:
V18
V19
V20
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 18 of Google Ads API...
Done
Removing support for the version 19 of Google Ads API...
Done
# Supported Google Ads API versions:
V20
# Vendor folder size:
60M     ./vendor

Entwicklung im Vergleich zur Produktion

PHP ist eine interpretierte Sprache, da Anweisungen zuerst kompiliert und dann ausgeführt werden. Das ist in der Regel von Vorteil, da sich Quellen während der Entwicklung häufig ändern, die Ausführungszeit jedoch nicht so wichtig ist. Bei der Produktion ist jedoch das Gegenteil der Fall, da Stabilität und Leistung die Hauptanliegen sind.

Cache

Caching ist üblich und wird dringend empfohlen, da es sowohl die Leistung als auch die Stabilität verbessert, indem vorkompilierte Skriptanweisungen gespeichert werden.

OPcache ist die am häufigsten verwendete Lösung und standardmäßig verfügbar.

Automatisches Aufladen

Autoload ist üblich, da es sowohl die Leistung als auch die Stabilität verbessert, indem vorkompilierte Informationen zu Klassen geladen werden.

Die PHP-Clientbibliothek entspricht PSR-4 für das automatische Laden und stellt die Definition als Teil der Datei composer.json bereit. Spezielle Optionen von Composer, z. B. --optimize-autoloader oder --classmap-authoritative, können dann sofort verwendet werden.

Logging

Wenn Sie Logger auf eine hohe Stufe wie ERROR einstellen, können Sie den Overhead der Ausführungszeit und den Arbeitsspeicherverbrauch reduzieren.

Weitere Informationen finden Sie im Logging-Leitfaden.

Debugging und Profilerstellung

Wir empfehlen, Debugger- und Profiler-Tools zu deaktivieren, da sie in der Regel mit einem gewissen Mehraufwand bei der Ausführungszeit verbunden sind.

Vorab laden

Seit PHP 7.4 kann OPcache-Preloading verwendet werden, um Skripts im Arbeitsspeicher vorzuladen. Das geht noch einen Schritt weiter als das reguläre Caching.

Ein Skript muss so konzipiert sein, dass diese Funktion genutzt werden kann. Die PHP-Clientbibliothek ist jedoch nicht dafür ausgelegt, da es keine allgemeine Möglichkeit gibt, OPcache-Preloading zu implementieren. Außerdem ist der Kompromiss zwischen Arbeitsspeicherverbrauch und Leistungssteigerung sehr spezifisch für ein bestimmtes Projekt und eine bestimmte Ausführung.