Google, Ad Manager API के साथ इंटरैक्ट करने के लिए, PHP क्लाइंट लाइब्रेरी उपलब्ध कराता है. हमारा सुझाव है कि आप Composer के साथ क्लाइंट लाइब्रेरी का इस्तेमाल करें.
शुरू करने के लिए, अपनी पसंद के IDE में एक नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट में डिपेंडेंसी जोड़ें. Google, Packagist पर क्लाइंट लाइब्रेरी आर्टफ़ैक्ट को
googleads/ad-manager के तौर पर पब्लिश करता है.
composer.json
"require": {
"googleads/ad-manager": "^0.16.0"
}
कमांड लाइन
composer require googleads/ad-manager
क्रेडेंशियल कॉन्फ़िगर करना
PHP क्लाइंट लाइब्रेरी, पुष्टि करने के लिए OAuth2 और ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) का इस्तेमाल करती है.
एडीसी, क्रेडेंशियल को इन जगहों पर क्रम से खोजता है:
GOOGLE_APPLICATION_CREDENTIALSएनवायरमेंट वैरिएबल.- Google Cloud CLI (gcloud CLI) की मदद से सेट अप किए गए उपयोगकर्ता क्रेडेंशियल.
- Google Cloud पर चलने के दौरान, Google Cloud संसाधन से जुड़ा सेवा खाता.
एडीसी क्रेडेंशियल बनाने और उन्हें कॉन्फ़िगर करने के लिए, पुष्टि करना लेख पढ़ें.
अपना पहला अनुरोध करना
हर सेवा में एक 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 देखें.
एचटीटीपी अनुरोध और जवाब लॉग करना
PHP क्लाइंट लाइब्रेरी, एचटीटीपी अनुरोधों और जवाबों को लॉग करने के लिए, पीएसआर-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 एनवायरमेंट की सेटिंग का पालन करती है.