सेवा और टाइप पाने वाले

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 v17 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v17")
googleads_service = client.get_service("GoogleAdsService")

यहां दिए गए उदाहरण में, Campaign इंस्टेंस को वापस पाने के लिए, get_type तरीके का इस्तेमाल करने का तरीका बताया गया है.

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v17")
campaign = client.get_type("Campaign")

Enums

Enums पाने के लिए get_type तरीके का इस्तेमाल किया जा सकता है. हालांकि, हर GoogleAdsClient इंस्टेंस में एक enums एट्रिब्यूट भी होता है, जो get_type वाले तरीके का इस्तेमाल करके, Enums को डाइनैमिक तौर पर लोड करता है. यह इंटरफ़ेस get_type इस्तेमाल करने के बजाय, पढ़ने में आसान और आसान बनाया गया है:

client = GoogleAdsClient.load_from_storage(version=v17)

campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED

ईनम वाले प्रोटो ऑब्जेक्ट फ़ील्ड को Python में, नेटिव enum टाइप से दिखाया जाता है. इसका मतलब है कि उस सदस्य की वैल्यू आसानी से पढ़ी जा सकती है. Python repl में पिछले उदाहरण से campaign इंस्टेंस के साथ काम करना:

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

कभी-कभी इस तरह के फ़ील्ड का नाम जानना मददगार होता है जो एनम वैल्यू से मेल खाता हो. इस जानकारी को ऐक्सेस करने के लिए, name एट्रिब्यूट का इस्तेमाल करें:

>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>

ईनम के साथ इंटरैक्ट करना, इस बात पर निर्भर करता है कि आपने use_proto_plus कॉन्फ़िगरेशन को true पर सेट किया है या false पर. दो इंटरफ़ेस के बारे में जानकारी के लिए, प्रोटोबफ़ मैसेज दस्तावेज़ देखें.

वर्शन

एक ही समय पर, इस एपीआई के कई वर्शन मैनेज किए जाते हैं. हालांकि, v17 सबसे नया वर्शन हो सकता है, लेकिन इसके बंद होने तक पुराने वर्शन ऐक्सेस किए जा सकेंगे. लाइब्रेरी में हर चालू एपीआई वर्शन से जुड़ी अलग-अलग प्रोटो मैसेज क्लास शामिल होंगी. किसी खास वर्शन के लिए मैसेज क्लास को ऐक्सेस करने के लिए, क्लाइंट को शुरू करते समय version कीवर्ड पैरामीटर दें, ताकि वह हमेशा दिए गए वर्शन से इंस्टेंस दिखाए:

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v17/")
# The Campaign instance will be from the v17 version of the API.
campaign = client.get_type("Campaign")

get_service और get_type मेथड का इस्तेमाल करते समय भी वर्शन तय किया जा सकता है. ऐसा करने से, क्लाइंट बनाते समय दिया गया वर्शन बदल जाएगा.

client = GoogleAdsService.load_from_storage()
# This will load the v17 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v17")

client = GoogleAdsService.load_from_storage(version="v17")
# This will load the v15 version of a Campaign.
campaign = client.get_type("Campaign", version="v15")

अगर कोई version कीवर्ड पैरामीटर नहीं दिया जाता है, तो लाइब्रेरी डिफ़ॉल्ट रूप से सबसे नए वर्शन का इस्तेमाल करेगी. नए और अन्य उपलब्ध वर्शन की अपडेट की गई सूची, एपीआई के संदर्भ दस्तावेज़ के बाईं ओर दिए गए नेविगेशन सेक्शन में मिल सकती है.