কনফিগারেশন

Google Ads API ক্লায়েন্ট লাইব্রেরি বেশ কিছু কনফিগারেশন সেটিংস প্রদান করে যা আপনি লাইব্রেরির আচরণ কাস্টমাইজ করতে ব্যবহার করতে পারেন।

রানটাইমে লাইব্রেরি কনফিগার করুন

ক্লায়েন্ট লাইব্রেরি কনফিগার করার পছন্দের উপায় হল রানটাইমে একটি GoogleAdsConfig অবজেক্ট শুরু করা:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

বিকল্প কনফিগারেশন বিকল্প

ক্লায়েন্ট লাইব্রেরি কনফিগার করার জন্য আমরা কিছু অতিরিক্ত বিকল্পও প্রদান করি: সেগুলিকে সক্ষম করতে, আপনার প্রোজেক্টে Google.Ads.GoogleAds.Extensions প্যাকেজে একটি Nuget রেফারেন্স যোগ করুন৷

আপনি যদি এই বিকল্পগুলির মধ্যে একটি ব্যবহার করেন, কনফিগারেশন সেটিংস স্বয়ংক্রিয়ভাবে তোলা হয় না: নীচে দেখানো হিসাবে আপনার স্পষ্টভাবে সেগুলি লোড করা উচিত৷

App.config ব্যবহার করে কনফিগার করুন

Google Ads API এর জন্য নির্দিষ্ট সমস্ত সেটিংস App.config ফাইলের GoogleAdsApi নোডে সংরক্ষণ করা হয়। একটি সাধারণ কনফিগারেশন App.config নিম্নরূপ:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" />
  </configSections>
  <GoogleAdsApi>
    <!-- Set the service timeout in milliseconds. -->
    <add key="Timeout" value="2000" />

    <!-- Proxy settings for library. -->
    <add key="ProxyServer" value="http://localhost:8888"/>
    <add key="ProxyUser" value=""/>
    <add key="ProxyPassword" value=""/>
    <add key="ProxyDomain" value=""/>

    <!-- API-specific settings -->
    <add key="DeveloperToken" value="******"/>

    <!-- OAuth2 settings -->
    <add key = "OAuth2Mode" value="APPLICATION"/>
    <add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
    <add key = "OAuth2ClientSecret" value = "******" />
    <add key = "OAuth2RefreshToken" value = "******" />
  </GoogleAdsApi>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

একটি App.config ফাইল থেকে কনফিগারেশন সেটিংস লোড করতে, একটি GoogleAdsConfig অবজেক্টে LoadFromDefaultAppConfigSection পদ্ধতিতে কল করুন:

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);

একটি পৃথক App.config ফাইল উল্লেখ করুন

আপনি যদি আপনার App.config বিশৃঙ্খল পেতে না চান তবে আপনি configSource সম্পত্তি ব্যবহার করে লাইব্রেরি-নির্দিষ্ট কনফিগারেশনটিকে তার নিজস্ব কনফিগারেশন ফাইলে সরাতে পারেন।

ধাপ 1: আপনার App.config এ একটি configSource উল্লেখ করুন

এই মত দেখতে আপনার App.config পরিবর্তন করুন:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
  </configSections>
  <GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>

ধাপ 2: আপনার কনফিগার ফাইলের বিষয়বস্তু নির্দিষ্ট করুন

এখন আপনি configSource এ যে নামটি উল্লেখ করেছেন তার সাথে আরেকটি কনফিগারেশন ফাইল তৈরি করুন এবং আপনার App.config থেকে কনফিগারেশন নোডটি এই ফাইলে সরান:

<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  ... More settings.
</GoogleAdsApi>

ধাপ 3: আপনার csproj এ বিল্ড নিয়ম ঠিক করুন

অবশেষে, আপনার প্রকল্পে নতুন কনফিগারেশন ফাইল অন্তর্ভুক্ত করুন। এই ফাইলের বৈশিষ্ট্যগুলিকে সর্বদা আউটপুট ফোল্ডারে অনুলিপিতে পরিবর্তন করুন।

এখন আপনার প্রকল্প তৈরি করুন এবং চালান। আপনার অ্যাপ্লিকেশন নতুন কনফিগারেশন ফাইল থেকে মান বাছাই করা শুরু করবে।

একটি কাস্টম JSON ফাইল ব্যবহার করে কনফিগারেশন

আপনি ক্লায়েন্ট লাইব্রেরি কনফিগার করতে একটি IConfigurationRoot উদাহরণ ব্যবহার করতে পারেন।

একটি JSON ফাইল তৈরি করুন

GoogleAdsApi.json নামে একটি JSON ফাইল তৈরি করুন যার গঠন App.config ফাইলের মতোই রয়েছে৷

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

