Google は、Ad Manager API を操作するための .NET クライアント ライブラリを提供しています。NuGet でクライアント ライブラリを使用することをおすすめします。
まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリ アーティファクトを Google.Ads.AdManager.V1
として NuGet リポジトリに公開します。
パッケージ リファレンス
<!-- 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 は、次の場所で認証情報を順番に検索します。
GOOGLE_APPLICATION_CREDENTIALS
環境変数。- Google Cloud CLI(gcloud CLI)で設定されたユーザー認証情報。
- 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);