एपीआई का इस्तेमाल करते समय, प्रोटो क्लास के रेफ़रंस पाने के लिए, यह ज़रूरी है कि आपको एपीआई की अच्छी जानकारी हो. इसके अलावा, आपको सटीक नेमस्पेस पाथ के लिए, प्रोटो रेफ़रंस दस्तावेज़ को बार-बार देखना होगा.
ProtoLookupUtil
GoogleAdsClient पर मौजूद लुकअप यूटिलिटी के तरीके, फ़ैक्ट्रियों और ServiceLookup की मदद से काम करते हैं. ये लेगसी ProtoLookupUtil क्लास की जगह लेते हैं. इनकी मदद से, सेवाओं, कार्रवाइयों, गिनती, और संसाधनों के इंस्टेंस को देखा और बनाया जा सकता है. इसके लिए, आपको एपीआई वर्शन नंबर और मॉड्यूल नेमस्पेस को ट्रैक करने की ज़रूरत नहीं होती. डिफ़ॉल्ट रूप से, ये तरीके आपके इंस्टॉल किए गए gem के साथ काम करने वाले सबसे नए एपीआई वर्शन (V25, नई रिलीज़ में) का इस्तेमाल करते हैं. यहां एपीआई की माइनर रिलीज़, जैसे कि v25.1, अपने मेजर वर्शन मॉड्यूल V25 का इस्तेमाल करती हैं. इसके अलावा, लुकअप कॉल पर एपीआई वर्शन का प्रीफ़िक्स (जैसे कि v25) भी तय किया जा सकता है.
लुकअप यूटिलिटी के बिना, कैंपेन रिसॉर्स को सीधे तौर पर इसके वर्शन वाले नेमस्पेस से इंस्टैंटिएट किया जाता है:
campaign =
Google::Ads::GoogleAds::V25::Resources::Campaign.new
क्लाइंट लुकअप के तरीकों से, संसाधन को सीधे क्लाइंट से इंस्टैंटिएट किया जा सकता है:
campaign = client.resource.campaign
किसी संसाधन, सेवा या कार्रवाई को फ़ेच करते समय, उस इकाई का एक इंस्टेंस वापस मिलता है:
# Instantiate an operation
operation = client.operation.campaign
सेवा की जानकारी ढूंढना
सेवा के क्लाइंट फ़ेच करने के लिए, client.service तरीके का इस्तेमाल करें. भले ही, आपने इस यूटिलिटी का इस्तेमाल अन्य इकाइयों के लिए न किया हो. client.service, सेवा के लिए पुष्टि करने से जुड़ी क्रेडेंशियल और ट्रांसपोर्ट सेटिंग को अपने-आप कॉन्फ़िगर करता है. ऐसा, सेवा के लिए वापस किए गए क्लाइंट पर किया जाता है:
campaign_service = client.service.campaign
इन्यूमरेशन लुकअप
प्रोटोबफ़ मैसेज में मौजूद enum फ़ील्ड के लिए, सीधे तौर पर Ruby सिंबल असाइन करें. इसके लिए, इन्यूमरेशन मॉड्यूल को देखने की ज़रूरत नहीं है:
campaign.status = :PAUSED
रनटाइम के दौरान किसी इन्यूमरेशन के सभी मान्य सिंबल की जांच करने या उन पर बार-बार काम करने के लिए, client.enum का इस्तेमाल करें. यह उस enum के लिए Google::Protobuf::EnumDescriptor दिखाता है:
status_enum = client.enum.campaign_status
status_enum.each { |status| p status }