Ad Manager API-এর সাথে ইন্টার্যাক্ট করার জন্য Google একটি PHP ক্লায়েন্ট লাইব্রেরি প্রদান করে। আমরা Composer-এর সাথে ক্লায়েন্ট লাইব্রেরি ব্যবহার করার সাজেশন দিই।
শুরু করতে, আপনার পছন্দের IDE-তে একটি নতুন প্রোজেক্ট তৈরি করুন অথবা আগে থেকে থাকা প্রোজেক্টে
ডিপেন্ডেন্সি যোগ করুন। Google, Packagist-এ
googleads/ad-manager হিসেবে
ক্লায়েন্ট লাইব্রেরি আর্টিফ্যাক্ট প্রকাশ করে।
composer.json
"require": {
"googleads/ad-manager": "^0.16.0"
}
কমান্ড লাইন
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 ক্লায়েন্ট লাইব্রেরি HTTP অনুরোধ ও উত্তর লগ করার জন্য PSR-3 মেনে চলা লগারকে সাপোর্ট করে। ডিফল্ট হিসেবে, লগিং বন্ধ করা থাকে।
স্ট্যান্ডার্ড আউটপুটে ডিফল্ট লগিং চালু করতে, আপনার PHP কোড বা এনভায়রনমেন্টে এনভায়রনমেন্ট ভেরিয়েবেল
GOOGLE_SDK_PHP_LOGGING
থেকে 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 API সংক্রান্ত সমস্যার জন্য 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
এনভায়রনমেন্ট সেটিংস মেনে চলে।