.NET

Google は、Ad Manager API とのやり取りに使用する .NET クライアント ライブラリを提供しています。NuGet でクライアント ライブラリを使用することをおすすめします。

まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリ アーティファクトを NuGet リポジトリに Google.Ads.AdManager.V1 として公開します。

パッケージ リファレンス

<!-- MyProject.csproj -->
<PackageReference Include="Google.Ads.AdManager.V1" Version="1.0.0-beta01" />

.NET CLI

dotnet add package Google.Ads.AdManager.V1 --version 1.0.0-beta01

認証情報の構成

.NET クライアント ライブラリは、OAuth2 とアプリケーションのデフォルト認証情報(ADC)を使用して認証を行います。

ADC は、次の場所で認証情報を順に検索します。

  1. GOOGLE_APPLICATION_CREDENTIALS 環境変数。
  2. Google Cloud CLI(gcloud CLI)を使用して設定されたユーザー認証情報。
  3. Google Cloud で実行されている場合は、Google Cloud リソースに関連付けられているサービス アカウント。

ADC 認証情報の作成と構成については、認証をご覧ください。

最初のリクエストを送信する

各サービスには、各 REST メソッドの同期メソッドと非同期メソッドの両方を含む ServiceClient オブジェクトがあります。次の例では、Network を同期的に読み取ります。すべてのエンティティは、エンティティのタイプと数値識別子で構成されるリソース名で識別されます。

    using Google.Ads.AdManager.V1;

    public sealed partial class GeneratedNetworkServiceClientSnippets
    {
        public void GetNetwork()
        {
            // Create client
            NetworkServiceClient networkServiceClient = NetworkServiceClient.Create();
            // Initialize request argument(s)
            string name = "networks/[NETWORK_CODE]";
            // Make the request
            Network response = networkServiceClient.GetNetwork(name);
        }
    }

他のメソッドとリソースの例については、GitHub リポジトリ googleapis/google-cloud-dotnet をご覧ください。

エラーを処理する

Ad Manager API のエラーはすべて、.NET クライアント ライブラリの Grpc.Core.RpcException 型です。

エラーには、トラブルシューティングのサポートを受けるためにサポートに提供できる一意の request_id が含まれています。次の例では、HTTP ステータス、エラー メッセージ、request_id を抽出します。

using Google.Ads.AdManager.V1;
using Google.Api.Gax.Grpc;
using Google.Rpc;
using Grpc.Core;

try
{
    NetworkServiceClient networkServiceClient = NetworkServiceClient.Create();
    Network network = networkServiceClient.GetNetwork("networks/[NETWORK_CODE]");
}
catch(RpcException e)
{
    // HTTP Status code
    StatusCode statusCode = e.Status.StatusCode;
    // Error message
    string errorMessage = e.Status.Detail;
    // Unique request identifier.
    RequestInfo requestInfo = e.GetStatusDetail<RequestInfo>();
    string requestId = requestInfo?.RequestId ?? "Unexpected null request identifier";
}

リソース名を構築する

クライアント ライブラリには、ID からリソース名を構築するためのヘルパークラスが用意されています。これらはサービスメソッドに直接渡すことができます。

//  Represents a resource name in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName name = OrderName.FromNetworkCodeOrder("123", "456");
Order response = orderServiceClient.GetOrder(name);

プロキシを構成する

.NET クライアント ライブラリは、HTTP_PROXYHTTPS_PROXY の環境変数からプロキシを設定するなど、HttpClient.DefaultProxy プロパティを尊重します。詳細については、HttpClient.DefaultProxy プロパティをご覧ください。