एक उपयोगकर्ता के लिए पुष्टि करने का वर्कफ़्लो

सेवा खाते के वर्कफ़्लो की तरह ही, सिंगल-यूज़र ऑथेंटिकेशन फ़्लो, Google Ads यूज़र इंटरफ़ेस (यूआई) की ओर से दी जाने वाली अनुमति और उपयोगकर्ता मैनेजमेंट की सुविधाओं का इस्तेमाल करता है. इससे ऐप्लिकेशन को सभी ज़रूरी खातों का ऐक्सेस मिलता है. पुष्टि करने के इस वर्कफ़्लो में दो चरण होते हैं:

  • आपने किसी एक उपयोगकर्ता को उन सभी Google Ads खातों का ऐक्सेस दिया हो जिन्हें ऐप्लिकेशन से मैनेज किया जाना चाहिए.
  • उपयोगकर्ता आपके ऐप्लिकेशन को अपनी ओर से अपने Google Ads खातों को मैनेज करने की अनुमति देता है. इससे ऐप्लिकेशन को सभी Google Ads खातों का ऐक्सेस मिल जाता है.

सिर्फ़ एक उपयोगकर्ता होने की वजह से, अपना OAuth 2.0 उपयोगकर्ता पुष्टि फ़्लो बनाने के बजाय, gcloud सीएलआई या GenerateUserCredential कोड के उदाहरण जैसे टूल का इस्तेमाल किया जा सकता है.

इस वर्कफ़्लो का इस्तेमाल, ऐसे मामलों में भी किया जा सकता है जब आपके खातों को कुछ ही लोगों के लॉगिन से ऐक्सेस किया जा सकता हो. उदाहरण के लिए, तीन से चार लोग. ऐसे में, OAuth के ज़रिए कई लोगों की पुष्टि करने वाले वर्कफ़्लो को पूरी तरह से बनाने में लगने वाली मेहनत, gcloud CLI जैसे कमांड-लाइन टूल का इस्तेमाल करके तीन से चार लोगों के लिए अनुमति पाने में लगने वाली मेहनत की तुलना में ज़्यादा होती है.

कमियां

सेवा खाते के वर्कफ़्लो की तुलना में, इस फ़्लो के कुछ नुकसान हैं:

  1. उपयोगकर्ता की पुष्टि करने वाले वर्कफ़्लो के लिए, आपको Google Cloud Console में OAuth 2.0 क्लाइंट आईडी और सीक्रेट बनाना होगा. इसके लिए, सेवा खाता और कुंजी बनाने के मुकाबले, कॉन्फ़िगरेशन के ज़्यादा चरणों की ज़रूरत होती है.
  2. अगर अनुमति वाला उपयोगकर्ता टीम या कंपनी छोड़ देता है, तो हो सकता है कि आपका ऐप्लिकेशन काम करना बंद कर दे. ऐसा तब होता है, जब उपयोगकर्ता को आपके खातों से हटा दिया जाता है या उसका खाता बंद कर दिया जाता है. सेवा खाते, किसी व्यक्ति से नहीं जुड़े होते. इसलिए, इस जोखिम से बचा जा सकता है.
  3. Google Ads खाते को अनुमति देने वाले उपयोगकर्ता को अपने Google खाते में पासकी की सुविधा चालू करनी चाहिए. इससे वह अपने Google खाते को खराब सुरक्षा, मैलवेयर या फ़िशिंग की वजह से हैक होने से बचा पाएगा. पासकी चालू करने के लिए, सेवा खातों की ज़रूरत नहीं होती. साथ ही, इन पर इस समस्या का असर कम पड़ता है, क्योंकि हमले के कुछ तरीके इन पर सीधे तौर पर लागू नहीं होते.

