パフォーマンス

PHP クライアント ライブラリを使用すると、最小限の構成で Google Ads API とのやり取りを簡単に行うことができます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく依存します。

これらのベスト プラクティスのほとんどは、すべての言語に適用できます。このガイドでは、PHP 固有のものを説明します。

Protobuf の実装

Protobuf は、リクエスト メッセージとレスポンス メッセージに gRPC と Google Ads API で使用されます。2 つの実装が利用可能ですが、C で記述された実装の方がパフォーマンスが優れています。

詳細については、Protobuf ガイドをご覧ください。

PHP インタープリタの動作モード

PHP は汎用性の高いスクリプト言語であり、用途に応じて多くのオペレーション モードがあります。PHP CGI(Common Gateway Interface)には、実行間でリソースを共有できるという大きな利点があります。

PHP のバージョン

通常、新しい PHP バージョンには全体的なパフォーマンスの改善が含まれているため、定期的にアップグレードすることをおすすめします。サポートされている PHP バージョンのリスト。

使用されていない Google Ads API バージョン

クライアント ライブラリのすべてのバージョンで、複数の Google Ads API バージョンがサポートされています。クライアント ライブラリでサポートされている Google Ads API の各バージョンには、そのバージョン専用のパッケージがあります。

使用されていない Google Ads API のバージョン専用のパッケージは、クライアント ライブラリから安全に削除できます。実行の高速化やメモリ使用量の削減に役立つため、クライアント ライブラリには、プログラムでこれを行うためのユーティリティが用意されています。

例

最新の API バージョン v25 のみを使用するクライアント ライブラリを実装していて、使用されていない API バージョン v24 と v23 のサポートを削除するとします。

プロジェクトの composer.json ファイルで、クライアント ライブラリが提供するユーティリティを活用する Composer スクリプト(remove-google-ads-api-version-support という名前)をクラス ApiVersionSupport で定義します。

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

次に、バージョン番号をパラメータとして Composer スクリプトを使用し、ステータス メッセージを出力します。

# 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

次の実行出力例は、ファイルサイズが 50M 削減され、サポートされているバージョンが 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

開発環境と本番環境

PHP は、実行前にまず命令をコンパイルするインタプリタ言語です。通常、開発時にはソースが頻繁に変更される一方、実行時間はそれほど重要ではないため、これは有利です。ただし、本番環境では安定性とパフォーマンスが主な懸念事項となるため、その逆になります。

キャッシュ

キャッシュ保存は、プリコンパイルされたスクリプト命令を保存することでパフォーマンスと安定性の両方を向上させるため、一般的であり、強く推奨されます。

OPcache は最も一般的に使用されているソリューションであり、デフォルトで使用できます。

オートチャージ

自動読み込みは、クラスに関する事前コンパイルされた情報を読み込むことで、パフォーマンスと安定性の両方を向上させるため、一般的です。

PHP クライアント ライブラリは、自動読み込みの PSR-4 に準拠しており、composer.json ファイルの一部として定義を提供します。Composer の専用オプション(--optimize-autoloader や --classmap-authoritative など)は、すぐに使用できます。

ロギング

ロガーを ERROR などの高いレベルに設定すると、実行時間のオーバーヘッドとメモリ消費量を削減できます。

詳しくは、ロギング ガイドをご覧ください。

デバッグとプロファイリング

デバッガとプロファイラ ツールは通常、実行時間のオーバーヘッドを伴うため、無効にすることをおすすめします。

プリロード

PHP 7.4 以降では、OPcache プリローディングを使用して、通常のキャッシュ保存よりも一歩進んだスクリプトをメモリにプリロードできます。

この機能を活用するようにスクリプトを設計する必要がありますが、PHP クライアント ライブラリはそうではありません。OPcache プリロードを実装する一般的な方法がなく、メモリ使用量とパフォーマンスの向上のトレードオフが特定のプロジェクトと実行に大きく依存するためです。