パフォーマンス

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 バージョン v17 のみを使用するクライアント ライブラリを実装し、未使用の API バージョン v16v15 のサポートを削除するとします。

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

# 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 削減されることを示しています。サポートされるバージョンは V17 のみです。

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

開発環境と本番環境

PHP は、命令を実行する前に最初にコンパイルするという点で、解釈言語です。開発時にはソースが変更されることが多いため、実行時間がそれほど重要ではないため、通常はこの方法が有用です。ただし、本番環境では安定性とパフォーマンスが主な懸念事項となるため、反対が当てはまります。

キャッシュ

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

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

オートチャージ

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

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

ロギング

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

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

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

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

プリロード

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

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