.NET

Ad Manager API-এর সাথে ইন্টার‍্যাক্ট করার জন্য Google .NET ক্লায়েন্ট লাইব্রেরি প্রদান করে। আমরা NuGet-এর সাথে ক্লায়েন্ট লাইব্রেরি ব্যবহার করার সাজেশন দিই।

শুরু করতে, আপনার পছন্দের IDE-তে একটি নতুন প্রোজেক্ট তৈরি করুন অথবা আগে থেকে থাকা প্রোজেক্টে ডিপেন্ডেন্সি যোগ করুন। Google ক্লায়েন্ট লাইব্রেরি আর্টিফ্যাক্টকে NuGet রিপোজিটরিতে Google.Ads.AdManager.V1 হিসেবে প্রকাশ করে।

প্যাকেজ রেফারেন্স

<!-- MyProject.csproj -->
<PackageReference Include="Google.Ads.AdManager.V1" Version="1.0.0-beta13" />

.NET CLI

dotnet add package Google.Ads.AdManager.V1 --version 1.0.0-beta13

ক্রেডেনশিয়াল কনফিগার করা

যাচাইকরণের জন্য .NET ক্লায়েন্ট লাইব্রেরি OAuth2 এবং অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) ব্যবহার করে।

ADC নিম্নলিখিত লোকেশনগুলিতে ক্রম অনুযায়ী ক্রেডেনশিয়াল সার্চ করে:

  1. GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল।
  2. Google Cloud CLI (gcloud CLI)-এর মাধ্যমে সেট-আপ করা ব্যবহারকারীর ক্রেডেনশিয়াল।
  3. 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 সংক্রান্ত সমস্যা হল .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";
}

রিসোর্সের নাম তৈরি করা

ক্লায়েন্ট লাইব্রেরি, আইডি থেকে রিসোর্স নাম তৈরি করার জন্য সহায়ক ক্লাস প্রদান করে। এগুলি সরাসরি পরিষেবা পদ্ধতিতে পাস করা যেতে পারে।

//  Represents a resource name in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName name = OrderName.FromNetworkCodeOrder("123", "456");
Order response = orderServiceClient.GetOrder(name);

প্রক্সি সেটিংস কনফিগার করা

.NET ক্লায়েন্ট লাইব্রেরি HttpClient.DefaultProxy প্রপার্টি মেনে চলে যার মধ্যে এনভায়রনমেন্ট ভেরিয়েবল HTTP_PROXY থেকে প্রক্সি সেট করা এবং HTTPS_PROXY অন্তর্ভুক্ত। আরও বিবরণের জন্য, HttpClient.DefaultProxy প্রপার্টি দেখুন।