.NET

Google предоставляет клиентскую библиотеку .NET для взаимодействия с API Ad Manager. Мы рекомендуем использовать клиентскую библиотеку с 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 (gcloud CLI).
  3. При работе в Google Cloud учетная запись службы, привязанная к ресурсу Google Cloud.

Для создания и настройки учетных данных ADC см. раздел «Аутентификация» .

Сделайте свой первый запрос

Каждый сервис имеет объект ServiceClient с синхронными и асинхронными методами для каждого REST-метода. В следующем примере считывается синхронно 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 .

Обработка ошибок

Все ошибки API Ad Manager относятся к типу Grpc.Core.RpcException в клиентской библиотеке .NET.

В сообщениях об ошибках содержится уникальный 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";
}

Формирование имен ресурсов

Клиентская библиотека предоставляет вспомогательные классы для формирования имен ресурсов на основе идентификаторов. Эти идентификаторы можно передавать непосредственно методам сервиса.

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

Настройка параметров прокси-сервера

Клиентская библиотека .NET учитывает свойство HttpClient.DefaultProxy , включая установку прокси-серверов из переменных среды HTTP_PROXY и HTTPS_PROXY . Более подробную информацию см. в разделе «Свойство HttpClient.DefaultProxy» .