パフォーマンス

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 広告 API バージョンをサポートしています。クライアント ライブラリでサポートされている Google Ads API のバージョンごとに、そのバージョン専用のパッケージがあります。

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

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

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

# 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 縮小され、残りのサポート対象バージョンは V18 のみであることがわかります。

# Supported Google Ads API versions:
V16
V17
V18
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 16 of Google Ads API...
Done
Removing support for the version 17 of Google Ads API...
Done
# Supported Google Ads API versions:
V18
# Vendor folder size:
60M     ./vendor

開発環境と本番環境

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

キャッシュ

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

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

オートチャージ

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

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

ロギング

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

詳細については、ロギング ガイドをご覧ください。

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

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

プリロード

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

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