सेवा खाते के वर्कफ़्लो की तरह, सिंगल यूज़र ऑथेंटिकेशन फ़्लो में भी Google Ads के यूज़र इंटरफ़ेस (यूआई) में दी गई, अनुमति देने और उपयोगकर्ता के खाते को मैनेज करने की सुविधाओं का इस्तेमाल किया जाता है. इससे, ऐप्लिकेशन को ज़रूरी सभी खातों का ऐक्सेस मिल जाता है. इस ऑथेंटिकेशन वर्कफ़्लो में दो चरण होते हैं:
- आपको किसी एक उपयोगकर्ता को Google Ads के उन सभी खातों का ऐक्सेस देना होगा जिन्हें ऐप्लिकेशन मैनेज करेगा.
- उपयोगकर्ता, आपके ऐप्लिकेशन को अपने Google Ads खातों को मैनेज करने की अनुमति देता है. इससे, ऐप्लिकेशन को Google Ads के सभी खातों का ऐक्सेस मिल जाता है.
इसमें सिर्फ़ एक उपयोगकर्ता शामिल होता है. इसलिए, OAuth 2.0 का अपना उपयोगकर्ता ऑथेंटिकेशन फ़्लो बनाने के बजाय, gcloud सीएलआई या GenerateUserCredential कोड के उदाहरण जैसे टूल का इस्तेमाल किया जा सकता है.
कमियां
सेवा खाते के वर्कफ़्लो की तुलना में, इस फ़्लो के कुछ नुकसान हैं:
- उपयोगकर्ता ऑथेंटिकेशन वर्कफ़्लो के लिए, आपको Google Cloud Console में OAuth 2.0 क्लाइंट आईडी और सीक्रेट बनाना होगा. इसके लिए, सेवा खाता और कुंजी बनाने की तुलना में ज़्यादा कॉन्फ़िगरेशन चरणों की ज़रूरत होती है.
- आपके ऐप्लिकेशन को, Google Cloud के ऐप्लिकेशन की पुष्टि करने की एक और प्रोसेस से गुज़रना पड़ सकता है.
- अगर अनुमति पाने वाला उपयोगकर्ता टीम या कंपनी छोड़ देता है, तो आपके खातों से उस उपयोगकर्ता को हटाने या उपयोगकर्ता के खाते को बंद करने पर, आपका ऐप्लिकेशन काम करना बंद कर सकता है. सेवा खाते, अलग-अलग उपयोगकर्ताओं से जुड़े नहीं होते. इसलिए, इस जोखिम से बचा जा सकता है.
- Google Ads खाते को अनुमति देने वाले उपयोगकर्ता को ज़्यादा सावधानी बरतनी चाहिए. जैसे, दो चरणों में पुष्टि की सुविधा चालू करना. इससे, सुरक्षा में कमी, मैलवेयर या फ़िशिंग की वजह से, उसके Google खाते से समझौता होने से बचाया जा सकता है. सेवा खाते इस समस्या के लिए कम संवेदनशील होते हैं, क्योंकि हमले के कुछ तरीके उन पर सीधे लागू नहीं होते.
क्रेडेंशियल जनरेट करना
अपने ऐप्लिकेशन के लिए, OAuth के लिए सहमति की स्क्रीन को कॉन्फ़िगर करने के लिए, निर्देशों का पालन करें. साथ ही, OAuth 2.0 स्कोप के तौर पर
https://www.googleapis.com/auth/adwordsजोड़ें. ज़्यादा जानकारी के लिए, OAuth के लिए सहमति की स्क्रीन सेट अप करना लेख देखें.निर्देशों का पालन करके, क्लाइंट आईडी और क्लाइंट सीक्रेट बनाएं. OAuth 2.0 क्लाइंट बनाने के बाद, क्लाइंट की JSON फ़ाइल डाउनलोड करें. इसके लिए, पहले 'OAuth क्लाइंट डाउनलोड करें' आइकॉन पर क्लिक करें. इसके बाद, अगली स्क्रीन पर मौजूद 'JSON डाउनलोड करें' बटन पर क्लिक करें. फ़ाइल को
credentials.jsonके तौर पर सेव करें.कोई ऐसा उपयोगकर्ता खाता चुनें जिसके पास Google Ads के उन सभी खातों का ऐक्सेस हो जिन्हें आपको अपने ऐप्लिकेशन का इस्तेमाल करके मैनेज करना है. अगर ऐसे खाते हैं जिनका ऐक्सेस नहीं है, तो ज़रूरी ऐक्सेस देने के लिए, निर्देशों का पालन करें.
gcloud सीएलआई डाउनलोड और इंस्टॉल करें. इंस्टॉल होने के बाद, कमांड लाइन प्रॉम्प्ट से
gcloud versionकमांड चलाकर, पुष्टि करें कि टूल सही तरीके से काम कर रहा है. आउटपुट इस तरह दिख सकता है.:~$ gcloud version Google Cloud SDK 492.0.0 alpha 2024.09.06 beta 2024.09.06 bq 2.1.8 bundled-python3-unix 3.11.9 core 2024.09.06 enterprise-certificate-proxy 0.3.2 gcloud-crc32c 1.0.0 gsutil 5.30
gcloud सीएलआई टूल चलाकर, OAuth 2.0 रीफ़्रेश टोकन जनरेट करें:
gcloud auth application-default
login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
--client-id-file=<path_to_credentials.json>credentials.jsonफ़ाइल, पिछले चरण से मिली है.gcloudकमांड, नए ब्राउज़र विंडो में Google खाते में लॉगिन करने की विंडो खोलता है. साथ ही, आपको OAuth 2.0 ऑथेंटिकेशन के चरणों के बारे में बताता है. पक्का करें कि आपने पिछले चरणों में चुने गए उपयोगकर्ता के तौर पर साइन इन किया हो. अगर आपके ऐप्लिकेशन की पुष्टि नहीं हुई है, तो आपको चेतावनी वाली स्क्रीन दिख सकती है. ऐसे मामलों में, बेहतर सेटिंग दिखाएं लिंक पर क्लिक करना और PROJECT_NAME पर जाएं (पुष्टि नहीं हुई) विकल्प पर क्लिक करना सुरक्षित है.
स्कोप की पुष्टि करने के बाद, अनुमति देने के लिए जारी रखें बटन पर क्लिक करें. ब्राउज़र,
https://cloud.google.com/sdk/auth_successपर नेविगेट करता है. इससे पता चलता है कि ऑथेंटिकेशन पूरा हो गया है. पेज पर यह मैसेज दिखता है:Authorization code granted. Close this tab.gcloudकमांड यह मैसेज दिखाता है:Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]अब
application_default_credentials.jsonफ़ाइल खोलें. इसका कॉन्टेंट इस तरह दिखना चाहिए:{ "account": "", "client_id": "******.apps.googleusercontent.com", "client_secret": "******", "refresh_token": "******", "type": "authorized_user", "universe_domain": "googleapis.com" }
क्लाइंट लाइब्रेरी कॉन्फ़िगर करना
अपनी क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने के तरीके के बारे में निर्देश पाने के लिए, अपनी प्रोग्रामिंग लैंग्वेज से जुड़ा टैब चुनें.
Java
अपनी 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.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.
.NET
रनटाइम के दौरान, अपने GoogleAdsClient इंस्टेंस को शुरू किया जा सकता है. इसके लिए, आपको उस उपयोगकर्ता से मिले क्रेडेंशियल का इस्तेमाल करना होगा जिसके खातों के लिए, एपीआई कॉल किए जा रहे हैं.
GoogleAdsConfig config = new GoogleAdsConfig() { OAuth2Mode = OAuth2Flow.APPLICATION, OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID", OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET", OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN", ... }; GoogleAdsClient client = new GoogleAdsClient(config);
ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.
Python
अपनी google-ads.yaml फ़ाइल में, ये कुंजियां कॉन्फ़िगर करें.
client_id: INSERT_OAUTH2_CLIENT_ID_HERE client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE refresh_token: INSERT_REFRESH_TOKEN_HERE login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.
PHP
अपनी google_ads_php.ini में, ये कुंजियां कॉन्फ़िगर करें.
[GOOGLE_ADS] loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE" [OAUTH2] clientId = "INSERT_OAUTH2_CLIENT_ID_HERE" clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE" refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"
ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.
Ruby
अपनी
google_ads_config.rb फ़ाइल में, ये कुंजियां कॉन्फ़िगर करें.
Google::Ads::GoogleAds::Config.new do |c| c.client_id = 'INSERT_CLIENT_ID_HERE' c.client_secret = 'INSERT_CLIENT_SECRET_HERE' c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE' c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE' c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE' end
ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.
Perl
अपनी googleads.properties फ़ाइल में, ये कुंजियां कॉन्फ़िगर करें.
clientId=INSERT_OAUTH2_CLIENT_ID_HERE clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.
curl
शुरू करने के लिए, OAuth 2.0 ऐक्सेस टोकन फ़ेच करने के लिए, एचटीटीपी क्लाइंट का इस्तेमाल करें. इस गाइड में, curl कमांड का इस्तेमाल किया गया है.
curl \ --data "grant_type=refresh_token" \ --data "client_id=CLIENT_ID" \ --data "client_secret=CLIENT_SECRET" \ --data "refresh_token=REFRESH_TOKEN" \ https://www.googleapis.com/oauth2/v3/token
अब एपीआई कॉल में, ऐक्सेस टोकन का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, आपके खाते में मौजूद कैंपेन वापस पाने के लिए,
GoogleAdsService.SearchStream तरीके का इस्तेमाल करके, कैंपेन की रिपोर्ट चलाने का तरीका बताया गया है. इस गाइड में, रिपोर्टिंग के बारे में जानकारी नहीं दी गई है.
curl -i -X POST https://googleads.googleapis.com/v24/customers/CUSTOMER_ID/googleAds:searchStream \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "developer-token: DEVELOPER_TOKEN" \ -H "login-customer-id: LOGIN_CUSTOMER_ID" \ --data-binary "@query.json"
query.json का कॉन्टेंट इस तरह है:
{ "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id" }