Google کتابخانه کارخواه PHP برای تعامل با Ad Manager API ارائه میدهد. توصیه میکنیم از کتابخانه کارخواه با Composer استفاده کنید.
برای شروع، پروژه جدیدی در IDE انتخابیتان ایجاد کنید یا وابستگی را به پروژه موجود اضافه کنید. Google عناصر کتابخانه مشتری را در
Packagist بهعنوان
googleads/ad-manager منتشر میکند.
composer.json
"require": {
"googleads/ad-manager": "^0.15.1"
}
خط فرمان
composer require googleads/ad-manager
پیکربندی اعتبارنامهها
کتابخانه کارخواه PHP از OAuth2 و اعتبارنامههای پیشفرض برنامه (ADC) برای اصالتسنجی استفاده میکند.
ADC بهترتیب در مکانهای زیر بهدنبال اطلاعات اعتباری میگردد:
- متغیر محیط
GOOGLE_APPLICATION_CREDENTIALS. - اطلاعات اعتباری کاربر ازطریق Google Cloud CLI (gcloud CLI) راهاندازی شده است.
- وقتی در Google Cloud اجرا میشود، حساب خدمات به منبع Google Cloud پیوست میشود.
برای ایجاد و پیکربندی کردن اطلاعات اعتباری ADC، به اصالتسنجی مراجعه کنید.
اولین درخواستتان را انجام دهید
هر سرویس دارای یک شیء ServiceClient با روشهایی برای هر روش REST است. مثال زیر یک شیء
Network را میخواند.
<?php
use Google\Ads\AdManager\V1\Client\NetworkServiceClient; use Google\Ads\AdManager\V1\GetNetworkRequest; use Google\Ads\AdManager\V1\Network; use Google\ApiCore\ApiException; /** * Retrieves a `Network` object. * * @param string $formattedName Resource name of Network. * Format: networks/{network_code} * Please see {@see NetworkServiceClient::networkName()} for help formatting this field. */ function get_network_sample(string $formattedName): void { // Create a client. $networkServiceClient = new NetworkServiceClient(); // Prepare the request message. $request = (new GetNetworkRequest()) ->setName($formattedName); // Call the API and handle any network failures. try { /** @var Network $response */ $response = $networkServiceClient->getNetwork($request); printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); } catch (ApiException $ex) { printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage()); } } /** * Helper to execute the sample. * */ function callSample(): void { $formattedName = NetworkServiceClient::networkName('NETWORK_CODE'); get_network_sample($formattedName); }
برای نمونههایی از روشها و منابع دیگر، به مخزن GitHub
googleapis/php-ads-ad-manager مراجعه کنید.
گزارش کردن درخواستها و پاسخهای HTTP
کتابخانه کارخواه PHP از گزارشگرهای سازگار با PSR-3 برای ثبت درخواستها و پاسخهای HTTP پشتیبانی میکند. بهطور پیشفرض، گزارشگیری غیرفعال است.
برای فعال کردن گزارشگیری پیشفرض در برونداد استاندارد، متغیر محیطی
GOOGLE_SDK_PHP_LOGGING
را در کد PHP یا محیطتان روی true تنظیم کنید:
putenv('GOOGLE_SDK_PHP_LOGGING=true'); $client = new NetworkServiceClient();
export GOOGLE_SDK_PHP_LOGGING=true
یا میتوانید هنگام ساختن کارخواه سرویس، گزارشگر سازگار با PSR-3 را ارسال کنید:
use Monolog\Handler\StreamHandler; use Monolog\Level; use Monolog\Logger; $monologLogger = new Logger('sdk client'); $monologLogger->pushHandler(new StreamHandler('php://stdout', Level::Debug)); $client = new NetworkServiceClient([ 'logger' => $monologLogger ]);
مدیریت خطاها
در کتابخانه کارخواه PHP، همه خطاهای «میانای برنامهسازی کاربردی Ad Manager» استثنایی از نوع ApiException ایجاد میکنند:
خطاهای تجزیه
فیلد دلیل خطا انواع خطا را بهطور یکتا شناسایی میکند. از این فیلد برای تعیین نحوه مدیریت خطا استفاده کنید.
try { $response = $networkServiceClient->getNetwork($formattedName); printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString()); } catch (ApiException $ex) { printf('Error message: %s' . PHP_EOL, $ex->getBasicMessage()); printf('Reason: %s' . PHP_EOL, $ex->getReason()); }
خطاهای Ad Manager API همچنین شامل یک request_id منحصربهفرد است که میتوانید برای دریافت کمک در عیبیابی به پشتیبانی ارائه دهید. مثال زیر request_id را استخراج میکند.
$requestInfo = null; foreach ($ex->getMetadata() as $metadata) { if($metadata["@type"] === "type.googleapis.com/google.rpc.RequestInfo") { $requestInfo = $metadata; break; } } if ($requestInfo == null) { printf('Unexpected empty RequestInfo'); } else { printf('RequestId: %s' . PHP_EOL, $requestInfo['requestId']); }
ساختن نامهای منبع
کتابخانه کارخواه کلاسهای کمکی برای ساختن نامهای منبع از شناسهها ارائه میدهد.
use Google\Ads\AdManager\V1\Client\OrderServiceClient; // Constructs a String in the format: // "networks/{networkCode}/orders/{orderId}" $orderName = OrderServiceClient::orderName("NETWORK_CODE", "ORDER_ID");
پیکربندی تنظیمات پروکسی
کتابخانه مشتری PHP از HTTP_PROXY و HTTPS_PROXY
تنظیمات محیطی پیروی میکند.