PHP

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

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

composer require googleads/ad-manager

শংসাপত্র কনফিগার করুন

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

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

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

আপনার ADC শংসাপত্র তৈরি এবং কনফিগার করার জন্য, প্রমাণীকরণ দেখুন।

আপনার প্রথম অনুরোধ করুন

প্রতিটি পরিষেবাতে প্রতিটি REST পদ্ধতির পদ্ধতি সহ একটি ServiceClient অবজেক্ট থাকে। নিম্নলিখিত উদাহরণটি একটি 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; /** * API to retrieve 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 অনুরোধ এবং প্রতিক্রিয়া

পিএইচপি ক্লায়েন্ট লাইব্রেরি 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
]);

ত্রুটিগুলি পরিচালনা করুন

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

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

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