गैप

src/Google/Ads/GoogleAds/vX में सोर्स कोड Google Ads API PHP क्लाइंट लाइब्रेरी की डायरेक्ट्री, जिसमें X Google Ads API है वर्शन को GAPIC (जनरेट किए गए एपीआई क्लाइंट) का इस्तेमाल करके अपने-आप जनरेट किया जाता है जनरेटर, पब्लिश की गई किताब पर आधारित प्रोटो फ़ाइलें.

इसके बाद, जनरेट किए गए सोर्स कोड में बदलाव किया जाता है, ताकि उसमें विशेषताओं के रेफ़रंस और इसका इस्तेमाल करके, Google Ads API के साथ काम करने वाले सेवा क्लाइंट बनाने के लिए क्लास की ज़रूरत होती है GoogleAdsClient क्लास को कॉल करने पर बनाया जाता है GoogleAdsClientBuilder::build(). GoogleAdsClient और, दोनों GoogleAdsClientBuilder मैन्युअल तौर पर बनाई गई क्लास हैं. ये यहां मौजूद हैं src/Google/Ads/GoogleAds/Lib/vX/.

GAPIC v2 सोर्स कोड

v20.1.0 वर्शन से, क्लाइंट लाइब्रेरी में इसमें GAPIC सोर्स कोड का नया वर्शन भी src/Google/Ads/GoogleAds/vX, जो सेवा के लिए अनुरोध ऑब्जेक्ट भेजने की सुविधा देता है ग्राहकों का तरीकों का इस्तेमाल करना होगा. GAPIC v2 नाम के इस नए वर्शन का इस्तेमाल तैयारी के लिए भी किया जा सकता है ये काम आ सकते हैं. पहले वाले GAPIC सोर्स कोड, GAPIC v1 पर यह है ये फ़ॉर्मैट, साल 2023 के आखिर तक हर रिलीज़ के साथ जनरेट और शामिल किए जाएंगे.

Google Ads API PHP क्लाइंट लाइब्रेरी की मदद से, लिंक करने के लिए वर्शन चुना जा सकता है GoogleAdsClient कॉन्फ़िगरेशन सेटिंग का इस्तेमाल कर रहा है useGapicV2Source. जब यह सेटिंग इस पर सेट होती है true पर क्लाइंट लाइब्रेरी एक GoogleAdsClient ऑब्जेक्ट जनरेट करती है, जो GAPIC v2 सेवा क्लाइंट.

जनरेट की गई क्लास की जगहें

यहां फ़ाइल की जगहों के GAPIC वर्शन के बीच अंतर बताया गया है दो क्लास टाइप:

GAPIC से जनरेट किए गए क्लाइंट और उनसे जुड़ी फ़ाइलें GAPIC v1
src/Google/Ads/GoogleAds/VX/Services/Gapic/
GAPIC v2: कोई नहीं. सिर्फ़ पोस्ट-प्रोसेस की गई फ़ाइल ही तैयार होती है.
प्रोसेस करने के बाद क्लाइंट GAPIC v1
src/Google/Ads/GoogleAds/VX/Services/
GAPIC v2
src/Google/Ads/GoogleAds/VX/Services/Client/

इस्तेमाल

GAPIC v1 के लिए ज़रूरी है कि आप हर अनुरोध पैरामीटर को सीधे किसी तरीके में पास करें, जबकि GAPIC v2 के लिए यह ज़रूरी है कि आप इसके बजाय एक अनुरोध ऑब्जेक्ट पास करें. ध्यान दें कि कुछ मामलों में, GAPIC के बाद से आपके पास अनुरोध ऑब्जेक्ट बनाने के एक से ज़्यादा तरीके होते हैं वर्शन 2, ज़रूरी पास करने के लिए build() नाम का एक आसान तरीका भी जनरेट करता है पैरामीटर का इस्तेमाल करें.

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

नीचे दिया गया सैंपल कोड, GAPIC में CampaignService::mutate() को कॉल करने की तुलना करता है वर्शन 1 और v2. ध्यान दें कि सभी पैरामीटर ($customerId और $operations) ज़रूरी पैरामीटर हैं, इसलिए दोनों पैरामीटर को स्वीकार करने वाला build() जनरेट होता है को GAPIC v2 कोड में रखना चाहिए.

