.NET

Google 提供 .NET 用戶端程式庫,可用於與 Ad Manager API 互動。建議您搭配 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 CLI (gcloud CLI) 設定的使用者憑證。
  3. 在 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);