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 allgemeinen Best Practices gelten für alle Sprachen. In diesem Leitfaden werden Leistungsoptimierungen speziell für PHP behandelt.
Protobuf- und gRPC-Implementierungen
Protobuf wird von gRPC und der Google Ads API für Anfrage- und Antwortnachrichten verwendet. Es sind zwei Implementierungen verfügbar (reines PHP und eine C-Erweiterung). Die C-Erweiterungen für protobuf und grpc bieten eine wesentlich bessere Serialisierungs- und Netzwerkleistung.
Weitere Informationen finden Sie im Protobuf-Leitfaden und im Transportleitfaden.
Betriebsmodus des PHP-Interpreters
PHP ist eine vielseitige Scriptsprache mit mehreren Betriebsmodi je nach Verwendung. PHP-FPM (FastCGI Process Manager) oder persistente Anwendungsserver haben einen deutlichen Vorteil gegenüber dem Standard-CGI, da persistente Worker-Prozesse zwischen Anfragen zwischengespeicherten Bytecode (über OPcache) und Ressourcen wiederverwenden können.
PHP-Version
Führen Sie regelmäßig ein Upgrade auf eine neuere PHP-Version durch, um von Verbesserungen der Laufzeitleistung zu profitieren. 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 von Ihrer Anwendung nicht verwendet werden, können problemlos aus der Clientbibliothek entfernt werden. Um den Speicherbedarf zu verringern und die Ausführung zu beschleunigen, bietet die Clientbibliothek ein Dienstprogramm zum programmatischen Entfernen nicht verwendeter API-Versionen.
Beispiel
Angenommen, Sie implementieren eine Clientanwendung, die nur die neueste API-Version (v25) verwendet, und Sie möchten die Unterstützung für die nicht verwendeten API-Versionen (v22, v23 und v24) entfernen.
Definieren Sie in der Datei composer.json Ihres Projekts ein Composer-Skript mit dem Namen remove-google-ads-api-version-support, das das von der Clientbibliothek in ApiVersionSupport bereitgestellte Dienstprogramm nutzt:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
Führen Sie dann das Composer-Script mit den Versionsnummern als Parameter aus und geben Sie 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 unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v22, v23, and
# v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
22 \
23 \
24
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
Die folgende Beispielausgabe zeigt die Reduzierung der Dateigröße, wobei V25 die einzige verbleibende unterstützte Version ist:
# Supported Google Ads API versions:
V22
V23
V24
V25
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
# Supported Google Ads API versions:
V25
# Vendor folder size:
60M ./vendor
Entwicklung und Produktion
PHP ist eine interpretiert Sprache, die Anweisungen vor der Ausführung kompiliert. Das ist während der Entwicklung von Vorteil, wenn sich Quelldateien häufig ändern und die Ausführungszeit weniger kritisch ist. In Produktionsumgebungen stehen Stabilität und Leistung im Vordergrund.
Cache
Caching wird empfohlen, da es die Leistung verbessert und die Stabilität erhöht, indem vorkompilierter Skript-Bytecode im gemeinsam genutzten Speicher gespeichert wird.
OPcache ist die Standardlösung und wird standardmäßig mit PHP gebündelt.
Automatisches Aufladen
Automatisches Laden verbessert die Leistung und Stabilität, da vorkompilierte Informationen zur Klassenübersicht 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 Composer-CLI-Optionen wie --optimize-autoloader oder --classmap-authoritative können dann sofort in Produktions-Builds verwendet werden.
Logging
Wenn Sie Logger in der Produktion auf einen höheren Schwellenwert wie ERROR oder WARNING festlegen, können Sie den E/A-Aufwand und die Arbeitsspeichernutzung reduzieren.
Weitere Informationen finden Sie im Logging-Leitfaden.
Debugging und Profilerstellung
Deaktivieren Sie Debugger- und Profiler-Erweiterungen (z. B. Xdebug) in der Produktion, da sie einen erheblichen Ausführungsaufwand verursachen.
Vorab laden
Seit PHP 7.4 kann OPcache-Preloading verwendet werden, um Skripts beim Serverstart in den Arbeitsspeicher zu laden. Das geht noch einen Schritt weiter als das standardmäßige OPcache-Caching.
Ein Preload-Skript muss speziell für Ihre Anwendung entwickelt werden. Die PHP-Clientbibliothek bietet kein generisches Preload-Script, da das Verhältnis zwischen Arbeitsspeichernutzung und Leistungssteigerung für jedes Projekt und jede Bereitstellungsumgebung spezifisch ist.