কনফিগারেশন

গুগল অ্যাডস এপিআই পিএইচপি ক্লায়েন্ট লাইব্রেরিতে বেশ কিছু কনফিগারেশন সেটিংস রয়েছে, যা ব্যবহার করে আপনি লাইব্রেরিটির আচরণ নিজের মতো করে সাজিয়ে নিতে পারেন।

কনফিগারেশন ফাইল

আপনি এই কনফিগারেশন সেটিংসগুলোর বেশিরভাগই 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 মেথডগুলো ডিফল্ট কনফিগারেশন পাথ থেকে লোড হয়, যা হলো:

  1. GOOGLE_ADS_CONFIGURATION_FILE_PATH নামের এনভায়রনমেন্ট ভেরিয়েবলের মান, যদি সেট করা থাকে।
  2. অন্যথায়, আপনার 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();

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

কনফিগারেশন সেটিংসে বিভিন্ন ক্যাটাগরিতে বিভক্ত একাধিক ফিল্ড রয়েছে।

  1. OAuth2TokenBuilder দ্বারা ব্যবহৃত ক্ষেত্রসমূহ:
    • অ্যাপ্লিকেশন মোড
      • [OAUTH2] clientId : আপনার OAuth2 ক্লায়েন্ট আইডি।
      • [OAUTH2] clientSecret : আপনার OAuth2 ক্লায়েন্ট সিক্রেট।
      • [OAUTH2] refreshToken : আপনার OAuth2 রিফ্রেশ টোকেন।
    • পরিষেবা অ্যাকাউন্ট মোড
      • [OAUTH2] jsonKeyFilePath : Json কী-এর পাথ।
      • [OAUTH2] scopes : স্কোপগুলো।
      • [OAUTH2] impersonatedEmail : যে ইমেইলের ছদ্মবেশ ধারণ করতে হবে।
  2. 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 ইন্টারসেপ্টরসমূহ।

কনফিগারেশন যাচাইকরণ

ক্লায়েন্ট ইনস্ট্যানশিয়েট করার সময় কনফিগারেশন সেটিংস পরীক্ষা করা হয় এবং অবৈধ হলে এক্সেপশন থ্রো করা হয়। নিয়মগুলো হলো:

  1. একই সময়ে অ্যাপ্লিকেশন মোড এবং সার্ভিস অ্যাকাউন্ট মোড উভয়ের জন্য [OAUTH2] ফিল্ড সেট করা যাবে না।
  2. সার্ভিস অ্যাকাউন্ট মোড ব্যবহার করার সময় [OAUTH2] jsonKeyFilePath এবং [OAUTH2] scopes অবশ্যই সেট করতে হবে।
  3. অ্যাপ্লিকেশন মোড ব্যবহার করার সময় [OAUTH2] clientId , [OAUTH2] clientSecret এবং [OAUTH2] refreshToken অবশ্যই সেট করতে হবে।
  4. সেট করা থাকলে, [GOOGLE_ADS] loginCustomerId এবং [GOOGLE_ADS] linkedCustomerId অবশ্যই ধনাত্মক সংখ্যা হতে হবে।
  5. সেট করা থাকলে, [CONNECTION] proxy অবশ্যই একটি বৈধ URL হতে হবে ( FILTER_VALIDATE_URL ফিল্টারটি দেখুন)।
  6. সেট করা থাকলে, [LOGGING] logLevel অবশ্যই বড় হাতের অক্ষরে একটি বৈধ PSR লগ লেভেল হতে হবে, যেমন INFO
  7. সেট করা থাকলে, [CONNECTION] transport অবশ্যই grpc অথবা rest হতে হবে।
  8. যদি [CONNECTION] transport grpc তে সেট করা থাকে, তাহলে gRPC ট্রান্সপোর্টটি এনভায়রনমেন্ট দ্বারা সমর্থিত হতে হবে ( ট্রান্সপোর্ট গাইড দেখুন)।
  9. যখন [CONNECTION] transport grpc তে সেট করা থাকে না, তখন [CONNECTION] grpcChannelIsSecure অবশ্যই true হতে হবে।
  10. [CONNECTION] grpcChannelCredential শুধুমাত্র তখনই সেট করা যাবে যখন [CONNECTION] transport grpc তে সেট করা থাকবে।
  11. [CONNECTION] grpcChannelCredential শুধুমাত্র তখনই সেট করা যাবে যখন [CONNECTION] grpcChannelIsSecure true হবে।