Perl のクライアント ライブラリを使用すると、最小限の構成で Google Ads API を簡単に操作できます。ただし、パフォーマンスは、ライブラリの使用方法と統合方法に大きく依存します。
これらのベスト プラクティスのほとんどは、すべての言語に適用できます。このガイドでは、Perl に固有の機能について説明します。
アプリケーションのプロファイリング
CPU とメモリの使用量の両方についてアプリケーションをプロファイリングして、パフォーマンスのボトルネックを特定します。Devel::NYTProf は、探索可能な強力で機能豊富な Perl ソースコード プロファイラです。
Perl のバージョン
通常、新しい Perl バージョンの方が全体的なパフォーマンスが向上するため、新しいバージョンに定期的にアップグレードすることをおすすめします。Perl の最新バージョンと、このライブラリに必要な最小バージョンについては、こちらとこちらのページをご覧ください。
ロギング
ロギングを多用すると、実行時間の大幅な増加とメモリ消費が発生する可能性があります。本番環境のコードでは、ロギング レベルを WARN
に設定することをおすすめします。
概要ロガーと詳細ロガーの構成について詳しくは、ロギング ガイドをご覧ください。
Search メソッドまたは SearchStream メソッド
Google Ads API には、オブジェクトを取得するための主なメソッドが 2 つあります。Search
(ページネーションを使用する)と SearchStream
(ストリーミングを使用する)です。SearchStream
は Search
メソッドよりもパフォーマンスが優れていますが、Search
メソッドが優先されるシナリオもあります。
これらの方法について詳しくは、こちらをご覧ください。
HTTP タイムアウト
Perl クライアント ライブラリには、クライアント レベルで HTTP タイムアウトを設定するサーフェスが用意されています。
my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
# Set HTTP timeout to 5 minutes.
http_timeout => 300
});
デフォルト値は、Constants.pm の DEFAULT_HTTP_TIMEOUT
設定に基づいて設定されます。API 呼び出しの最大時間を短く制限する必要がある場合は、値を小さく設定します。
タイムアウトを 2 時間以上に設定できますが、非常に長時間実行されるリクエストでタイムアウトが発生し、DEADLINE_EXCEEDED
エラーが返されることがあります。このエラーが発生した場合は、リクエストを分割してチャンクを並行して実行します。これにより、長時間実行リクエストが失敗し、復元する唯一の方法がリクエストを最初から再度トリガーすることになる状況を回避できます。