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 dieser Best Practices gelten für alle Sprachen. In diesem Leitfaden werden die Best Practices behandelt, die speziell für PHP gelten.
Protobuf-Implementierung
Protobuf wird von gRPC und der Google Ads API für Anfragen- 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 Skript sprache mit vielen Betriebs modi, je nach Verwendung. PHP CGI (Common Gateway Interface) hat einen bemerkenswerten 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 für die Version.
Die Pakete für Versionen der Google Ads API, die nicht verwendet werden, können sicher 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 Sie dies programmatisch tun können.
Beispiel
Angenommen, Sie implementieren die Clientbibliothek, die nur die neueste API-Version (v25) verwendet, und Sie möchten die Unterstützung für die nicht verwendeten API-Versionen (v24 und v23) entfernen.
Definieren Sie in der Datei composer.json des Projekts ein Composer-Skript mit dem Namen
remove-google-ads-api-version-support, das das Dienstprogramm nutzt, das von
der Clientbibliothek in der Klasse
ApiVersionSupport bereitgestellt wird:
"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 v23 and v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 23 24
# 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 und die einzige verbleibende unterstützte Version ist V25:
# Supported Google Ads API versions:
V23
V24
V25
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
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 im Vergleich zur Produktion
PHP ist eine interpretierte Sprache da die Anweisungen zuerst kompiliert werden, bevor sie ausgeführt werden. Dies ist in der Regel von Vorteil, da sich die Quellen während der Entwicklung häufig ändern, während die Ausführungszeit 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 sehr empfehlenswert, da es sowohl die Leistung verbessert als auch die Stabilität erhöht, indem vorkompilierte Skriptanweisungen gespeichert werden.
OPcache ist die am häufigsten verwendete Lösung und standardmäßig verfügbar.
Automatisches Aufladen
Automatisches Aufladen ist üblich, da es sowohl die Leistung verbessert als auch die Stabilität erhöht, indem vorkompilierte Informationen zu Klassen geladen werden.
Die PHP-Clientbibliothek entspricht PSR-4 für
das automatische Aufladen und stellt die Definition als Teil der
composer.json
Datei 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 setzen, können Sie den Overhead der Ausführungszeit und den Speicherverbrauch reduzieren.
Weitere Informationen finden Sie im Leitfaden zum Logging.
Debugging und Profilerstellung
Wir empfehlen, Debugger- und Profiler-Tools zu deaktivieren, da sie in der Regel einen gewissen Overhead bei der Ausführungszeit verursachen.
Vorab laden
Seit PHP 7.4 kann OPcache Vorabladen verwendet werden, um Skripts im Arbeitsspeicher vorab zu laden. Dies geht einen Schritt weiter als das reguläre Caching.
Ein Skript muss so konzipiert sein, dass es diese Funktion nutzen kann. Die PHP-Clientbibliothek tut dies jedoch nicht, da es keine allgemeine Möglichkeit gibt, OPcache-Vorabladen zu implementieren. Der Kompromiss zwischen Arbeitsspeichernutzung und Leistungssteigerung ist sehr spezifisch für ein bestimmtes Projekt und eine bestimmte Ausführung.