वीडियो: 2019 की वर्कशॉप में, सेवाओं और संसाधनों के बारे में हुई बातचीत देखें
इस गाइड में, Google Ads API के मुख्य कॉम्पोनेंट के बारे में बताया गया है. Google Ads API में संसाधन और सेवाएं शामिल होती हैं. संसाधन, Google Ads की किसी इकाई को दिखाता है. वहीं, सेवाएं Google Ads की इकाइयों को वापस पाती हैं और उनमें बदलाव करती हैं.
ऑब्जेक्ट हैरारकी
Google Ads खाते को ऑब्जेक्ट के पदानुक्रम के तौर पर देखा जा सकता है.
किसी खाते की टॉप-लेवल की संसाधन इकाई, ग्राहक होती है.
हर ग्राहक के पास एक या उससे ज़्यादा चालू कैंपेन होते हैं.
हर कैंपेन में एक या उससे ज़्यादा विज्ञापन ग्रुप होते हैं. इनका इस्तेमाल, आपके विज्ञापनों को लॉजिकल कलेक्शन में ग्रुप करने के लिए किया जाता है.
विज्ञापन ग्रुप के विज्ञापन से पता चलता है कि कौनसा विज्ञापन दिखाया जा रहा है. ऐप्लिकेशन कैंपेन को छोड़कर, हर विज्ञापन ग्रुप में एक या उससे ज़्यादा विज्ञापन ग्रुप विज्ञापन होते हैं. ऐप्लिकेशन कैंपेन में, हर विज्ञापन ग्रुप के लिए सिर्फ़ एक विज्ञापन ग्रुप विज्ञापन हो सकता है.
किसी विज्ञापन ग्रुप या कैंपेन में एक या एक से ज़्यादा AdGroupCriterion
या CampaignCriterion
अटैच किए जा सकते हैं. ये ऐसे मानदंड होते हैं जिनसे यह तय होता है कि विज्ञापन कैसे ट्रिगर होंगे.
शर्त के कई टाइप होते हैं, जैसे कि कीवर्ड, उम्र सीमा, और जगहें. कैंपेन लेवल पर तय किए गए मानदंड, कैंपेन में मौजूद अन्य सभी ऐसेट पर लागू होते हैं. आपके पास कैंपेन के लिए बजट और तारीखें तय करने का विकल्प भी होता है.
आखिर में, एक्सटेंशन को खाता, कैंपेन या विज्ञापन ग्रुप लेवल पर अटैच किया जा सकता है. एक्सटेंशन की मदद से, अपने विज्ञापनों में अतिरिक्त जानकारी दी जा सकती है. जैसे, फ़ोन नंबर, मोहल्ले का पता या प्रमोशन.
संसाधन
संसाधन, आपके Google Ads खाते में मौजूद इकाइयों को दिखाते हैं. Campaign
और AdGroup
संसाधनों के दो उदाहरण हैं.
ऑब्जेक्ट आईडी
Google Ads में मौजूद हर ऑब्जेक्ट की पहचान उसके आईडी से होती है. इनमें से कुछ आईडी, सभी Google Ads खातों में यूनीक होते हैं. वहीं, कुछ आईडी सिर्फ़ सीमित दायरे में यूनीक होते हैं.
ऑब्जेक्ट आईडी | खासियत का दायरा | क्या यह ग्लोबल यूनीक है? |
---|---|---|
बजट ID | ग्लोबल | हां |
कैंपेन आईडी | ग्लोबल | हां |
विज्ञापन समूह आईडी | ग्लोबल | हां |
विज्ञापन आईडी | विज्ञापन ग्रुप | नहीं, लेकिन (AdGroupId , AdId ) जोड़ी दुनिया भर में यूनीक है |
AdGroupCriterion ID | विज्ञापन ग्रुप | नहीं, लेकिन (AdGroupId , CriterionId ) जोड़ी दुनिया भर में यूनीक है |
CampaignCriterion ID | कैंपेन | नहीं, लेकिन (CampaignId , CriterionId ) जोड़ी दुनिया भर में यूनीक है |
विज्ञापन एक्सटेंशन | कैंपेन | नहीं, लेकिन (CampaignId , AdExtensionId ) जोड़ी दुनिया भर में यूनीक है |
लेबल ID | ग्लोबल | हां |
UserList ID | ग्लोबल | हां |
एसेट का आईडी | ग्लोबल | हां |
Google Ads ऑब्जेक्ट के लिए लोकल स्टोरेज डिज़ाइन करते समय, आईडी से जुड़े ये नियम काम आ सकते हैं.
कुछ ऑब्जेक्ट का इस्तेमाल, कई तरह की इकाइयों के लिए किया जा सकता है. ऐसे मामलों में, ऑब्जेक्ट में एक type
फ़ील्ड होता है, जिसमें उसके कॉन्टेंट के बारे में बताया जाता है. उदाहरण के लिए,
AdGroupAd
से किसी ऑब्जेक्ट का पता चलता है. जैसे, टेक्स्ट विज्ञापन, होटल विज्ञापन या स्थानीय विज्ञापन. इस वैल्यू को AdGroupAd.ad.type
फ़ील्ड से ऐक्सेस किया जा सकता है. साथ ही, यह AdType
enum में वैल्यू दिखाता है.
संसाधन के नाम
हर रिसॉर्स की पहचान, resource_name
स्ट्रिंग से की जाती है. यह स्ट्रिंग, रिसॉर्स और उसके पैरंट को एक पाथ में जोड़ती है. उदाहरण के लिए, कैंपेन के संसाधन के नाम इस फ़ॉर्म में होते हैं:
customers/customer_id/campaigns/campaign_id
इसलिए, अगर Google Ads खाते में ग्राहक आईडी 1234567
वाले कैंपेन का आईडी 987654
है, तो resource_name
यह होगा:
customers/1234567/campaigns/987654
सेवाएं
इन सेवाओं की मदद से, Google Ads की इकाइयों को वापस लाया जा सकता है और उनमें बदलाव किया जा सकता है. ये तीन तरह की सेवाएं होती हैं: बदलाव करने की सेवाएं, ऑब्जेक्ट और आंकड़ों को वापस पाने की सेवाएं, और मेटाडेटा को वापस पाने की सेवाएं.
ऑब्जेक्ट में बदलाव करना (म्यूटेट करना)
ये सेवाएं, mutate
अनुरोध का इस्तेमाल करके, किसी संसाधन टाइप के इंस्टेंस में बदलाव करती हैं. ये एक get
ऐसा अनुरोध भी उपलब्ध कराते हैं जिससे किसी एक संसाधन का इंस्टेंस वापस मिलता है. यह संसाधन के स्ट्रक्चर की जांच करने के लिए काम आ सकता है.
सेवाओं के उदाहरण:
ग्राहकों की जानकारी में बदलाव करने के लिए
CustomerService
.CampaignService
की मदद से कैंपेन में बदलाव किया जा सकता है.विज्ञापन ग्रुप में बदलाव करने के लिए,
AdGroupService
का इस्तेमाल करें.
हर mutate
अनुरोध में, उससे जुड़े operation
ऑब्जेक्ट शामिल होने चाहिए. उदाहरण के लिए, CampaignService.MutateCampaigns
तरीके में CampaignOperation
के एक या एक से ज़्यादा इंस्टेंस होने चाहिए. ऑब्जेक्ट में बदलाव करने और उनकी जांच करने के बारे में ज़्यादा जानने के लिए, ऑब्जेक्ट में बदलाव करना और उनकी जांच करना लेख पढ़ें.
एक साथ कई बदलाव करना
Google Ads ऑब्जेक्ट को एक साथ एक से ज़्यादा सोर्स से नहीं बदला जा सकता. अगर आपके ऐप्लिकेशन से कई उपयोगकर्ता एक ही ऑब्जेक्ट को अपडेट कर रहे हैं या कई थ्रेड का इस्तेमाल करके Google Ads ऑब्जेक्ट में एक साथ बदलाव किया जा रहा है, तो इससे गड़बड़ियां हो सकती हैं. इसमें एक ही ऐप्लिकेशन में कई थ्रेड से ऑब्जेक्ट को अपडेट करना या अलग-अलग ऐप्लिकेशन से ऑब्जेक्ट को अपडेट करना शामिल है. उदाहरण के लिए, आपका ऐप्लिकेशन और Google Ads के यूज़र इंटरफ़ेस (यूआई) का एक साथ चल रहा सेशन.
एपीआई, अपडेट करने से पहले किसी ऑब्जेक्ट को लॉक करने का तरीका नहीं देता. अगर दो सोर्स एक साथ किसी ऑब्जेक्ट में बदलाव करने की कोशिश करते हैं, तो एपीआई DatabaseError.CONCURRENT_MODIFICATION_ERROR
दिखाता है.
एसिंक्रोनस और सिंक्रोनस म्यूटेशन के बीच अंतर
Google Ads API के म्यूटेट तरीके सिंक्रोनस होते हैं. एपीआई कॉल, ऑब्जेक्ट में बदलाव होने के बाद ही जवाब देते हैं. इसलिए, आपको हर अनुरोध के जवाब का इंतज़ार करना पड़ता है. इस तरीके से कोड करना आसान है. हालांकि, अगर प्रोसेस को कॉल पूरा होने का इंतज़ार करना पड़ता है, तो इससे लोड बैलेंसिंग पर बुरा असर पड़ सकता है और संसाधनों का इस्तेमाल सही तरीके से नहीं हो पाएगा.
इसके अलावा, BatchJobService
का इस्तेमाल करके, ऑब्जेक्ट में एसिंक्रोनस तरीके से बदलाव किया जा सकता है. यह कई सेवाओं पर एक साथ कई कार्रवाइयां करता है और उनके पूरा होने का इंतज़ार नहीं करता. बैच जॉब सबमिट करने के बाद, Google Ads API सर्वर कार्रवाइयों को एसिंक्रोनस तरीके से पूरा करते हैं. इससे अन्य कार्रवाइयां करने के लिए प्रोसेस खाली हो जाती हैं. टास्क पूरा हुआ है या नहीं, यह देखने के लिए समय-समय पर टास्क का स्टेटस देखा जा सकता है.
एसिंक्रोनस प्रोसेसिंग के बारे में ज़्यादा जानने के लिए, बैच प्रोसेसिंग गाइड देखें.
पुष्टि करने से जुड़े बदलाव
ज़्यादातर म्यूटेट अनुरोधों की पुष्टि, कॉल को असली डेटा के ख़िलाफ़ लागू किए बिना की जा सकती है. ऑपरेशन को असल में लागू किए बिना, अनुरोध में मौजूद पैरामीटर और फ़ील्ड की गलत वैल्यू की जांच की जा सकती है.
इस सुविधा का इस्तेमाल करने के लिए, अनुरोध के validate_only
बूलियन फ़ील्ड को true
पर सेट करें. इसके बाद, अनुरोध की पूरी तरह से पुष्टि की जाएगी. यह पुष्टि इस तरह से की जाएगी जैसे अनुरोध को पूरा किया जाना हो. हालांकि, अनुरोध को पूरा नहीं किया जाएगा. अगर कोई गड़बड़ी नहीं मिलती है, तो खाली जवाब मिलता है. अगर पुष्टि नहीं हो पाती है, तो जवाब में मौजूद गड़बड़ी के मैसेज से पता चलेगा कि पुष्टि क्यों नहीं हो पाई.
validate_only
, नीति के सामान्य उल्लंघनों के लिए विज्ञापनों की जांच करने में खास तौर पर मददगार होता है. अगर विज्ञापन इन नीतियों का उल्लंघन करते हैं, तो उन्हें अपने-आप अस्वीकार कर दिया जाता है. जैसे, कुछ शब्दों, विराम चिह्न, कैपिटल लेटर या लंबाई का इस्तेमाल करना. एक खराब विज्ञापन की वजह से, पूरा बैच अस्वीकार किया जा सकता है. validate_only
अनुरोध में नया विज्ञापन टेस्ट करने से, इस तरह के किसी भी उल्लंघन का पता चल सकता है. इसे ऐक्शन में देखने के लिए, नीति के उल्लंघन से जुड़ी गड़बड़ियों को ठीक करने के लिए कोड का उदाहरण देखें.
ऑब्जेक्ट और परफ़ॉर्मेंस के आंकड़े पाना
GoogleAdsService
, ऑब्जेक्ट और परफ़ॉर्मेंस के आंकड़े पाने के लिए एक ही सेवा है.
Search
और SearchStream
के सभी अनुरोधों के लिए, GoogleAdsService
को एक क्वेरी की ज़रूरत होती है. इस क्वेरी में, क्वेरी करने के लिए संसाधन, संसाधन एट्रिब्यूट, और परफ़ॉर्मेंस मेट्रिक शामिल होनी चाहिए. साथ ही, अनुरोध को फ़िल्टर करने के लिए इस्तेमाल किए जाने वाले प्रेडिकेट और परफ़ॉर्मेंस के आंकड़ों को और ज़्यादा बारीकी से समझने के लिए इस्तेमाल किए जाने वाले सेगमेंट भी शामिल होने चाहिए. क्वेरी फ़ॉर्मैट के बारे में ज़्यादा जानने के लिए, Google Ads Query Language गाइड देखें.
मेटाडेटा वापस पाना
GoogleAdsFieldService
Google Ads API में मौजूद संसाधनों के बारे में मेटाडेटा को वापस लाता है. जैसे, किसी संसाधन के लिए उपलब्ध एट्रिब्यूट और उसका डेटा टाइप.
यह सेवा, GoogleAdsService
को क्वेरी बनाने के लिए ज़रूरी जानकारी देती है. आपकी सुविधा के लिए, GoogleAdsFieldService
से मिली जानकारी, फ़ील्ड के रेफ़रंस दस्तावेज़ में भी उपलब्ध है.