क्रेडेंशियल जनरेट करना

  1. अपने ऐप्लिकेशन के लिए, OAuth के लिए सहमति की स्क्रीन कॉन्फ़िगर करें और https://www.googleapis.com/auth/adwords को OAuth 2.0 स्कोप के तौर पर जोड़ें. ज़्यादा जानकारी के लिए, OAuth के लिए सहमति वाली स्क्रीन सेट अप करना लेख पढ़ें.

  2. निर्देशों का पालन करके, क्लाइंट आईडी और क्लाइंट सीक्रेट बनाएं. OAuth 2.0 क्लाइंट बनाने के बाद, पुष्टि करने वाले डायलॉग बॉक्स में मौजूद JSON डाउनलोड करें बटन पर क्लिक करके, क्लाइंट की JSON फ़ाइल डाउनलोड करें. फ़ाइल को credentials.json के तौर पर सेव करें.

  3. ऐसे उपयोगकर्ता खाते की पहचान करें जिसके पास उन सभी Google Ads खातों का ऐक्सेस हो जिन्हें आपको अपने ऐप्लिकेशन का इस्तेमाल करके मैनेज करना है. अगर कुछ खातों का ऐक्सेस नहीं है, तो उस उपयोगकर्ता को खाते का ऐक्सेस दें.

  4. 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
    
  5. पिछले चरण में मिली credentials.json फ़ाइल के साथ gcloud सीएलआई टूल चलाकर, OAuth 2.0 रीफ़्रेश टोकन जनरेट करें. --client-id-file को पास करना ज़रूरी है, ताकि रीफ़्रेश टोकन आपके Google API Console प्रोजेक्ट के तहत जारी किया जा सके. ऐसा gcloud CLI के डिफ़ॉल्ट प्रोजेक्ट के बजाय किया जाता है:

    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
  6. gcloud कमांड, नई ब्राउज़र विंडो में Google खाते में साइन-इन करने की विंडो खोलती है. साथ ही, आपको OAuth 2.0 की पुष्टि करने के चरणों के बारे में बताती है. पक्का करें कि आपने उसी उपयोगकर्ता के तौर पर साइन इन किया हो जिसे आपने पिछले चरणों में चुना था. अगर आपके ऐप्लिकेशन की पुष्टि नहीं हुई है, तो आपको चेतावनी वाली स्क्रीन दिख सकती है. ऐसे मामलों में, ऐडवांस लिंक पर क्लिक करना सुरक्षित होता है. इसके बाद, PROJECT_NAME (सुरक्षित नहीं है) पर जाएं विकल्प पर क्लिक करें.

  7. स्कोप की पुष्टि करने के बाद, अनुमति देने के लिए जारी रखें बटन पर क्लिक करें. ब्राउज़र 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"
    }
    

क्लाइंट लाइब्रेरी का कॉन्फ़िगरेशन

अपनी क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने के तरीके के बारे में जानने के लिए, अपनी प्रोग्रामिंग भाषा से जुड़ा टैब चुनें. अगर आपका अनुमति पा चुका उपयोगकर्ता, Google Ads मैनेजर खाते से क्लाइंट खातों को ऐक्सेस करता है, तो login-customer-id (या loginCustomerId) को उस मैनेजर खाते के 10 अंकों वाले ग्राहक आईडी पर सेट करें. इसमें हाइफ़न का इस्तेमाल न करें.

Java

अपनी ads.properties फ़ाइल में ये कुंजियां कॉन्फ़िगर करें.

api.googleads.clientId=INSERT_OAUTH2_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

अन्य विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.

.NET

GoogleAdsConfig इंस्टेंस पर OAuth 2.0 क्रेडेंशियल सेट करें और GoogleAdsClient ऑब्जेक्ट को शुरू करने के लिए इसका इस्तेमाल करें.

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
    LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};
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_OAUTH2_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
use_proto_plus: True

ज़्यादा विकल्पों के लिए, कॉन्फ़िगरेशन गाइड देखें.

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_OAUTH2_CLIENT_ID_HERE'
  c.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
  c.refresh_token = 'INSERT_OAUTH2_REFRESH_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://oauth2.googleapis.com/token

एपीआई कॉल में, ऐक्सेस टोकन का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, GoogleAdsService.SearchStream तरीके का इस्तेमाल करके, कैंपेन की रिपोर्ट चलाने का तरीका बताया गया है. इससे आपके खाते में मौजूद कैंपेन को वापस पाया जा सकता है. इस गाइड में, रिपोर्टिंग के बारे में जानकारी नहीं दी गई है.

curl -i -X POST \
  https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_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"
}