‎.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 וב-Application Default Credentials (ADC) כדי לבצע אימות.

החיפוש של פרטי הכניסה ב-ADC מתבצע בסדר הבא במיקומים הבאים:

  1. משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS.
  2. פרטי הכניסה של משתמשים שהוגדרו דרך Google Cloud CLI‏ (CLI של gcloud).
  3. כשהאפליקציה פועלת ב-Google Cloud, חשבון השירות שמצורף למשאב ב-Google Cloud.

במאמר אימות מוסבר איך יוצרים ומגדירים את פרטי הכניסה ל-ADC.

יצירת הבקשה הראשונה

לכל שירות יש אובייקט ServiceClient גם ב-methods סינכרוניות וגם אסינכרוניות לכל method של 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);
        }
    }

דוגמאות של methods ומשאבים אחרים מופיעות במאגר של GitHub googleapis/google-cloud-dotnet.

טיפול בשגיאות

כל השגיאות של Ad Manager API הן מהסוג 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);