پیکربندی

کتابخانه کلاینت PHP مربوط به Google Ads API چندین تنظیمات پیکربندی ارائه می‌دهد که می‌توانید برای سفارشی‌سازی رفتار کتابخانه از آنها استفاده کنید.

فایل پیکربندی

شما می‌توانید اکثر این تنظیمات پیکربندی را در فایل‌های 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. در غیر این صورت، فایل google_ads_php.ini در دایرکتوری HOME شما.
$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 : میان‌افزارهای unary.
    • [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 باید توسط محیط پشتیبانی شود (به راهنمای transport مراجعه کنید).
  9. وقتی که [ [CONNECTION] transport روی grpc تنظیم نشده باشد، [CONNECTION [CONNECTION] grpcChannelIsSecure باید true داشته باشد.
  10. [CONNECTION] grpcChannelCredential فقط زمانی قابل تنظیم است که [CONNECTION] transport روی grpc تنظیم شده باشد.
  11. [CONNECTION] grpcChannelCredential فقط زمانی قابل تنظیم است که [CONNECTION] grpcChannelIsSecure true باشد.