पैटर्न 1 GAPIC v1
$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    $customerId,
    $campaignOperations
);
      
GAPIC v2
$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$response = $campaignServiceClient->mutateCampaigns(
    MutateCampaignsRequest::build(
      $customerId,
      $campaignOperations
    )
);
      
पैटर्न 2 GAPIC v1
N/A
GAPIC v2
$campaignServiceClient
    = $googleAdsClient->getCampaignServiceClient();
$request = (new MutateCampaignsRequest())
    ->setCustomerId($customerId)
    ->setCampaignOperations($campaignOperations);
$response = $campaignServiceClient->mutateCampaigns($request);
      

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

नीचे दिया गया सैंपल कोड, GoogleAdsServiceClient::search() को कॉल करने की तुलना करता है GAPIC v1 और v2. इस उदाहरण में, GAPIC में जनरेट हुआ build() वर्शन 2 सोर्स कोड में सिर्फ़ दो पैरामीटर ($customerId और $query) स्वीकार किए जाते हैं, क्योंकि तो पैरामीटर हों. मेल खाने वाले नतीजों की कुल संख्या का अनुरोध करने के लिए LIMIT क्लॉज़ को अनदेखा करते हुए क्वेरी को सेट किया है, तो setReturnTotalResultsCount(). इसके अलावा, सभी पैरामीटर पास किए जा सकते हैं को एक साथ SearchGoogleAdsRequest के कंस्ट्रक्टर के साथ जोड़ें, जैसा कि पैटर्न 3 में दिखाया गया है.

पैटर्न 1 GAPIC v1
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    $customerId,
    $query,
    ['returnTotalResultsCount' => true]
);
      
GAPIC v2
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$response = $googleAdsServiceClient->search(
    SearchGoogleAdsRequest::build($customerId, $query)
        ->setReturnTotalResultsCount(true)
);
      
पैटर्न 2 GAPIC v1
N/A
GAPIC v2
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest())
    ->setCustomerId($customerId)
    ->setQuery($query)
    ->setReturnTotalResultsCount(true);
$response = $googleAdsServiceClient->search($request);
      
पैटर्न 3 GAPIC v1
N/A
GAPIC v2
$googleAdsServiceClient
    = $googleAdsClient->getGoogleAdsServiceClient();
$request = (new SearchGoogleAdsRequest([
    'customer_id' => $customerId,
    'query' => $query,
    'return_total_results_count' => true
]);
$response = $googleAdsServiceClient->search($request);
      

दूसरा उदाहरण: ऐसे तरीके जिनमें सिर्फ़ वैकल्पिक पैरामीटर दिए गए हों

इतने सेकंड बाद, GeoTargetConstantServiceClient::suggestGeoTargetConstants() को कॉल करने की तुलना करें GAPIC v1 और v2. के सभी पैरामीटर से GeoTargetConstantServiceClient::suggestGeoTargetConstants() का इस्तेमाल करना ज़रूरी नहीं है, इस मामले में GAPIC v2 सोर्स कोड में build() जनरेट नहीं होता—आप आपको खुद ही अनुरोध ऑब्जेक्ट बनाना होगा.

पैटर्न 1 GAPIC v1
$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants([
    'locale' => $locale,
    'countryCode' => $countryCode,
    'locationNames' => new LocationNames(['names' => $locationNames])
]);
      
GAPIC v2
$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$request = (new SuggestGeoTargetConstantsRequest())
    ->setLocale($locale)
    ->setCountryCode($countryCode)
    ->setLocationNames(new LocationNames(['names' => $locationNames]));
$response =
    $geoTargetConstantServiceClient->suggestGeoTargetConstants($request);
      
पैटर्न 2 GAPIC v1
N/A
GAPIC v2
$geoTargetConstantServiceClient =
    $googleAdsClient->getGeoTargetConstantServiceClient();
$response = $geoTargetConstantServiceClient->suggestGeoTargetConstants(
    new SuggestGeoTargetConstantsRequest([
        'locale' => $locale,
        'country_code' => $countryCode,
        'location_names' => new LocationNames(['names' => $locationNames])
    ])
);