Google 広告 .NET クライアント ライブラリを使用すると、アプリと 最小限の構成で Google Ads API を使用できます。全体として パフォーマンスは、ライブラリがどのように使用され、 。
このガイドでは、.NET アプリに固有のパフォーマンスの最適化について説明します。 最良のソリューションを 組織に一般的に適用できるベスト プラクティス Google Ads API。
可能な限り GoogleAdsClient を再利用する
GoogleAdsClient
は、API 呼び出しを行うユーザーのセッションを表します。提供するサービス
次のような最適化手法があります。
- gRPC チャネルのキャッシュ保存 API サービスで使用したりできますこれにより、最初の API を作成するときの設定時間が短縮されます。 できます。
- 可能な限りアクセス トークンを再利用する。これにより アクセス トークンを更新するために Google 広告 .NET クライアント ライブラリが行う必要がある処理について説明します。
可能であれば、MCC レベルのアカウントのアクセス トークンを使用する
- MCC アカウント単位で発行されたアクセス トークンがある場合は、
そのアカウントのすべての Google 広告クライアント アカウントに対して API 呼び出しを行う
継承されます。
GoogleAdsClient
インスタンスの再利用と組み合わせると、 クライアント ライブラリが実行する必要があるラウンド トリップの回数をさらに 更新することもできます。
可能な限り Search ではなく SearchStream を使用する
GoogleAdsService.Search
でできることは、
ページ分けされた複数のリクエストを送信してレポート全体をダウンロードする
GoogleAdsService.SearchStream
単一のリクエストを送信して Google Ads API との永続的な接続を開始する
レポートサイズに関係なく
常に同じですネットワークのラウンドトリップ時間が
Search
レスポンスの各ページを個別にリクエストするために必要な
SearchStream
を使用すると、ページングよりもパフォーマンスが向上する場合があります。詳しくは、
検索と
SearchStream:
詳しく説明します
アクセス トークンの更新を手動で管理する
特定の環境(Google Cloud
再利用することが不可能な場合があります。
GoogleAdsClient
個のインスタンス。このような環境には、独自のベスト プラクティスが
ベスト プラクティスをいくつか紹介します。そのような場合は、
GoogleAdsConfig
クラスを使用して、次のように独自のアクセス トークンの更新を行います。
// Create your own config class by extending the GoogleAdsConfig class.
class MyGoogleAdsConfig : GoogleAdsConfig
{
public MyGoogleAdsConfig() : base()
{
// Disable the library's in-built channel caching mechanism.
this.UseChannelCache = false;
}
protected override ICredential CreateCredentials()
{
// TODO: Create your own ICredentials object here. You may refer to the
// default implementation of GoogleAdsConfig::CreateCreateCredentials
// for an example.
}
}
// Use your own config class when initializing the GoogleAdsClient instance.
MyGoogleAdsConfig myconfig = new MyGoogleAdsConfig();
GoogleAdsClient client = new GoogleAdsClient(myconfig);
リリースビルド用にコンパイルする
必ずRelease 構成 サーバーへのデプロイ時に発生しますデバッグ構成を使用すると、 完全なシンボリック デバッグ情報でコンパイルされ、最適化は行われません。
アプリのプロファイリングを行う
CPU 使用率とメモリ使用量の両方についてアプリをプロファイリングしてパフォーマンスを特定する 最適化できますVisual Studio は、 診断ツール アプリのプロファイリングを支援します他にも商用プロファイリング ツール 説明します。
非同期メソッドを使用する
async-await を使用した非同期プログラミング パラダイム パフォーマンスのボトルネックを回避し、アプリケーションの全体的な 説明します。Google 広告 .NET ライブラリにより、すべてのサービスで非同期のメソッドが生成されます。 RPC メソッドがあります
非同期メソッドのキャンセル
callSettings
パラメータを使用すると、
CancellationToken
を非同期メソッドに追加します。
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
cancellationTokenSource.CancelAfter(3000);
CallSettings callSettings = CallSettings.FromCancellationToken(cancellationTokenSource.Token);
string query = "SELECT campaign.name FROM campaign";
var request = new SearchGoogleAdsStreamRequest()
{
CustomerId = customerId.ToString(),
Query = query,
};
GoogleAdsServiceClient googleAdsService = client.GetService(
Services.V17.GoogleAdsService);
googleAdsService.SearchStream(request,
delegate (SearchGoogleAdsStreamResponse resp)
{
foreach (GoogleAdsRow googleAdsRow in resp.Results)
{
// Process the row.
}
}, callSettings
);
可能な場合はロギングをオフにする
Google 広告 .NET ライブラリでは、デフォルトでロギングがオフになり、遅延ロギングが使用されます。 アプリのパフォーマンスを高めることができますロギングを有効にすると 本番環境では必ず無効にしてください。指標スコープを使用して 本番環境の特定の失敗したリクエストについては、 アプリのパフォーマンスに悪影響を与えることなく、以下の手順に沿って対処します。
- 概要ログのみをオンにします。
- 完全なログを
ERROR
レベルに設定します。 - 共有可能な特定のリクエストのリクエスト ID を保存する サポートチャネルと連携しています
詳しくは、ロギングガイドをご覧ください。
SearchStream と Search のどちらの方法を使用するかを決定する
Google Ads API でオブジェクトを取得するには、主に 2 つの方法(Search
メソッド)を使用します。
(ページ分けを使用)と SearchStream
(ストリーミングを使用)があります。
SearchStream
は Search
よりもパフォーマンスが優れていますが、
Search
が推奨されるシナリオ。
詳しくは、ストリーミング レポートのガイドをご覧ください。 説明します。
ReadyToRun オプションを使用する
.NET Core 3.1 で特定のプラットフォームへのバイナリのプリコンパイルのサポートを追加
PublishReadyToRun
設定を true
に指定して、アーキテクチャとアーキテクチャを指定します。
次に、有効な RuntimeIdentifier
を指定してバイナリを公開します。
説明します。ReadyToRun
のガイドをご覧ください
学びます。
できます。
TieredCompilation を使用する
TieredCompilation
を使用すると、.NET でホットスポットを特定して改善できます。
向上します階層化コンパイルは、ReadyToRun
オプションを使用する方が効果的であるため、
利用可能な場合は、事前に生成された画像を使用できます。こちらのガイド
TieredCompilation
をご覧ください。
ガベージ コレクション(GC)をファインチューニングする
.NET では、ガベージ コレクション(GC)用に一般的なプロファイルが 2 つ用意されています。 2 つのプロファイルがありますこの 2 つのプロファイルではパフォーマンスに違いがある トレードオフ。 Google Ads .NET ライブラリを使用するアプリは、実行時にパフォーマンスが向上する傾向がある サーバー プロファイル。次の GC 設定を微調整すると便利です。
サーバーのガベージ コレクション: サーバーのガベージ コレクションでは .NET Google Ads API アプリのパフォーマンスを高めます 実行する方法を学びました詳しくは、こちら ガイド をご覧ください。サーバーのガベージ コレクションを有効にするには、 次の行をアプリの
.csproj
ファイルに追加します。<PropertyGroup> <ServerGarbageCollection>true</ServerGarbageCollection> </PropertyGroup>
同時実行ガベージ コレクション: 同時実行 ガベージ コレクション .NET GC に第 2 世代のガベージ コレクション専用のスレッドを持たせました。 この設定は、サイズの大きいレポートを処理する場合に便利です。Google Chat では 同時実行ガベージ コレクションを有効にするには、次の行を アプリの
.csproj
ファイルに追加します。<PropertyGroup> <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection> </PropertyGroup>
VM ガベージ コレクションを保持する:
RetainVMGarbageCollection
設定 削除する必要がある仮想メモリのセグメントを 将来の使用のためにスタンバイ リストに保存するか、オペレーティング システム(OS)に解放されます。 システム(OS)です。仮想メモリの保持を有効にするには、 次の行をアプリに追加します。<PropertyGroup> <RetainVMGarbageCollection>true</RetainVMGarbageCollection> </PropertyGroup>
GC を微調整するには、
構成する必要があります関連する
設定
.NET Core アプリの runtimeconfig.json
ファイルで指定されています。つまり、
変数、または .NET SDK アプリの App.config
を使用します。