Leistung

Die PHP-Clientbibliothek erleichtert die Interaktion mit der Google Ads API bei minimalem Konfigurationsaufwand Ihrerseits. Die Leistung hängt jedoch stark davon ab, wie die Bibliothek verwendet und eingebunden wird.

Die meisten dieser Best Practices gelten für alle Sprachen. In diesem Leitfaden werden jene behandelt, die für PHP spezifisch sind.

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 aufweist.

Weitere Informationen finden Sie im Protobuf-Leitfaden.

Betriebsmodus des PHP-Interpreters

PHP ist eine vielseitige Skriptsprache und bietet je nach Nutzung viele Betriebsmodi. PHP CGI (Common Gateway Interface) hat einen großen Vorteil, da es Ressourcen zwischen Ausführungen teilen kann.

PHP-Version

Es empfiehlt sich, regelmäßig ein Upgrade auf eine neuere PHP-Version durchzuführen, da diese Version in der Regel eine bessere Gesamtleistung aufweist. 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 für die jeweilige Version.

Die Pakete, die für nicht verwendete Google Ads API-Versionen vorgesehen sind, können problemlos aus der Clientbibliothek entfernt werden. Da es nützlich sein kann, die Ausführung zu beschleunigen oder den Speicherbedarf zu reduzieren, bietet die Clientbibliothek Dienstprogramme, mit denen dies programmatisch erledigt werden kann.

Beispiel

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

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

"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 v15 and v16 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 15 16

# 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 folgende Ausgabe der Beispielausführung deutet auf eine Reduzierung der Dateigröße um 50 MB hin. Die einzige verbleibende Version ist V17:

# Supported Google Ads API versions:
V15
V16
V17
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 15 of Google Ads API...
Done
Removing support for the version 16 of Google Ads API...
Done
# Supported Google Ads API versions:
V17
# Vendor folder size:
60M     ./vendor

Entwicklung vs. Produktion

PHP ist eine interpretierte Sprache, bei der Anleitungen vor der Ausführung zuerst kompiliert werden. Dies ist in der Regel von Vorteil, da sich Quellen während der Entwicklung häufig ändern, während die Ausführungszeit nicht so wichtig ist. Während der Produktion ist das Gegenteil der Fall, da Stabilität und Leistung im Mittelpunkt stehen.

Cache

Caching ist eine gängige Methode und wird dringend empfohlen, da es sowohl die Leistung als auch die Stabilität durch das Speichern vorkompilierter Skriptanweisungen erhöht.

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

Automatisches Aufladen

Das automatische Laden ist üblich, da dadurch sowohl die Leistung als auch die Stabilität durch das Laden von vorkompilierten Informationen über Klassen verbessert werden.

Die PHP-Clientbibliothek entspricht beim automatischen Laden dem PSR-4 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

Das Festlegen von Protokollierungen auf eine hohe Ebene wie ERROR kann dazu beitragen, den Aufwand für die Ausführungszeit und den Arbeitsspeicherverbrauch zu reduzieren.

Weitere Informationen finden Sie im Leitfaden für die Protokollierung.

Fehlerbehebung und Profilerstellung

Wir empfehlen, Debugger- und Profiler-Tools zu deaktivieren, da diese normalerweise einen gewissen Ausführungsaufwand verursachen.

Vorab laden

Seit PHP 7.4 kann die OPcache-Vorabladung genutzt werden, um Skripts im Arbeitsspeicher vorab zu laden, was das reguläre Caching einen Schritt weiter geht.

Um diese Funktion nutzen zu können, muss ein Skript entworfen werden, um diese Funktion nutzen zu können. Dies ist bei der PHP-Clientbibliothek jedoch nicht der Fall, da es keine allgemeine Methode zum Implementieren der OPcache-Vorabladung gibt und der Kompromiss zwischen Arbeitsspeichernutzung und Leistungssteigerung für ein bestimmtes Projekt und eine bestimmte Ausführung sehr spezifisch ist.