Google Ads API PHP क्लाइंट लाइब्रेरी की src/Google/Ads/GoogleAds/VX डायरेक्ट्री में मौजूद सोर्स कोड, GAPIC (जनरेट किया गया एपीआई क्लाइंट) जनरेटर का इस्तेमाल करके अपने-आप जनरेट होता है. यह पब्लिश की गई प्रोटो फ़ाइलों पर आधारित होता है. यहां X, Google Ads API का वर्शन नंबर है.
इसके बाद, जनरेट किए गए सोर्स कोड में बदलाव किया जाता है, ताकि उसमें उन विशेषताओं और क्लास के रेफ़रंस शामिल किए जा सकें जो Google Ads API के साथ काम करने वाले सर्विस क्लाइंट बनाने के लिए ज़रूरी हैं. इसके लिए, GoogleAdsClient क्लास का इस्तेमाल किया जाता है. इसे GoogleAdsClientBuilder::build() को कॉल करके बनाया जाता है. GoogleAdsClient और GoogleAdsClientBuilder, दोनों ही मैन्युअल तरीके से मैनेज की जाने वाली क्लास हैं. ये src/Google/Ads/GoogleAds/Lib/VX/ में मौजूद हैं.
जनरेट की गई क्लास की जगहें
पोस्ट-प्रोसेस किए गए सर्विस क्लाइंट, src/Google/Ads/GoogleAds/VX/Services/Client/ में मौजूद होते हैं. उदाहरण के लिए, V26. साथ ही, उनसे जुड़े अनुरोध और जवाब के मैसेज की क्लास, src/Google/Ads/GoogleAds/VX/Services/ में मौजूद होती हैं. उदाहरण के लिए, MutateCampaignsRequest और SearchGoogleAdsRequest. एपीआई के छोटे रिलीज़ (जैसे कि v25.1) को उनकी मेजर वर्शन डायरेक्ट्री (V25) में जनरेट किया जाता है.
इस्तेमाल
आपको एक अनुरोध ऑब्जेक्ट बनाना होगा और उसे उस सेवा क्लाइंट को पास करना होगा जिसका आपको इस्तेमाल करना है. पैरामीटर ज़रूरी हैं या नहीं, इसके आधार पर आपके पास अनुरोध ऑब्जेक्ट बनाने के कई तरीके हैं. इनमें ज़रूरी पैरामीटर पास करने के लिए, स्टैटिक build() फ़ैक्ट्री मेथड भी शामिल है.
उदाहरण 1.1: ज़रूरी पैरामीटर वाले तरीके
यहां दिए गए सैंपल कोड में, CampaignServiceClient::mutateCampaigns() को कॉल करने का तरीका बताया गया है. $customerId और $campaignOperations, दोनों ज़रूरी पैरामीटर हैं. इसलिए, अनुरोध क्लास में एक स्टैटिक build() फ़ैक्ट्री मेथड जनरेट होता है जो दोनों पैरामीटर को स्वीकार करता है.
पैटर्न 1: स्टैटिक बिल्ड मेथड (सुझाया गया)
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
MutateCampaignsRequest::build(
$customerId,
$campaignOperations
)
);
पैटर्न 2: फ़्लूएंट सेटर
$campaignServiceClient = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
->setCustomerId($customerId)
->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);
उदाहरण 1.2: ज़रूरी और वैकल्पिक पैरामीटर वाले तरीके
यहां दिए गए सैंपल कोड में, GoogleAdsServiceClient::search() को कॉल किया गया है. इस उदाहरण में, जनरेट किया गया build() तरीका सिर्फ़ दो पैरामीटर ($customerId और $query) स्वीकार करता है, क्योंकि ये ज़रूरी पैरामीटर हैं. LIMIT क्लॉज़ को अनदेखा करके, क्वेरी से मैच करने वाले नतीजों की कुल संख्या का अनुरोध करने के लिए, setReturnTotalResultsCount() का इस्तेमाल करके इसे साफ़ तौर पर सेट किया जा सकता है. इसके अलावा, सभी पैरामीटर को एक साथ असोसिएटिव अरे में, SearchGoogleAdsRequest के कंस्ट्रक्टर को पास किया जा सकता है. जैसा कि पैटर्न 3 में दिखाया गया है.
पैटर्न 1: फ़्लूएंट सेटर के साथ स्टैटिक बिल्ड मेथड
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
SearchGoogleAdsRequest::build($customerId, $query)
->setReturnTotalResultsCount(true)
);
पैटर्न 2: फ़्लूएंट सेटर
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
->setCustomerId($customerId)
->setQuery($query)
->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);
तीसरा पैटर्न: अरे कंस्ट्रक्टर
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();
$request = new SearchGoogleAdsRequest([
'customer_id' => $customerId,
'query' => $query,
'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);
उदाहरण 2: सिर्फ़ वैकल्पिक पैरामीटर वाले तरीके
इस उदाहरण में, GeoTargetConstantServiceClient::suggestGeoTargetConstants() को कॉल करने का तरीका बताया गया है. GeoTargetConstantServiceClient::suggestGeoTargetConstants() के सभी पैरामीटर ज़रूरी नहीं हैं. इसलिए, इस मामले में सोर्स कोड में build() जनरेट नहीं होता है. आपको सेटर या अरे कंस्ट्रक्टर का इस्तेमाल करके, अनुरोध ऑब्जेक्ट बनाना होगा.
पैटर्न 1: फ़्लूएंट सेटर (सुझाया गया)
$geoTargetConstantServiceClient =
$googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
->setLocale($locale)
->setCountryCode($countryCode)
->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
$geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
पैटर्न 2: ऐरे कंस्ट्रक्टर
$geoTargetConstantServiceClient =
$googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
new SuggestGeoTargetConstantsRequest([
'locale' => $locale,
'country_code' => $countryCode,
'location_names' => new LocationNames(['names' => $locationNames])
])
);