কনফিগারেশন লোড করুন

এরপর, JSON ফাইলটিকে একটি IConfigurationRoot এ লোড করুন।

ConfigurationBuilder builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);

settings.json ব্যবহার করে কনফিগারেশন

এখানে প্রক্রিয়াটি একটি কাস্টম JSON ব্যবহারের অনুরূপ, ব্যতীত কীগুলি GoogleAdsApi নামে একটি বিভাগে থাকা উচিত :

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

পরবর্তী, আপনি আপনার পৃষ্ঠায় IConfiguration উদাহরণ ব্যবহার করতে পারেন:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);

পরিবেশ ভেরিয়েবল ব্যবহার করে কনফিগারেশন

আপনি পরিবেশ ভেরিয়েবল ব্যবহার করে GoogleAdsClient শুরু করতে পারেন:

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);

সমর্থিত পরিবেশ ভেরিয়েবলের সম্পূর্ণ তালিকা দেখুন।

কনফিগারেশন ক্ষেত্র

নিচে Google Ads .NET লাইব্রেরি দ্বারা সমর্থিত সেটিংসের তালিকা রয়েছে৷

সংযোগ সেটিংস

  • Timeout : মিলিসেকেন্ডে পরিষেবার সময়সীমা সেট করতে এই কী ব্যবহার করুন। googleads_grpc_service_config.json-method_config/timeout সেটিংসের উপর ভিত্তি করে ডিফল্ট মান সেট করা হয়। যদি আপনি একটি API কলের জন্য সর্বাধিক সময়ের জন্য একটি ছোট সীমা প্রয়োগ করতে চান তাহলে একটি নিম্ন মান সেট করুন৷ আপনি টাইমআউট 2 ঘন্টা বা তার বেশি সেট করতে পারেন, কিন্তু API এখনও অত্যন্ত দীর্ঘমেয়াদী অনুরোধের সময় শেষ করতে পারে এবং একটি DEADLINE_EXCEEDED ত্রুটি ফেরত দিতে পারে৷
  • ProxyServer : আপনি যদি ইন্টারনেটের সাথে সংযোগ করার জন্য একটি প্রক্সি ব্যবহার করেন তবে এটি HTTP প্রক্সি সার্ভার URL-এ সেট করুন৷
  • ProxyUser : প্রক্সি সার্ভারের বিরুদ্ধে প্রমাণীকরণের জন্য আপনার প্রয়োজনীয় ব্যবহারকারীর নামের সাথে এটি সেট করুন। ব্যবহারকারীর নাম প্রয়োজন না হলে এটি খালি রাখুন।
  • ProxyPassword : আপনি যদি ProxyUser এর জন্য একটি মান সেট করেন তাহলে এটিকে ProxyUser এর পাসওয়ার্ডে সেট করুন।
  • ProxyDomain : যদি আপনার প্রক্সি সার্ভারে একটি সেট করার প্রয়োজন হয় তাহলে এটিকে ProxyUser জন্য ডোমেনে সেট করুন।
  • MaxReceiveMessageLengthInBytes : ক্লায়েন্ট লাইব্রেরি পরিচালনা করতে পারে এমন API প্রতিক্রিয়ার সর্বাধিক আকার বাড়াতে এই সেটিংটি ব্যবহার করুন। ডিফল্ট মান হল 64 MB।
  • MaxMetadataSizeInBytes : ক্লায়েন্ট লাইব্রেরি পরিচালনা করতে পারে এমন API ত্রুটি প্রতিক্রিয়ার সর্বাধিক আকার বাড়াতে এই সেটিংটি ব্যবহার করুন৷ ডিফল্ট মান হল 16 MB।

নির্দিষ্ট ResourceExhausted ত্রুটিগুলি ঠিক করতে MaxReceiveMessageLengthInBytes এবং MaxMetadataSizeInBytes সেটিংস সামঞ্জস্য করুন৷ এই সেটিংস Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" ফর্মের ত্রুটির সমাধান করে।

এই উদাহরণে, বার্তার আকার ( 423184132 bytes ) লাইব্রেরি যা পরিচালনা করতে পারে তার চেয়ে বড় হওয়ার কারণে ত্রুটিটি হয়েছে ( 67108864 bytes )। এই ত্রুটি এড়াতে MaxReceiveMessageLengthInBytes বাড়িয়ে 500000000 করুন।

