Perl 用クライアント ライブラリを使用すると、Google Ads API とのやり取りが簡単になり、ユーザー側の設定も最小限で済みます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく依存します。
ほとんどの一般的なベスト プラクティスは、すべての言語に適用できます。このページでは、Perl 固有のパフォーマンス ガイダンスについて説明します。
アプリケーションをプロファイリングする
CPU とメモリの両方の使用量についてアプリをプロファイリングして、パフォーマンスのボトルネックを特定します。Devel::NYTProf は、実行時間の分析に使用できる機能豊富な Perl ソースコード プロファイラです。
Perl のバージョン
ランタイム パフォーマンスの改善を活用するには、定期的に新しい Perl バージョンにアップグレードします。CPAN Perl ソース リリースから最新リリースをダウンロードし、README の要件でライブラリの最小要件バージョンを確認します。
ロギング
ロギングを広範囲に行うと、実行時間のペナルティとメモリ消費量が大幅に増加する可能性があります。本番環境のコードのロギングレベルを WARN に設定します。
概要ロガーと詳細ロガーの構成の詳細については、ロギング ガイドをご覧ください。
SearchStream と Search の比較
Google Ads API には、オブジェクトを取得するための主なメソッドが 2 つあります。Search(ページネーションを使用)と SearchStream(ストリーミングを使用)です。SearchStream は Search よりもパフォーマンスが優れていますが、Search の方が適しているシナリオもあります。
2 つの方法の詳細な比較については、ストリーミング ガイドをご覧ください。
ペイロードの最適化とバッチ処理
ネットワーク オーバーヘッドとメモリ使用量を最小限に抑えるには:
- Google 広告クエリ言語(GAQL)クエリで、アプリケーションに必要な特定のフィールドのみをリクエストします。
- 各変更に対して個別のリクエストを送信するのではなく、複数の変更オペレーションを 1 つの
mutateリクエストにグループ化します。
HTTP タイムアウト
Perl クライアント ライブラリには、クライアント レベルで HTTP タイムアウトを構成するための設定が用意されています。
my $api_client = Google::Ads::GoogleAds::Client->new({
# Set HTTP timeout to 5 minutes (300 seconds).
http_timeout => 300,
});
デフォルト値は 3600 秒(1 時間)です。これは Constants.pm の DEFAULT_HTTP_TIMEOUT 定数に基づいて設定されます。API 呼び出しの最大時間を短く制限する必要がある場合は、カスタム クライアント タイムアウトを設定します。
タイムアウトは 2 時間以上に設定できますが、API は実行時間が非常に長いリクエストをタイムアウトして DEADLINE_EXCEEDED エラーを返すことがあります。このエラーが発生した場合は、リクエストを小さなチャンクに分割して並列で実行します。これにより、長時間実行されるリクエストが失敗し、復元する唯一の方法が最初からリクエストを再度トリガーすることになる状況を回避できます。