PHP クライアント ライブラリを使用すると、最小限の構成で Google Ads API を簡単に操作できます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく依存します。
ほとんどの一般的なベスト プラクティスは、すべての言語に適用されます。このガイドでは、PHP 固有のパフォーマンスの最適化について説明します。
Protobuf と gRPC の実装
Protobuf は、gRPC と Google Ads API でリクエスト メッセージとレスポンス メッセージに使用されます。2 つの実装(純粋な PHP と C 拡張機能)が利用可能で、protobuf と grpc の両方の C 拡張機能により、シリアル化とネットワーク パフォーマンスが大幅に向上します。
詳細については、Protobuf ガイドとトランスポート ガイドをご覧ください。
PHP インタープリタの動作モード
PHP は汎用性の高いスクリプト言語であり、用途に応じて複数のオペレーション モードがあります。PHP-FPM(FastCGI Process Manager)または永続アプリケーション サーバーは、永続ワーカー プロセスがリクエスト間でキャッシュに保存されたバイトコード(OPcache 経由)とリソースを再利用できるため、標準の CGI よりも大きな利点があります。
PHP のバージョン
ランタイム パフォーマンスの改善を活用するために、定期的に新しい PHP バージョンにアップグレードします。サポートされている PHP バージョンのリストを確認する。
未使用の Google Ads API バージョン
クライアント ライブラリのすべてのバージョンは、複数の Google Ads API バージョンをサポートしています。クライアント ライブラリでサポートされている Google Ads API のバージョンごとに、そのバージョン専用のパッケージがあります。
アプリケーションで使用されていない Google Ads API のバージョン専用のパッケージは、クライアント ライブラリから安全に削除できます。メモリ使用量を削減し、実行を高速化するために、クライアント ライブラリには、未使用の API バージョンをプログラムで削除するユーティリティが用意されています。
例
最新の API バージョン(v26)のみを使用するクライアント アプリケーションを実装し、未使用の API バージョン(v23、v24、v25)のサポートを削除するとします。
プロジェクトの 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 unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
23 \
24 \
25
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
次の実行出力例は、ファイルサイズの削減を示しています。V26 は、サポートされている唯一のバージョンです。
# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M ./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
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# Vendor folder size:
60M ./vendor
開発環境と本番環境
PHP は、実行前に命令をコンパイルするインタプリタ言語です。これは、ソースファイルが頻繁に変更され、実行時間がそれほど重要でない開発時に有利です。本番環境では、安定性とパフォーマンスが主な懸念事項になります。
キャッシュ
キャッシュ保存は、プリコンパイルされたスクリプト バイトコードを共有メモリに保存することで、パフォーマンスを向上させ、安定性を高めるため、推奨されます。
OPcache は標準ソリューションであり、デフォルトで PHP にバンドルされています。
オートチャージ
自動読み込みは、事前コンパイルされたクラスマップ情報を読み込むことで、パフォーマンスと安定性を向上させます。
PHP クライアント ライブラリは、自動読み込みの PSR-4 に準拠しており、composer.json ファイルの一部として定義を提供します。--optimize-autoloader や --classmap-authoritative などの専用の Composer CLI オプションは、本番環境ビルドですぐに使用できます。
ロギング
本番環境でロガーを ERROR や WARNING などの高いしきい値に設定すると、I/O オーバーヘッドとメモリ消費量を削減できます。
詳しくは、ロギング ガイドをご覧ください。
デバッグとプロファイリング
本番環境では、デバッガとプロファイラ拡張機能(Xdebug など)を無効にします。これらは、実行オーバーヘッドが大きいためです。
プリロード
PHP 7.4 以降では、OPcache プリロードを使用して、サーバーの起動時にスクリプトをメモリにプリロードできます。これは、標準の OPcache キャッシュよりも一歩進んだものです。
プリロード スクリプトは、アプリケーション専用に設計する必要があります。PHP クライアント ライブラリには、汎用のプリロード スクリプトは用意されていません。メモリ使用量とパフォーマンス向上のトレードオフは、プロジェクトとデプロイ環境ごとに異なるためです。