Python में एपीआई का इस्तेमाल करने के लिए, ज़रूरी सभी अलग-अलग प्रोटो क्लास के रेफ़रंस फ़ेच करना मुश्किल हो सकता है. इसके लिए, आपको एपीआई की अच्छी समझ होनी चाहिए. साथ ही, प्रोटो या दस्तावेज़ों का रेफ़रंस देने के लिए, आपको बार-बार कॉन्टेक्स्ट स्विच करना पड़ सकता है.
क्लाइंट के get_service और get_type तरीके
इन दो गेटर तरीकों से, एपीआई में किसी भी सेवा या टाइप ऑब्जेक्ट को वापस पाया जा सकता है. get_service तरीके का इस्तेमाल, सेवा क्लाइंट को वापस पाने के लिए किया जाता है. get_type
का इस्तेमाल किसी भी अन्य ऑब्जेक्ट के लिए किया जाता है. सेवा क्लाइंट क्लास को, वर्शन पाथ google/ads/googleads/v*/services/services/ के तहत कोड में तय किया जाता है. साथ ही, सभी टाइप को अलग-अलग ऑब्जेक्ट कैटगरी, google/ads/googleads/v*/common|enums|errors|resources|services/types/ के तहत तय किया जाता है.
वर्शन डायरेक्ट्री के तहत मौजूद सभी कोड जनरेट किए जाते हैं. इसलिए, ऑब्जेक्ट को सीधे इंपोर्ट करने के बजाय, इन तरीकों का इस्तेमाल करना सबसे सही तरीका है. ऐसा इसलिए, क्योंकि कोडबेस की संरचना में बदलाव हो सकता है.
GoogleAdsService क्लाइंट का इंस्टेंस
वापस पाने के लिए, get_service तरीके का इस्तेमाल करने का उदाहरण यहां दिया गया है.
from google.ads.googleads.client import GoogleAdsClient
# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v25 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v25")
googleads_service = client.get_service("GoogleAdsService")
Campaign इंस्टेंस वापस पाने के लिए, get_type तरीके का इस्तेमाल करने का उदाहरण यहां दिया गया है.
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v25")
campaign = client.get_type("Campaign")
Enums
Enums को वापस पाने के लिए, get_type तरीके का इस्तेमाल किया जा सकता है. हालांकि, हर GoogleAdsClient इंस्टेंस में एक enums एट्रिब्यूट भी होता है. यह get_type तरीके के जैसे ही मेकैनिज़्म का इस्तेमाल करके, Enums को डाइनैमिक तरीके से लोड करता है. इस इंटरफ़ेस को get_type का इस्तेमाल करने के मुकाबले, ज़्यादा आसान और पढ़ने में आसान बनाया गया है:
client = GoogleAdsClient.load_from_storage(version=v25)
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
प्रोटो ऑब्जेक्ट के वे फ़ील्ड जो enums होते हैं उन्हें Python में, नेटिव
enum टाइप से दिखाया जाता है. इसका मतलब है कि सदस्य की वैल्यू को आसानी से पढ़ा जा सकता है. Python repl में, पिछले उदाहरण के campaign इंस्टेंस के साथ काम करना:
>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3
कभी-कभी, enum वैल्यू से जुड़े फ़ील्ड का नाम जानना काम का होता है. जैसा कि ऊपर दिखाया गया है. name एट्रिब्यूट का इस्तेमाल करके, इस जानकारी को ऐक्सेस किया जा सकता है:
>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>
enums के साथ इंटरैक्ट करने का तरीका इस बात पर निर्भर करता है कि आपने
use_proto_plus
कॉन्फ़िगरेशन को true या false पर सेट किया है. दोनों इंटरफ़ेस के बारे में ज़्यादा जानने के लिए, protobuf मैसेज का दस्तावेज़ देखें.
वर्शन
एपीआई के कई वर्शन एक साथ बनाए रखे जाते हैं. v25 भले ही सबसे नया वर्शन हो, लेकिन पुराने वर्शन अब भी ऐक्सेस किए जा सकते हैं. हालांकि, ऐसा तब तक किया जा सकता है, जब तक उन्हें बंद न कर दिया जाए. लाइब्रेरी में, एपीआई के हर चालू वर्शन के लिए अलग-अलग प्रोटो मैसेज क्लास शामिल होंगी. किसी खास वर्शन के लिए मैसेज क्लास को ऐक्सेस करने के लिए, क्लाइंट को शुरू करते समय version कीवर्ड पैरामीटर दें. इससे, वह हमेशा दिए गए वर्शन से इंस्टेंस वापस करेगा:
client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v25/")
# The Campaign instance will be from the v25 version of the API.
campaign = client.get_type("Campaign")
get_service और get_type तरीकों को कॉल करते समय, वर्शन तय करना भी मुमकिन है. ऐसा करने से, क्लाइंट को शुरू करते समय दिया गया वर्शन बदल जाएगा:
client = GoogleAdsService.load_from_storage()
# This will load the v25 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v25")
client = GoogleAdsService.load_from_storage(version="v25")
# This will load the v23 version of a Campaign.
campaign = client.get_type("Campaign", version="v23")
अगर version कीवर्ड पैरामीटर नहीं दिया जाता है, तो लाइब्रेरी डिफ़ॉल्ट रूप से सबसे नए वर्शन का इस्तेमाल करेगी. सबसे नए और अन्य उपलब्ध वर्शन की अपडेट की गई सूची
एपीआई के रेफ़रंस दस्तावेज़ के बाईं ओर मौजूद नेविगेशन सेक्शन में देखी जा सकती है.