パフォーマンス

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

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

Protobuf の実装

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

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

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

PHP は汎用性の高いスクリプト言語で、用途に応じた多くのオペレーション モードがあります。PHP CGI(共通ゲートウェイ インターフェース)には、実行間でリソースを共有できるため、大きな利点があります。

PHP のバージョン

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

未使用の Google Ads API バージョン

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

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

最新の API バージョン(v16)のみを使用するクライアント ライブラリを実装していて、未使用の API バージョン(v15v14)のサポートを削除するとします。

プロジェクトの composer.json ファイルで、ApiVersionSupport クラスで、クライアント ライブラリによって提供されるユーティリティを利用する Composer スクリプト(remove-google-ads-api-version-support)を定義します。

"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 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

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

開発環境と本番環境

PHP は、命令を実行する前にまず命令をコンパイルするという点で、解釈言語です。開発中は、実行時間がそれほど重要ではないときにソースが変わることが多いため、通常はこの方法が便利です。ただし、安定性とパフォーマンスが主な懸念事項となるため、本番環境ではその逆が起こります。

キャッシュ

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

OPcache は最もよく使用されるソリューションで、デフォルトで使用できます。

オートチャージ

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

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

ロギング

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

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

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

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

プリロード

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

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