गैप

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/ (उदाहरण के लिए, V25) में मौजूद होते हैं. साथ ही, अनुरोध और जवाब के मैसेज क्लास (जैसे कि MutateCampaignsRequest और SearchGoogleAdsRequest) src/Google/Ads/GoogleAds/VX/Services/ में मौजूद होते हैं. एपीआई के माइनर वर्शन (जैसे कि v25.1) को उनके मेजर वर्शन की डायरेक्ट्री (V25) में जनरेट किया जाता है.

इस्तेमाल

आपको एक अनुरोध ऑब्जेक्ट बनाना होगा और उसे उस सेवा क्लाइंट को पास करना होगा जिसका आपको इस्तेमाल करना है. पैरामीटर ज़रूरी हैं या नहीं, इसके आधार पर आपके पास अनुरोध ऑब्जेक्ट बनाने के कई तरीके होते हैं. इनमें ज़रूरी पैरामीटर पास करने के लिए, स्टैटिक build() फ़ैक्ट्री मेथड भी शामिल है.

उदाहरण 1.1: ज़रूरी पैरामीटर वाले तरीके

यहां दिए गए सैंपल कोड में, CampaignServiceClient::mutateCampaigns() को कॉल करने का तरीका बताया गया है. $customerId और $campaignOperations, दोनों ज़रूरी पैरामीटर हैं. इसलिए, अनुरोध क्लास में एक स्टैटिक build() फ़ैक्ट्री मेथड जनरेट होती है. यह दोनों पैरामीटर स्वीकार करती है.

पहला पैटर्न: स्टैटिक बिल्ड करने का तरीका (सुझाया गया)

$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() का इस्तेमाल करके इसे साफ़ तौर पर सेट किया जा सकता है. इसके अलावा, पैटर्न 3 में दिखाए गए तरीके से, SearchGoogleAdsRequest के कंस्ट्रक्टर को एक साथ सभी पैरामीटर पास किए जा सकते हैं. इसके लिए, आपको एक असोसिएटिव ऐरे का इस्तेमाल करना होगा.

पैटर्न 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);

पैटर्न 3: ऐरे कंस्ट्रक्टर

$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])
    ])
);