O Google oferece uma biblioteca de cliente .NET para interagir com a API Ad Manager. Recomendamos usar a biblioteca de cliente com o NuGet.
Para começar, crie um novo projeto no ambiente de desenvolvimento integrado (IDE) que você escolher ou adicione a
dependência a um projeto existente. O Google publica artefatos de biblioteca de cliente no
repositório NuGet como
Google.Ads.AdManager.V1.
Referência do pacote
<!-- MyProject.csproj -->
<PackageReference Include="Google.Ads.AdManager.V1" Version="1.0.0-beta01" />
CLI do .NET
dotnet add package Google.Ads.AdManager.V1 --version 1.0.0-beta01
Configurar credenciais
A biblioteca de cliente .NET usa o OAuth2 e o Application Default Credentials (ADC) para autenticação.
O ADC procura credenciais na seguinte ordem:
- variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
- Credenciais do usuário configuradas pela CLI do Google Cloud (CLI gcloud).
- Quando executado no Google Cloud, a conta de serviço anexada ao recurso do Google Cloud.
Para criar e configurar suas credenciais do ADC, consulte Autenticação.
Faça sua primeira solicitação
Cada serviço tem um objeto ServiceClient com métodos síncronos e assíncronos
para cada método REST. O exemplo a seguir lê um Network
de forma síncrona. Todas as entidades são identificadas por um
nome de recurso que consiste no tipo e no identificador numérico
da entidade.
    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);
        }
    }
Para conferir exemplos de outros métodos e recursos, consulte o repositório do GitHub
googleapis/google-cloud-dotnet.
Solucionar erros
Todos os erros da API Ad Manager são do tipo Grpc.Core.RpcException na biblioteca de cliente .NET.
Os erros incluem um request_id exclusivo que você pode
fornecer ao suporte para receber ajuda na
solução de problemas. O exemplo a seguir extrai o status HTTP, a mensagem de erro
e 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";
}
Criar nomes de recursos
A biblioteca de cliente fornece classes auxiliares para criar nomes de recursos a partir de IDs. Eles podem ser transmitidos diretamente para métodos de serviço.
//  Represents a resource name in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName name = OrderName.FromNetworkCodeOrder("123", "456");
Order response = orderServiceClient.GetOrder(name);
Definir as configurações de proxy
A biblioteca de cliente .NET respeita a propriedade HttpClient.DefaultProxy,
incluindo a configuração de proxies das variáveis de ambiente HTTP_PROXY e
HTTPS_PROXY. Para mais detalhes, consulte
Propriedade HttpClient.DefaultProxy.