Google מספקת ספריית לקוח של .NET לאינטראקציה עם Ad Manager API. מומלץ להשתמש בספריית הלקוח עם NuGet.
כדי להתחיל, יוצרים פרויקט חדש בסביבת הפיתוח המשולבת (IDE) שבחרתם או מוסיפים את התלות לפרויקט קיים. Google מפרסמת ארטיפקטים של ספריות לקוח במאגר NuGet בתור Google.Ads.AdManager.V1.
Package Reference
<!-- 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 מתבצע בסדר הבא:
- משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALS. - פרטי כניסה של משתמשים שהוגדרו באמצעות ה-CLI של gcloud (ה-CLI של gcloud).
- כשמריצים ב-Google Cloud, חשבון השירות שמצורף למשאב ב-Google Cloud.
במאמר אימות מוסבר איך ליצור ולהגדיר את פרטי הכניסה של ADC.
שליחת הבקשה הראשונה
לכל שירות יש אובייקט ServiceClient עם שיטות סינכרוניות ואסינכרוניות לכל שיטת 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);
}
}
דוגמאות לשיטות ולמשאבים אחרים זמינות במאגר 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);
קביעת הגדרות לשרת proxy
ספריית הלקוח של .NET מתייחסת למאפיין HttpClient.DefaultProxy, כולל הגדרת שרתי proxy ממשתני הסביבה HTTP_PROXY ו-HTTPS_PROXY. פרטים נוספים זמינים במאמר בנושא מאפיין HttpClient.DefaultProxy.