PHP

গুগল অ্যাড ম্যানেজার এপিআই-এর সাথে ইন্টারঅ্যাক্ট করার জন্য একটি পিএইচপি ক্লায়েন্ট লাইব্রেরি প্রদান করে। আমরা কম্পোজারের সাথে এই ক্লায়েন্ট লাইব্রেরিটি ব্যবহার করার পরামর্শ দিই।

শুরু করার জন্য, আপনার পছন্দের IDE-তে একটি নতুন প্রজেক্ট তৈরি করুন অথবা একটি বিদ্যমান প্রজেক্টে ডিপেন্ডেন্সিটি যোগ করুন। গুগল ক্লায়েন্ট লাইব্রেরি আর্টিফ্যাক্টগুলো Packagist-এ googleads/ad-manager হিসেবে প্রকাশ করে।

composer.json

"require": {
  "googleads/ad-manager": "^0.14.0"
}

কমান্ড লাইন

composer require googleads/ad-manager

পরিচয়পত্র কনফিগার করুন

PHP ক্লায়েন্ট লাইব্রেরিটি প্রমাণীকরণের জন্য OAuth2 এবং অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়ালস (ADC) ব্যবহার করে।

ADC নিম্নলিখিত স্থানগুলিতে ক্রমানুসারে ক্রেডেনশিয়াল অনুসন্ধান করে:

  1. GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবল।
  2. Google Cloud CLI (gcloud CLI)-এর মাধ্যমে ব্যবহারকারীর পরিচয়পত্র সেট আপ করা হয়েছে।
  3. গুগল ক্লাউডে চালানোর সময়, পরিষেবা অ্যাকাউন্টটি গুগল ক্লাউড রিসোর্সের সাথে সংযুক্ত থাকে।

আপনার 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); }

অন্যান্য পদ্ধতি ও রিসোর্সের উদাহরণের জন্য, googleapis/php-ads-ad-manager গিটহাব রিপোজিটরিটি দেখুন।

HTTP অনুরোধ এবং প্রতিক্রিয়া লগ করুন

পিএইচপি ক্লায়েন্ট লাইব্রেরিটি এইচটিটিপি অনুরোধ এবং প্রতিক্রিয়া লগ করার জন্য পিএসআর-৩ অনুবর্তী লগার সমর্থন করে। ডিফল্টরূপে, লগিং নিষ্ক্রিয় থাকে।

স্ট্যান্ডার্ড আউটপুটে ডিফল্ট লগিং চালু করতে, আপনার 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());
}

অ্যাড ম্যানেজার এপিআই ত্রুটিগুলোতে একটি অনন্য 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");

প্রক্সি সেটিংস কনফিগার করুন

পিএইচপি ক্লায়েন্ট লাইব্রেরিটি HTTP_PROXY এবং HTTPS_PROXY এনভায়রনমেন্ট সেটিংস মেনে চলে।