パフォーマンス

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 バージョン v20 のみを使用するクライアント ライブラリを実装していて、使用されていない API バージョン v19v18 のサポートを削除するとします。

プロジェクトの 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 v18 and v19 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 18 19

# 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 MB 削減され、サポートされているバージョンが V20 のみになったことを示しています。

# Supported Google Ads API versions:
V18
V19
V20
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 18 of Google Ads API...
Done
Removing support for the version 19 of Google Ads API...
Done
# Supported Google Ads API versions:
V20
# Vendor folder size:
60M     ./vendor

開発環境と本番環境

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

キャッシュ

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

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

オートチャージ

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

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

ロギング

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

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

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

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

プリロード

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

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