গুগল অ্যাডস এপিআই ক্লায়েন্ট লাইব্রেরিটি বেশ কিছু কনফিগারেশন সেটিংস প্রদান করে, যা ব্যবহার করে আপনি লাইব্রেরিটির আচরণ কাস্টমাইজ করতে পারেন।
রানটাইমে লাইব্রেরিটি কনফিগার করুন
ক্লায়েন্ট লাইব্রেরি কনফিগার করার সবচেয়ে ভালো উপায় হলো রানটাইমে একটি 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"></section>
</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 প্রপার্টি ব্যবহার করে লাইব্রেরি-নির্দিষ্ট কনফিগারেশনটি একটি আলাদা কনফিগারেশন ফাইলে সরিয়ে নিতে পারেন।
ধাপ ১: আপনার App.config-এ একটি configSource নির্দিষ্ট করুন।
আপনার App.config পরিবর্তন করে এইরকম করুন:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"></section>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
ধাপ ২: আপনার কনফিগারেশন ফাইলের বিষয়বস্তু নির্দিষ্ট করুন।
এখন configSource এ আপনার নির্দিষ্ট করা নামে আরেকটি কনফিগারেশন ফাইল তৈরি করুন, এবং আপনার App.config থেকে কনফিগারেশন নোডটি এই ফাইলে সরিয়ে নিন:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
ধাপ ৩: আপনার csproj-এ বিল্ড নিয়মগুলো ঠিক করুন।
অবশেষে, আপনার প্রজেক্টে নতুন কনফিগারেশন ফাইলটি অন্তর্ভুক্ত করুন। এই ফাইলটির প্রোপার্টি পরিবর্তন করে ‘ Always copy to output folder’ করুন ।
এখন আপনার প্রজেক্টটি বিল্ড ও রান করুন। আপনার অ্যাপ্লিকেশনটি নতুন কনফিগারেশন ফাইল থেকে ভ্যালু নেওয়া শুরু করবে।
একটি কাস্টম 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);
সেটিংস.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);
সমর্থিত এনভায়রনমেন্ট ভেরিয়েবলগুলোর সম্পূর্ণ তালিকা দেখুন।
একটি জেনেরিক স্ট্রিম ব্যবহার করুন
আপনি একটি জেনেরিক স্ট্রিম থেকেও কনফিগারেশন বা এর অংশবিশেষ লোড করতে পারেন, যার মধ্যে একটি এনক্রিপ্টেড স্ট্রিমও অন্তর্ভুক্ত।
GoogleAdsConfig config = new GoogleAdsConfig()
{
//Set some configuration properties in code.
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file.
CryptoStream strm = ....
StreamReader rdr = new StreamReader(strm);
// Configure the OAuth credentials from the encrypted file.
config.LoadOAuth2SecretsFromStream(rdr);
GoogleAdsClient client = new GoogleAdsClient(config);
কনফিগারেশন ক্ষেত্রগুলি
নিচে গুগল অ্যাডস .নেট লাইব্রেরি দ্বারা সমর্থিত সেটিংসের তালিকা দেওয়া হলো।
সংযোগ সেটিংস
-
Timeout: মিলিসেকেন্ডে সার্ভিস টাইমআউট সেট করতে এই কী-টি ব্যবহার করুন। ডিফল্ট মানটি googleads_grpc_service_config.json ফাইলেরmethod_config/timeoutসেটিং অনুসারে সেট করা হয়। যদি কোনো এপিআই কলের জন্য সর্বোচ্চ সময়ের উপর একটি সংক্ষিপ্ত সীমা আরোপ করার প্রয়োজন হয়, তবে একটি কম মান সেট করুন। আপনি টাইমআউট ২ ঘন্টা বা তার বেশি সেট করতে পারেন, কিন্তু তারপরেও এপিআই অত্যন্ত দীর্ঘ সময় ধরে চলা অনুরোধগুলির জন্য টাইমআউট হয়ে যেতে পারে এবং একটিDEADLINE_EXCEEDEDত্রুটি ফেরত দিতে পারে। -
ProxyServer: ইন্টারনেটে সংযোগের জন্য প্রক্সি ব্যবহার করলে, এটি HTTP প্রক্সি সার্ভারের URL-এ সেট করুন। -
ProxyUser: প্রক্সি সার্ভারে প্রমাণীকরণের জন্য আপনার প্রয়োজনীয় ইউজারনেমটি এখানে সেট করুন। ইউজারনেমের প্রয়োজন না হলে এই অংশটি খালি রাখুন। -
ProxyPassword: যদি আপনিProxyUserএর জন্য কোনো মান নির্ধারণ করে থাকেন, তাহলে এটিProxyUserএর পাসওয়ার্ডে সেট করুন। -
ProxyDomain: আপনার প্রক্সি সার্ভারেProxyUserসেট করার প্রয়োজন হলে, এটিতে তার ডোমেইন সেট করুন। -
MaxReceiveMessageLengthInBytes: ক্লায়েন্ট লাইব্রেরি যে পরিমাণ এপিআই (API) প্রতিক্রিয়া পরিচালনা করতে পারে, তার সর্বোচ্চ আকার বাড়ানোর জন্য এই সেটিংটি ব্যবহার করুন। এর ডিফল্ট মান হলো ৬৪ মেগাবাইট। -
MaxMetadataSizeInBytes: ক্লায়েন্ট লাইব্রেরি যে API ত্রুটি প্রতিক্রিয়াটি পরিচালনা করতে পারে তার সর্বোচ্চ আকার বাড়াতে এই সেটিংটি ব্যবহার করুন। এর ডিফল্ট মান হলো ১৬ মেগাবাইট।
নির্দিষ্ট কিছু
ResourceExhaustedত্রুটি সমাধান করতেMaxReceiveMessageLengthInBytesএবংMaxMetadataSizeInBytesসেটিংস সমন্বয় করুন। এই সেটিংসStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"এই ধরনের ত্রুটিগুলো সমাধান করে।এই উদাহরণে, মেসেজের আকার (
423184132 bytes) লাইব্রেরির ধারণক্ষমতার (67108864 bytes) চেয়ে বড় হওয়ায় ত্রুটিটি ঘটেছে। এই ত্রুটি এড়াতেMaxReceiveMessageLengthInBytesবাড়িয়ে500000000করুন।উল্লেখ্য যে, এই ত্রুটিটি আরও নির্দেশ করে যে আপনার কোড একটি বেশ বড় আকারের Response অবজেক্ট (যেমন একটি বড়
SearchGoogleAdsResponse) পরিচালনা করেছে। .NET-এর Large Object Heap- এর কারণে এটি আপনার কোডের পারফরম্যান্সের উপর প্রভাব ফেলতে পারে। যদি এটি পারফরম্যান্সের জন্য উদ্বেগের কারণ হয়ে দাঁড়ায়, তাহলে আপনাকে আপনার 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 Ads API)-এর জন্য নির্দিষ্ট।
-
DeveloperToken: এটি আপনার ডেভেলপার টোকেন হিসেবে সেট করুন। -
LoginCustomerId: এটি অনুরোধে ব্যবহার করার জন্য অনুমোদিত গ্রাহকের কাস্টমার আইডি, হাইফেন (-) ছাড়া। -
LinkedCustomerId: এই হেডারটি শুধুমাত্র সেইসব মেথডের জন্য প্রয়োজন, যেগুলো Google Ads UI-এর লিঙ্কড অ্যাকাউন্টস (Google Ads API-এরAccountLinkরিসোর্স) এর মাধ্যমে অনুমতি পেলে কোনো এনটিটির রিসোর্স আপডেট করে। এই ভ্যালুটি সেই ডেটা প্রোভাইডারের কাস্টমার আইডিতে সেট করুন, যে নির্দিষ্ট কাস্টমার আইডির রিসোর্স আপডেট করে। এটি হাইফেন (-) ছাড়া সেট করতে হবে। লিঙ্কড অ্যাকাউন্টস সম্পর্কে আরও জানুন ।