PHP

Google, Ad Manager API के साथ इंटरैक्ट करने के लिए PHP क्लाइंट लाइब्रेरी उपलब्ध कराता है. हमारा सुझाव है कि Composer के साथ क्लाइंट लाइब्रेरी का इस्तेमाल करें.

शुरू करने के लिए, अपनी पसंद के आईडीई में नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट में डिपेंडेंसी जोड़ें. Google, क्लाइंट लाइब्रेरी के आर्टफ़ैक्ट को googleads/ad-manager के तौर पर Packagist पर पब्लिश करता है.

composer require googleads/ad-manager

क्रेडेंशियल कॉन्फ़िगर करना

पुष्टि करने के लिए, PHP क्लाइंट लाइब्रेरी OAuth2 और ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (ADC) का इस्तेमाल करती है.

एडीसी, क्रेडेंशियल को इस क्रम में खोजता है:

  1. GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल.
  2. Google Cloud CLI (gcloud CLI) की मदद से सेट अप किए गए उपयोगकर्ता क्रेडेंशियल.
  3. 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; /** * 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 देखें.

एचटीटीपी अनुरोध और रिस्पॉन्स को लॉग करना

PHP क्लाइंट लाइब्रेरी, एचटीटीपी अनुरोधों और रिस्पॉन्स को लॉग करने के लिए, 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 के लिए तय की गई एनवायरमेंट सेटिंग का पालन करती है.