パフォーマンス

Perl のクライアント ライブラリを利用すると、最小限の構成で Google Ads API を簡単に操作できます。ただし、パフォーマンスはライブラリの使用方法と統合方法に大きく依存します。

こちらのベスト プラクティスのほとんどは、すべての言語に適用できます。このガイドでは、Perl に固有のコードについて説明します。

アプリケーションのプロファイリング

CPU とメモリの両方の使用状況についてアプリケーションをプロファイリングして、パフォーマンスのボトルネックを特定します。Devel::NYTProf は、機能豊富な Perl ソースコード プロファイラです。

Perl のバージョン

全体的なパフォーマンスが向上するため、新しい Perl バージョンに定期的にアップグレードすることをおすすめします。最新の Perl バージョンとライブラリに最低限必要なバージョンについては、こちらをご覧ください。このページをご覧ください。

ロギング

大量のロギングを行うと、実行時間が大幅に短縮され、メモリが大量に消費される可能性があります。本番環境のコードでは、ロギングレベルを WARN に設定することをおすすめします。

概要ロガーと詳細ロガーの構成について詳しくは、ロギングガイドをご覧ください。

Search または SearchStream メソッド

Google Ads API では、オブジェクトを取得するための主なメソッドとして、Search(ページ分けを使用)と SearchStream(ストリーミングを使用)の 2 つが用意されています。SearchStreamSearch メソッドよりもパフォーマンスが優れていますが、状況によっては Search メソッドが推奨される場合もあります。

この 2 つの方法の詳細については、こちらをご覧ください。

HTTP タイムアウト

Perl クライアント ライブラリは、クライアント レベルで HTTP タイムアウトを設定するためのサーフェスを提供します。

my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
  # Set HTTP timeout to 5 minutes.
  http_timeout   => 300
});

デフォルト値は、Constants.pmDEFAULT_HTTP_TIMEOUT の設定に基づいて設定されます。API 呼び出しの最大時間の上限を短くする必要がある場合は、小さい値を設定します。

タイムアウトを 2 時間以上に設定できますが、API が非常に長時間実行リクエストをタイムアウトして DEADLINE_EXCEEDED エラーを返す場合があります。このエラーが発生した場合は、リクエストを分割し、チャンクを並行して実行します。これにより、長時間実行リクエストが失敗する状況を回避できます。回復するには、最初からリクエストを再度トリガーする必要があります。