パフォーマンス

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

ほとんどの一般的なベスト プラクティスは、すべての言語に適用されます。このページでは、Perl に固有のパフォーマンス ガイダンスについて説明します。

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

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

Perl のバージョン

ランタイム パフォーマンスの改善を活用するには、定期的に新しい Perl バージョンにアップグレードしてください。CPAN Perl ソースリリースから最新リリースをダウンロードし、README の要件でライブラリの最小要件を確認します。

ロギング

広範なロギングを行うと、実行時間とメモリ消費量が大幅に増加する可能性があります。本番環境のコードのロギングレベルを WARN に設定します。

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

SearchStream と Search の比較

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

2 つの方法の詳細な比較については、ストリーミング ガイドをご覧ください。

ペイロードの最適化とバッチ処理

ネットワーク オーバーヘッドとメモリ消費量を最小限に抑えるには:

  • Google 広告クエリ言語(GAQL)クエリで、アプリケーションに必要な特定のフィールドのみをリクエストします。
  • 変更ごとに個別のリクエストを送信するのではなく、複数の mutate オペレーションを 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 エラーを返すことがあります。このエラーが発生した場合は、リクエストを小さなチャンクに分割して並列で実行します。これにより、長時間実行されるリクエストが失敗し、復元するにはリクエストを最初から再度トリガーするしかないという状況を回避できます。