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