PHP クライアント ライブラリを使用すると、最小限の構成で Google Ads API を簡単に操作できます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく依存します。
こちらのベスト プラクティスのほとんどは、すべての言語に適用できます。このガイドでは、PHP に固有の手順について説明します。
Protobuf の実装
Protobuf は、gRPC と Google Ads API でリクエスト メッセージとレスポンス メッセージに使用されます。2 つの実装を使用できますが、C で記述された実装の方がパフォーマンスが高くなります。
詳細については、プロトコル バッファ ガイドをご覧ください。
PHP インタープリタのオペレーション モード
PHP は多用途のスクリプト言語で、用途に応じて多くのオペレーション モードがあります。PHP CGI(Common Gateway Interface)には、実行間でリソースを共有できるため、大きな利点があります。
PHP のバージョン
全体的なパフォーマンスが向上するため、新しい PHP バージョンに定期的にアップグレードすることをおすすめします。サポートされている PHP バージョンのリスト。
未使用の Google Ads API バージョン
クライアント ライブラリの全バージョンは、Google Ads API の複数のバージョンをサポートしています。クライアント ライブラリでサポートされている Google Ads API のバージョンごとに、専用のパッケージが用意されています。
使用されていない Google Ads API のバージョン専用のパッケージは、クライアント ライブラリから安全に削除できます。クライアント ライブラリには、実行の高速化やメモリ フットプリントの削減に役立つため、プログラムでそのためのユーティリティが用意されています。
例
最新の API バージョン v15
のみを使用するクライアント ライブラリを実装していて、未使用の API バージョン v14
と v13
のサポートを削除するとします。
プロジェクトの 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 v13 and v14 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 13 14
# 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 削減され、サポートされるバージョンは V15
のみであることを示しています。
# Supported Google Ads API versions:
V13
V14
V15
# Vendor folder size:
110M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 13 of Google Ads API...
Done
Removing support for the version 14 of Google Ads API...
Done
# Supported Google Ads API versions:
V15
# Vendor folder size:
60M ./vendor
開発環境か本番環境か
PHP はインタープリタ言語であり、命令を実行する前にまず命令をコンパイルします。開発時には、実行時間がそれほど重要ではないときにソースが変更されることが多いため、これは通常便利です。ただし、本番環境では安定性とパフォーマンスが主な懸念事項になるため、この逆が当てはまります。
キャッシュ
キャッシングは、プリコンパイルされたスクリプトの命令を保存することでパフォーマンスと安定性の両方が向上するため、一般的であり、強く推奨されています。
OPcache は最もよく使用されるソリューションで、デフォルトで使用できます。
オートチャージ
オートチャージが一般的です。これは、クラスに関するプリコンパイルされた情報を読み込むことで、パフォーマンスと安定性の両方が向上するためです。
PHP クライアント ライブラリは、自動読み込みに関して PSR-4 に準拠し、composer.json
ファイルの一部として定義を提供します。Composer の専用オプション(--optimize-autoloader
や --classmap-authoritative
など)は、そのまま使用できます。
ロギング
ロガーを ERROR
などの上位レベルに設定すると、実行時間のオーバーヘッドとメモリ消費量を削減できます。
詳細については、ロギングガイドをご覧ください。
デバッグとプロファイリング
デバッガとプロファイラのツールは、通常は実行時間のオーバーヘッドが伴うため、無効にすることをおすすめします。
プリロード
PHP 7.4 以降では、OPcache のプリロードを使用してメモリにスクリプトをプリロードし、通常のキャッシュよりも 1 ステップ進めて済みます。
この機能を利用するにはスクリプトを設計する必要がありますが、PHP クライアント ライブラリには OPcache のプリロードを実装する一般的な方法がないため、そうした機能がありません。また、メモリ使用量とパフォーマンス向上のトレードオフは、特定のプロジェクトと実行に特化しています。