Google udostępnia bibliotekę klienta .NET do interakcji z interfejsem Ad Manager API. Zalecamy użycie biblioteki klienta z NuGet.
Aby rozpocząć, utwórz nowy projekt w wybranym środowisku IDE lub dodaj zależność do istniejącego projektu. Google publikuje artefakty biblioteki klienta w repozytorium NuGet jako Google.Ads.AdManager.V1
.
Odniesienie do pakietu
<!-- 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
Konfigurowanie danych logowania
Biblioteka klienta .NET do uwierzytelniania używa protokołu OAuth 2 i domyślnych danych logowania aplikacji (ADC).
ADC wyszukuje dane logowania w tych miejscach:
- zmiennej środowiskowej
GOOGLE_APPLICATION_CREDENTIALS
. - Dane logowania użytkownika skonfigurowane za pomocą interfejsu wiersza poleceń Google Cloud (gcloud CLI).
- W przypadku uruchamiania w Google Cloud – konto usługi powiązane ze zasobem Google Cloud.
Informacje o tworzeniu i konfigurowaniu danych logowania do ADC znajdziesz w sekcji Uwierzytelnianie.
Przesyłanie pierwszej prośby
Każda usługa ma obiekt ServiceClient
z metodami synchronicznymi i asynchronicznymi dla każdej metody REST. W tym przykładzie odczytujemy za pomocą funkcji asynchronicznej Network
. Wszystkie elementy są identyfikowane za pomocą nazwy zasobu, która składa się z typu i liczbowego identyfikatora elementu.
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);
}
}
Przykłady innych metod i zasobów znajdziesz w repozytorium GitHub googleapis/google-cloud-dotnet
.
Obsługa błędów
Wszystkie błędy interfejsu Ad Manager API są typu Grpc.Core.RpcException w bibliotece klienta .NET.
Błędy zawierają unikalny identyfikator request_id
, który możesz podać zespołowi pomocy, aby uzyskać pomoc w rozwiązywaniu problemów. W tym przykładzie wyodrębniamy stan HTTP, komunikat o błędzie i 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";
}
Tworzenie nazw zasobów
Biblioteka klienta udostępnia klasy pomocnicze do tworzenia nazw zasobów na podstawie identyfikatorów. Można je przekazywać bezpośrednio do metod usługi.
// Represents a resource name in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName name = OrderName.FromNetworkCodeOrder("123", "456");
Order response = orderServiceClient.GetOrder(name);