মনে রাখবেন যে ত্রুটিটি ইঙ্গিত করে যে আপনার কোড একটি উল্লেখযোগ্যভাবে বড় প্রতিক্রিয়া বস্তু পরিচালনা করেছে (যেমন একটি বড় SearchGoogleAdsResponse )। .NET এর বড় অবজেক্ট হিপের কারণে এটি আপনার কোডের জন্য কর্মক্ষমতা প্রভাব ফেলতে পারে। যদি এটি একটি কর্মক্ষমতা উদ্বেগ হয়ে ওঠে, তাহলে আপনাকে আপনার API কলগুলিকে কীভাবে পুনর্গঠন করতে হবে বা আপনার অ্যাপের অংশগুলি পুনরায় ডিজাইন করতে হবে তা অন্বেষণ করতে হতে পারে৷

OAuth2 সেটিংস

Google Ads API সার্ভারের বিরুদ্ধে আপনার কল অনুমোদন করার জন্য OAuth2 ব্যবহার করার সময়, আপনাকে নিম্নলিখিত কনফিগারেশন কীগুলি সেট করা উচিত:

  • AuthorizationMethod : OAuth2 এ সেট করুন।
  • OAuth2Mode : APPLICATION বা SERVICE_ACCOUNT এ সেট করুন।
  • OAuth2ClientId : এই মানটি আপনার OAuth2 ক্লায়েন্ট আইডিতে সেট করুন।
  • OAuth2ClientSecret : এই মানটি আপনার OAuth2 ক্লায়েন্ট গোপনে সেট করুন।
  • OAuth2Scope : আপনি যদি একাধিক API-এর জন্য OAuth2 টোকেন অনুমোদন করতে চান তাহলে এই মানটিকে বিভিন্ন স্কোপে সেট করুন। এই সেটিং ঐচ্ছিক.

আপনি যদি OAuth2Mode == APPLICATION ব্যবহার করেন, তাহলে আপনাকে নিম্নলিখিত অতিরিক্ত কনফিগারেশন কী সেট করতে হবে।

  • OAuth2RefreshToken : আপনি যদি OAuth2 টোকেন পুনরায় ব্যবহার করতে চান তাহলে এই মানটিকে একটি পূর্ব-উত্পাদিত OAuth2 রিফ্রেশ টোকেনে সেট করুন। এই সেটিং ঐচ্ছিক.
  • OAuth2RedirectUri : এই মানটিকে OAuth2 পুনঃনির্দেশ URL-এ সেট করুন। এই সেটিং ঐচ্ছিক.

আরো বিস্তারিত জানার জন্য নিম্নলিখিত নির্দেশিকা দেখুন:

আপনি যদি OAuth2Mode == SERVICE_ACCOUNT ব্যবহার করেন, তাহলে আপনাকে নিম্নলিখিত অতিরিক্ত কনফিগারেশন কী সেট করতে হবে।

  • OAuth2PrnEmail : আপনি যে অ্যাকাউন্টের ছদ্মবেশ ধারণ করছেন তার ইমেল ঠিকানায় এই মানটি সেট করুন।
  • OAuth2SecretsJsonPath : এই মানটিকে OAuth2 JSON কনফিগারেশন ফাইল পাথে সেট করুন।

আরও বিশদ বিবরণের জন্য OAuth পরিষেবা অ্যাকাউন্ট প্রবাহ নির্দেশিকা দেখুন।

পরিবহন সেটিংস

  • UseGrpcCore : অন্তর্নিহিত ট্রান্সপোর্ট লেয়ার হিসাবে Grpc.Core লাইব্রেরি ব্যবহার করতে এই সেটিংটিকে true সেট করুন। আরো বিস্তারিত জানার জন্য gRPC সমর্থন নির্দেশিকা দেখুন।

Google বিজ্ঞাপন API সেটিংস

নিম্নলিখিত সেটিংস Google Ads API-এর জন্য নির্দিষ্ট।

  • DeveloperToken : এটি আপনার বিকাশকারী টোকেনে সেট করুন।
  • LoginCustomerId : এটি হাইফেন ( - ) ছাড়া অনুরোধে ব্যবহার করার জন্য অনুমোদিত গ্রাহকের গ্রাহক আইডি।
  • LinkedCustomerId : এই শিরোনামটি শুধুমাত্র সেই পদ্ধতিগুলির জন্য প্রয়োজন যেগুলি Google Ads UI (Google Ads API-এ AccountLink রিসোর্স) লিঙ্ক করা অ্যাকাউন্টগুলির মাধ্যমে অনুমতি দেওয়া হলে একটি সত্তার সংস্থান আপডেট করে। এই মানটি ডেটা প্রদানকারীর গ্রাহক আইডিতে সেট করুন যা নির্দিষ্ট গ্রাহক আইডির সংস্থানগুলি আপডেট করে। এটি হাইফেন ছাড়া সেট করা উচিত ( - )। লিঙ্ক করা অ্যাকাউন্ট সম্পর্কে আরও জানুন