Google Ads API, पुष्टि करने और अनुमति देने के लिए OAuth 2.0 प्रोटोकॉल का इस्तेमाल करता है. यह प्रोटोकॉल, Google के अन्य एपीआई के लिए भी इस्तेमाल किया जाता है. OAuth 2.0 की मदद से, Google Ads API क्लाइंट ऐप्लिकेशन, उपयोगकर्ता की लॉगिन जानकारी को मैनेज या स्टोर किए बिना, उसके Google Ads खाते को ऐक्सेस कर सकता है.
इस गाइड में, OAuth 2.0 के तीन सबसे सामान्य फ़्लो का इस्तेमाल करके, Google Ads API की पुष्टि के लिए Java क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने का तरीका बताया गया है. साथ ही, इसमें ज़रूरी क्रेडेंशियल के बारे में भी जानकारी दी गई है.
Google Ads API के ऐक्सेस मॉडल के बारे में ज़्यादा जानने के लिए, Google Ads के ऐक्सेस मॉडल के बारे में जानकारी देने वाली गाइड पढ़ें.
क्रेडेंशियल
Google Ads API को ऐक्सेस करने के लिए, डेवलपर टोकन, OAuth 2.0 क्रेडेंशियल, और कुछ मामलों में, लॉगिन करने के लिए ग्राहक आईडी की ज़रूरत होती है.
डेवलपर टोकन
डेवलपर टोकन, किसी मैनेजर खाते से लिंक होता है. इसे Google Ads के वेब इंटरफ़ेस में देखा जा सकता है.
डेवलपर टोकन, किसी मैनेजर खाते से लिंक होता है. हालांकि, इससे उस खाते को ऐक्सेस नहीं किया जा सकता. इसके बजाय, डेवलपर टोकन से सामान्य तौर पर एपीआई को ऐक्सेस किया जा सकता है. वहीं, OAuth 2.0 के ज़रिए, खाते के लेवल पर ऐक्सेस को कॉन्फ़िगर किया जाता है.
क्लाइंट लाइब्रेरी में, डेवलपर टोकन को आपकी ads.properties फ़ाइल में मौजूद api.googleads.developerToken कुंजी से तय किया जाता है.
OAuth 2.0 क्रेडेंशियल
Google खाते के उन उपयोगकर्ताओं के तौर पर अनुमति देने के लिए जिनके पास Google Ads खातों को ऐक्सेस करने की अनुमति है, आपको OAuth 2.0 क्रेडेंशियल का सेट देना होगा. ज़रूरी क्रेडेंशियल का टाइप, इस्तेमाल किए जा रहे OAuth 2.0 फ़्लो के हिसाब से अलग-अलग होता है.
लाइब्रेरी, तीन फ़्लो के साथ काम करती है:
- सेवा खाते का फ़्लो
- एक उपयोगकर्ता की पुष्टि का फ़्लो
- डिवाइस के एक से ज़्यादा उपयोगकर्ताओं की पुष्टि का फ़्लो
Google Ads API के OAuth फ़्लो के बारे में जानने के लिए, OAuth की खास जानकारी देखें. साथ ही, ज़रूरी क्रेडेंशियल पाने के लिए, अपनी ज़रूरतों के हिसाब से सबसे सही फ़्लो के लिए दिए गए निर्देशों का पालन करें.
लॉगिन करने के लिए ग्राहक आईडी
ज़रूरत पड़ने पर, किसी ऐसे मैनेजर खाते का ग्राहक आईडी तय करें जो विज्ञापन दिखाने वाले खाते को ऐक्सेस करने की अनुमति देता है. अगर आपको ग्राहक खाते का ऐक्सेस, किसी मैनेजर खाते के ज़रिए मिला है, तो आपको यह आईडी तय करना होगा. ग्राहक आईडी के पाथ पर मौजूद सभी मैनेजर खातों को तय करने की ज़रूरत नहीं है. सिर्फ़ सबसे ऊपर मौजूद मैनेजर आईडी को तय करें, जिसका इस्तेमाल आपने ऐक्सेस की अनुमतियों के लिए किया है. ज़्यादा जानकारी के लिए, इससे जुड़ा दस्तावेज़ देखें.
क्लाइंट लाइब्रेरी में, लॉगिन करने के लिए ग्राहक आईडी को आपकी ads.properties फ़ाइल में मौजूद api.googleads.loginCustomerId कुंजी से तय किया जाता है.
कॉन्फ़िगरेशन
आपके पास क्लाइंट लाइब्रेरी को ads.properties फ़ाइल, एनवायरमेंट वैरिएबल या प्रोग्राम के ज़रिए कॉन्फ़िगर करने का विकल्प होता है. इस गाइड में, ads.properties फ़ाइल का इस्तेमाल करने पर फ़ोकस किया गया है. सभी विकल्पों के बारे में जानने के लिए, कॉन्फ़िगरेशन
के बारे में जानकारी देने वाली गाइड देखें.
ads.properties फ़ाइल का इस्तेमाल करने पर, इसे अपनी होम डायरेक्ट्री में रखें:
~/ads.properties.
OAuth के वर्कफ़्लो
Google Ads API के साथ काम करते समय, आम तौर पर तीन वर्कफ़्लो इस्तेमाल किए जाते हैं.
सेवा खाते का फ़्लो
अगर आपके वर्कफ़्लो में किसी तरह के मानवीय इंटरैक्शन की ज़रूरत नहीं है, तो यह वर्कफ़्लो इस्तेमाल करने का सुझाव दिया जाता है. इस वर्कफ़्लो के लिए, कॉन्फ़िगरेशन का एक चरण ज़रूरी है. इसमें उपयोगकर्ता, अपने Google Ads खाते में एक सेवा खाता जोड़ता है. इसके बाद, ऐप्लिकेशन, उपयोगकर्ता के Google Ads खाते को मैनेज करने के लिए, सेवा खाते के क्रेडेंशियल का इस्तेमाल कर सकता है.
निजी कुंजी वाली JSON फ़ाइल मिलने के बाद, अपनी ads.properties फ़ाइल में यह जानकारी जोड़ें:
api.googleads.serviceAccountSecretsPath=PRIVATE_KEY_JSON_FILE_PATH
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
# Only add this key if you are using impersonation to access an account
# other than the service account itself.
# api.googleads.serviceAccountUser=USER_EMAIL_TO_IMPERSONATE
ज़्यादा जानने के लिए, सेवा खाते के वर्कफ़्लो के बारे में जानकारी देने वाली गाइड देखें.
एक उपयोगकर्ता की पुष्टि का फ़्लो
अगर सेवा खातों का इस्तेमाल नहीं किया जा सकता, तो इस वर्कफ़्लो का इस्तेमाल किया जा सकता है. इस वर्कफ़्लो के लिए, कॉन्फ़िगरेशन के दो चरण ज़रूरी हैं:
- Google Ads API का इस्तेमाल करके मैनेज किए जाने वाले सभी खातों का ऐक्सेस, किसी एक उपयोगकर्ता को दें. आम तौर पर, उपयोगकर्ता को Google Ads API के मैनेजर खाते का ऐक्सेस दिया जाता है. साथ ही, उस मैनेजर खाते के तहत सभी Google Ads खातों को लिंक किया जाता है.
- उपयोगकर्ता, gcloud जैसे कमांड-लाइन टूल या
GenerateUserCredentialsकोड के उदाहरण को चलाता है, ताकि आपके ऐप्लिकेशन को उसकी ओर से उसके सभी Google Ads खातों को मैनेज करने की अनुमति दी जा सके.
ये क्रेडेंशियल मिलने के बाद, अपनी ads.properties फ़ाइल में यह जानकारी जोड़ें:
api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
ज़्यादा जानने के लिए, एक उपयोगकर्ता की पुष्टि के वर्कफ़्लो के बारे में जानकारी देने वाली गाइड देखें.
डिवाइस के एक से ज़्यादा उपयोगकर्ताओं की पुष्टि का फ़्लो
अगर आपका ऐप्लिकेशन, उपयोगकर्ताओं को साइन इन करने और आपकी ओर से उनके Google Ads खातों को मैनेज करने की अनुमति देता है, तो यह वर्कफ़्लो इस्तेमाल करने का सुझाव दिया जाता है. GenerateUserCredentials, कमांड लाइन कोड का एक उदाहरण है. इससे पता चलता है कि उपयोगकर्ताओं की ओर से उनके Google Ads खातों को मैनेज करने के लिए, रनटाइम पर उपयोगकर्ता की पुष्टि कैसे की जाती है. डेस्कटॉप ऐप्लिकेशन बनाने के लिए, इस कोड के उदाहरण को रेफ़रंस के तौर पर इस्तेमाल किया जा सकता है. इन ऐप्लिकेशन के लिए, उपयोगकर्ता की पुष्टि ज़रूरी होती है.
अपनी ads.properties फ़ाइल में यह जानकारी जोड़ें:
api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.developerToken=INSERT_DEVELOPER_TOKEN_HERE
ज़्यादा जानने के लिए, डिवाइस के एक से ज़्यादा उपयोगकर्ताओं की पुष्टि के वर्कफ़्लो के बारे में जानकारी देने वाली गाइड देखें.
अगर मेरा उपयोगकर्ता, एक से ज़्यादा खाते मैनेज करता है, तो क्या होगा?
आम तौर पर, कोई उपयोगकर्ता एक से ज़्यादा Google Ads खाते मैनेज करता है. ऐसा सीधे तौर पर खातों को ऐक्सेस करके या Google Ads के मैनेजर खाते के ज़रिए किया जाता है. Java क्लाइंट लाइब्रेरी में, ऐसे मामलों को मैनेज करने का तरीका बताने वाले ये कोड के उदाहरण दिए गए हैं.
- GetAccountHierarchy कोड के उदाहरण से पता चलता है कि Google Ads के मैनेजर खाते के तहत मौजूद सभी खातों की सूची कैसे देखी जाती है.
- ListAccessibleCustomers कोड के उदाहरण से पता चलता है कि उन सभी खातों की सूची कैसे देखी जाती है जिन्हें कोई उपयोगकर्ता सीधे तौर पर ऐक्सेस कर सकता है.
इसके बाद, इन खातों को
LoginCustomerIdसेटिंग के लिए मान्य वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल
Java क्लाइंट लाइब्रेरी, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल से पुष्टि करने की सुविधा भी देती है.
यह सुविधा, स्थानीय डेवलपमेंट या Google के अलग-अलग एपीआई के लिए डेवलपमेंट के दौरान खास तौर पर काम आती है. इसकी वजह यह है कि एक ही क्रेडेंशियल को फिर से इस्तेमाल किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि वे सही OAuth 2.0 स्कोप को ऐक्सेस कर सकें.
Google Ads API के लिए, पक्का करें कि आपके ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल, https://www.googleapis.com/auth/adwords OAuth 2.0 स्कोप को ऐक्सेस कर सकें.
ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करने के लिए, अपनी ads.properties फ़ाइल में api.googleads.useApplicationDefaultCredentials विकल्प को true पर सेट करें. ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करते समय, क्लाइंट आईडी, क्लाइंट सीक्रेट, और रीफ़्रेश टोकन सेट नहीं किए जाने चाहिए.