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