গুগল অ্যাডস এপিআই পিএইচপি ক্লায়েন্ট লাইব্রেরিতে বেশ কিছু কনফিগারেশন সেটিংস রয়েছে, যা ব্যবহার করে আপনি লাইব্রেরিটির আচরণ নিজের মতো করে সাজিয়ে নিতে পারেন।
কনফিগারেশন ফাইল
আপনি এই কনফিগারেশন সেটিংসগুলোর বেশিরভাগই ini ফাইলে সংরক্ষণ করতে পারেন এবং ক্লায়েন্ট ইনস্ট্যানশিয়েট করার সময় সেগুলো ব্যবহার করতে পারেন, যেমন, google_ads_php.ini ।
ক্রেডেনশিয়াল এবং ক্লায়েন্ট বিল্ডার উভয়ই এই ধরনের ফাইল থেকে সেটিংস লোড করার জন্য fromFile মেথড প্রদান করে:
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile('/path/to/google_ads_php.ini')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->fromFile('/path/to/google_ads_php.ini')
->withOAuth2Credential($oAuth2Credential)
->build();
আর্গুমেন্ট হিসেবে কোনো কনফিগারেশন পাথ প্রদান করা না হলে, fromFile মেথডগুলো ডিফল্ট কনফিগারেশন পাথ থেকে লোড হয়, যা হলো:
-
GOOGLE_ADS_CONFIGURATION_FILE_PATHনামের এনভায়রনমেন্ট ভেরিয়েবলের মান, যদি সেট করা থাকে। - অন্যথায়, আপনার
HOMEডিরেক্টরিতে থাকাgoogle_ads_php.iniফাইলটি।
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile()
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->fromFile()
->withOAuth2Credential($oAuth2Credential)
->build();
গতিশীল কনফিগারেশন
ক্লায়েন্ট ইনস্ট্যানশিয়েট করার সময় আপনি এই কনফিগারেশন সেটিংসগুলো ডায়নামিকভাবে সেট করতে পারেন।
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID')
// ...
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
// ...
->build();
কনফিগারেশন পরিবেশ ভেরিয়েবল
ক্লায়েন্ট ইনস্ট্যানশিয়েট করার সময় আপনি এনভায়রনমেন্ট ভেরিয়েবল থেকে কিছু কনফিগারেশন সেটিংস সেট করতে পারেন ( বিস্তারিত তালিকাটি দেখুন)।
ক্রেডেনশিয়াল এবং ক্লায়েন্ট বিল্ডার উভয়ই এনভায়রনমেন্ট ভেরিয়েবল থেকে সেটিংস লোড করার জন্য fromEnvironmentVariables মেথড প্রদান করে:
$oAuth2Credential = (new OAuth2TokenBuilder())
// ...
->fromEnvironmentVariables()
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
// ...
->fromEnvironmentVariables()
->build();
কনফিগারেশন ক্ষেত্রগুলি
কনফিগারেশন সেটিংসে বিভিন্ন ক্যাটাগরিতে বিভক্ত একাধিক ফিল্ড রয়েছে।
-
OAuth2TokenBuilderদ্বারা ব্যবহৃত ক্ষেত্রসমূহ:- অ্যাপ্লিকেশন মোড
-
[OAUTH2] clientId: আপনার OAuth2 ক্লায়েন্ট আইডি। -
[OAUTH2] clientSecret: আপনার OAuth2 ক্লায়েন্ট সিক্রেট। -
[OAUTH2] refreshToken: আপনার OAuth2 রিফ্রেশ টোকেন।
-
- পরিষেবা অ্যাকাউন্ট মোড
-
[OAUTH2] jsonKeyFilePath: Json কী-এর পাথ। -
[OAUTH2] scopes: স্কোপগুলো। -
[OAUTH2] impersonatedEmail: যে ইমেইলের ছদ্মবেশ ধারণ করতে হবে।
-
- অ্যাপ্লিকেশন মোড
-
GoogleAdsClientBuilderদ্বারা ব্যবহৃত ক্ষেত্রসমূহ:-
[GOOGLE_ADS] loginCustomerId: অনুরোধে ব্যবহার করার জন্য অনুমোদিত গ্রাহকের আইডি । -
[GOOGLE_ADS] linkedCustomerId: সংযুক্ত গ্রাহকের আইডি। -
[LOGGING] logFilePath: লগ করার পথ। -
[LOGGING] logLevel: লগিং লেভেল। -
[CONNECTION] proxy: ইন্টারনেট সংযোগের জন্য ব্যবহৃত প্রক্সি সার্ভার ইউআরএল। -
[CONNECTION] transport: পরিবহনটি। -
[CONNECTION] grpcChannelIsSecure: gRPC চ্যানেলটি সুরক্ষিত কিনা। -
[CONNECTION] grpcChannelCredential: gRPC চ্যানেলের ক্রেডেনশিয়াল। -
[CONNECTION] unaryMiddlewares: ইউনিটারি মিডলওয়্যারসমূহ। -
[CONNECTION] streamingMiddlewares: স্ট্রিমিং মিডলওয়্যারসমূহ। -
[CONNECTION] grpcInterceptors: gRPC ইন্টারসেপ্টরসমূহ।
-
কনফিগারেশন যাচাইকরণ
ক্লায়েন্ট ইনস্ট্যানশিয়েট করার সময় কনফিগারেশন সেটিংস পরীক্ষা করা হয় এবং অবৈধ হলে এক্সেপশন থ্রো করা হয়। নিয়মগুলো হলো:
- একই সময়ে অ্যাপ্লিকেশন মোড এবং সার্ভিস অ্যাকাউন্ট মোড উভয়ের জন্য
[OAUTH2]ফিল্ড সেট করা যাবে না। - সার্ভিস অ্যাকাউন্ট মোড ব্যবহার করার সময়
[OAUTH2] jsonKeyFilePathএবং[OAUTH2] scopesঅবশ্যই সেট করতে হবে। - অ্যাপ্লিকেশন মোড ব্যবহার করার সময়
[OAUTH2] clientId,[OAUTH2] clientSecretএবং[OAUTH2] refreshTokenঅবশ্যই সেট করতে হবে। - সেট করা থাকলে,
[GOOGLE_ADS] loginCustomerIdএবং[GOOGLE_ADS] linkedCustomerIdঅবশ্যই ধনাত্মক সংখ্যা হতে হবে। - সেট করা থাকলে,
[CONNECTION] proxyঅবশ্যই একটি বৈধ URL হতে হবে ( FILTER_VALIDATE_URL ফিল্টারটি দেখুন)। - সেট করা থাকলে,
[LOGGING] logLevelঅবশ্যই বড় হাতের অক্ষরে একটি বৈধ PSR লগ লেভেল হতে হবে, যেমনINFO। - সেট করা থাকলে,
[CONNECTION] transportঅবশ্যইgrpcঅথবাrestহতে হবে। - যদি
[CONNECTION] transportgrpcতে সেট করা থাকে, তাহলে gRPC ট্রান্সপোর্টটি এনভায়রনমেন্ট দ্বারা সমর্থিত হতে হবে ( ট্রান্সপোর্ট গাইড দেখুন)। - যখন
[CONNECTION] transportgrpcতে সেট করা থাকে না, তখন[CONNECTION] grpcChannelIsSecureঅবশ্যইtrueহতে হবে। -
[CONNECTION] grpcChannelCredentialশুধুমাত্র তখনই সেট করা যাবে যখন[CONNECTION] transportgrpcতে সেট করা থাকবে। -
[CONNECTION] grpcChannelCredentialশুধুমাত্র তখনই সেট করা যাবে যখন[CONNECTION] grpcChannelIsSecuretrueহবে।