কনফিগারেশন

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

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

আপনি এইসব কনফিগারেশন সেটিংসের বেশিরভাগই 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_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->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 স্কোপ (ডিফল্ট হিসেবে https://www.googleapis.com/auth/adwords v32.1.0 এবং তার পরবর্তী ভার্সনে; v32.1.0-এর আগের ভার্সনে বা কাস্টম স্কোপ ব্যবহার করার সময় প্রয়োজন; fromEnvironmentVariables()-এর মাধ্যমে এনভায়রনমেন্ট ভেরিয়েবল থেকে রিড করা হয় না)।
      • [OAUTH2] impersonatedEmail: Google Workspace ডোমেন-ওয়াইড ডেলিগেশন ব্যবহার করার সময় ছদ্মবেশ ধারণ করার জন্য ঐচ্ছিক ইমেল আইডি।
    • অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল মোড:
      • অ্যাপ্লিকেশন মোড বা পরিষেবা অ্যাকাউন্ট মোড ফিল্ডের কোনওটিই সেট করা না থাকলে, OAuth2TokenBuilder অটোমেটিক অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC)-এ ফিরে যায়।
  2. GoogleAdsClientBuilder-এর ব্যবহার করা ফিল্ড:
    • [GOOGLE_ADS] loginCustomerId: অনুরোধে ব্যবহার করার জন্য অনুমোদিত গ্রাহকের আইডি।
    • [GOOGLE_ADS] linkedCustomerId: লিঙ্ক করা কাস্টমার আইডি।
    • [GOOGLE_ADS] endpoint: ঐচ্ছিক বিকল্প Google Ads API সার্ভার এন্ডপয়েন্ট।
    • [LOGGING] logFilePath: আউটপুট লগ করার পাথ।
    • [LOGGING] logLevel: লগিং লেভেল।
    • [CONNECTION] proxy: ইন্টারনেট কানেক্টিভিটির জন্য ব্যবহৃত প্রক্সি সার্ভার URL।
    • [CONNECTION] transport: নেটওয়ার্ক ট্রান্সপোর্ট (grpc বা rest)।
    • [CONNECTION] grpcChannelIsSecure: gRPC চ্যানেল সুরক্ষিত কিনা।
    • [CONNECTION] grpcChannelCredential: gRPC চ্যানেল ক্রেডেনশিয়াল।
    • [CONNECTION] unaryMiddlewares: ইউনারি মিডলওয়্যার।
    • [CONNECTION] streamingMiddlewares: স্ট্রিমিং মিডলওয়্যার।
    • [CONNECTION] grpcInterceptors: gRPC ইন্টারসেপ্টর।

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

ক্লায়েন্ট ইনস্ট্যান্টিয়েট করার সময় কনফিগারেশন সেটিংস চেক করা হয় এবং ভুল হলে ব্যতিক্রম থ্রো করা হয়। যাচাইকরণের নিয়মগুলি নিচে দেওয়া হল:

  1. অ্যাপ্লিকেশন মোড এবং পরিষেবা অ্যাকাউন্ট মোড, দুটির জন্যই একই সাথে [OAUTH2] ফিল্ড সেট করা যাবে না।
  2. পরিষেবা অ্যাকাউন্ট মোড ব্যবহার করার সময় [OAUTH2] jsonKeyFilePath সেট করতে হবে (v32.1.0-এর আগের ভার্সনে, [OAUTH2] scopes-ও সেট করতে হবে; v32.1.0 এবং পরবর্তী ভার্সনে, scopes ডিফল্ট হিসেবে https://www.googleapis.com/auth/adwords-এ সেট করা থাকে)।
  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 হতে হবে (REST কানেকশনের জন্য সবসময় HTTPS প্রয়োজন)।
  10. [CONNECTION] transport-এর মান grpc-এ সেট করা থাকলে তবেই [CONNECTION] grpcChannelCredential সেট করা যাবে।
  11. [CONNECTION] grpcChannelIsSecure-এর মান true হলে তবেই [CONNECTION] grpcChannelCredential সেট করা যাবে।