Google 提供用來與 Ad Manager API 互動的 .NET 用戶端程式庫。 建議您搭配 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 會依序在下列位置搜尋憑證:
GOOGLE_APPLICATION_CREDENTIALS
環境變數。- 透過 Google Cloud CLI (gcloud CLI) 設定的使用者憑證。
- 在 Google Cloud 上執行時,服務帳戶會連結至 Google Cloud 資源。
如需建立及設定 ADC 憑證,請參閱驗證。
提出第一個要求
每項服務都有一個 ServiceClient
物件,其中包含每個 REST 方法的同步和非同步方法。以下範例會同步讀取 Network
。系統會使用資源名稱識別所有實體,其中包含實體的類型和數字 ID。
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);