Perl のクライアント ライブラリを利用すると、最小限の構成で Google Ads API を簡単に操作できます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく依存します。
こちらのベスト プラクティスのほとんどは、すべての言語に適用できます。このガイドでは、Perl に固有のコードについて説明します。
アプリケーションのプロファイリング
CPU とメモリの両方の使用状況についてアプリケーションをプロファイリングして、パフォーマンスのボトルネックを特定します。Devel::NYTProf は、機能豊富な Perl ソースコード プロファイラです。
Perl のバージョン
全体的なパフォーマンスが向上するため、新しい Perl バージョンに定期的にアップグレードすることをおすすめします。最新の Perl バージョンとライブラリに最低限必要なバージョンについては、こちらをご覧ください。このページをご覧ください。
ロギング
大量のロギングを行うと、実行時間が大幅に短縮され、メモリが大量に消費される可能性があります。本番環境のコードでは、ロギングレベルを WARN
に設定することをおすすめします。
概要ロガーと詳細ロガーの構成について詳しくは、ロギングガイドをご覧ください。
Search または SearchStream メソッド
Google Ads API では、オブジェクトを取得するための主なメソッドとして、Search
(ページ分けを使用)と SearchStream
(ストリーミングを使用)の 2 つが用意されています。SearchStream
は Search
メソッドよりもパフォーマンスが優れていますが、状況によっては Search
メソッドが推奨される場合もあります。
この 2 つの方法の詳細については、こちらをご覧ください。
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 時間以上に設定できますが、API が非常に長時間実行リクエストをタイムアウトして DEADLINE_EXCEEDED
エラーを返す場合があります。このエラーが発生した場合は、リクエストを分割し、チャンクを並行して実行します。これにより、長時間実行リクエストが失敗する状況を回避できます。回復するには、最初からリクエストを再度トリガーする必要があります。