.NET

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는 다음 위치에서 순서대로 사용자 인증 정보를 검색합니다.

  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);