Google предоставляет клиентскую библиотеку .NET для взаимодействия с API Ad Manager. Мы рекомендуем использовать клиентскую библиотеку с NuGet.
To get started, create a new project in the IDE of your choice or add the dependency to an existing project. Google publishes client library artifacts to NuGet repository as Google.Ads.AdManager.V1 .
Справочник по пакетам
<!-- MyProject.csproj -->
<PackageReference Include="Google.Ads.AdManager.V1" Version="1.0.0-beta12" />
.NET CLI
dotnet add package Google.Ads.AdManager.V1 --version 1.0.0-beta12
Настройка учетных данных
Клиентская библиотека .NET использует OAuth2 и учетные данные приложения по умолчанию (ADC) для аутентификации.
ADC выполняет поиск учетных данных в следующем порядке:
- Переменная среды
GOOGLE_APPLICATION_CREDENTIALS. - Учетные данные пользователя настраиваются через интерфейс командной строки Google Cloud (gcloud CLI).
- При работе в Google Cloud учетная запись службы, привязанная к ресурсу Google Cloud.
Для создания и настройки учетных данных ADC см. раздел «Аутентификация» .
Сделайте свой первый запрос
Each service has a ServiceClient object with both synchronous and asynchronous methods for each REST method. The following example reads a Network synchronously. All entities are identified by a resource name consisting of the type and numeric identifier of the entity.
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);
Настройка параметров прокси-сервера
The .NET client library respects the HttpClient.DefaultProxy property including setting proxies from the environment variables HTTP_PROXY and HTTPS_PROXY . For more details, see HttpClient.DefaultProxy Property .