Leistung

Die PHP-Clientbibliothek vereinfacht die Interaktion mit der Google Ads API bei minimalem Konfigurationsaufwand. 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 die für PHP spezifischen Themen behandelt.

Protokollzwischenspeicher-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 Skriptsprache, die je nach Verwendung viele Vorgangsmodi bietet. PHP CGI (Common Gateway Interface) hat einen erheblichen Vorteil, da es Ressourcen zwischen Ausführungen teilen kann.

PHP-Version

Es empfiehlt sich, regelmäßig auf eine neuere PHP-Version zu aktualisieren, da diese in der Regel eine bessere Gesamtleistung erzielt. 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 für nicht verwendete Versionen der Google Ads API 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, die dies programmatisch tun.

Beispiel

Angenommen, Sie implementieren eine Clientbibliothek, die nur die neueste API-Version (v16) verwendet, und möchten die Unterstützung für die nicht verwendeten API-Versionen v15 und v14 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 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 v14 and v15 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 14 15

# 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 Beispielausgabe zeigt eine Reduzierung der Dateigröße um 50 MB. Die einzige unterstützte Version ist V16:

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

Entwicklung und Produktion im Vergleich

PHP ist eine interpretierte Sprache. Vor der Ausführung werden Anleitungen kompiliert. Dies ist in der Regel vorteilhaft, da sich die Quellen während der Entwicklungszeit häufig ändern, während die Ausführungszeit nicht so entscheidend ist. Bei der Produktion ist jedoch das Gegenteil der Fall, da Stabilität und Leistung zu den Hauptaspekten gehören.

Cache

Caching ist üblich und wird dringend empfohlen, da es sowohl die Leistung verbessert 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

Autoload wird häufig eingesetzt, da es sowohl die Leistung verbessert als auch die Stabilität erhöht, indem vorkompilierte Informationen über 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. Anschließend können bestimmte Composer-Optionen wie --optimize-autoloader oder --classmap-authoritative sofort verwendet werden.

Logging

Wenn Sie Logger auf eine hohe Ebene wie ERROR festlegen, können Sie den Aufwand für die Ausführungszeit und den Arbeitsspeicherverbrauch reduzieren.

Weitere Informationen finden Sie in der Anleitung für die Protokollierung.

Fehlerbehebung und Profilerstellung

Wir empfehlen, Debugger- und Profiler-Tools zu deaktivieren, da sie normalerweise mit einem gewissen Ausführungszeitaufwand verbunden sind.

Vorab laden

Seit PHP 7.4 kann OPcache-Vorabladen verwendet werden, um Skripts vorab in den Speicher zu laden. Damit gehen Sie einen Schritt weiter als beim regulären Caching.

Um diese Funktion nutzen zu können, muss ein Skript entwickelt werden. Die PHP-Clientbibliothek hingegen nicht, da es keine allgemeine Möglichkeit zur Implementierung der OPcache-Vorabladung gibt und der Kompromiss zwischen Speichernutzung und Leistungssteigerung sehr spezifisch für ein bestimmtes Projekt und eine bestimmte Ausführung ist.