Google के अन्य एपीआई की तरह, Google Ads API भी पुष्टि करने और अनुमति देने के लिए OAuth 2.0 प्रोटोकॉल का इस्तेमाल करता है. OAuth 2.0 की मदद से, आपका Google Ads API क्लाइंट ऐप्लिकेशन, किसी उपयोगकर्ता के Google Ads खाते को ऐक्सेस कर सकता है. इसके लिए, उसे उपयोगकर्ता की लॉगिन जानकारी को मैनेज या सेव करने की ज़रूरत नहीं होती.
Google Ads के ऐक्सेस मॉडल के बारे में जानकारी
Google Ads API का असरदार तरीके से इस्तेमाल करने के लिए, Google Ads के ऐक्सेस मॉडल के काम करने का तरीका समझें. Google Ads के ऐक्सेस मॉडल से जुड़ी गाइड पढ़ें.
OAuth वर्कफ़्लो
Google Ads API का इस्तेमाल करते समय, तीन सामान्य वर्कफ़्लो का इस्तेमाल किया जाता है.
सेवा खाते का फ़्लो
अगर आपके वर्कफ़्लो में किसी व्यक्ति के इंटरैक्शन की ज़रूरत नहीं है, तो हमारा सुझाव है कि आप यह वर्कफ़्लो इस्तेमाल करें. इस वर्कफ़्लो के लिए कॉन्फ़िगरेशन का एक चरण ज़रूरी है. इसमें उपयोगकर्ता, अपने Google Ads खाते में सेवा खाता जोड़ता है. इसके बाद, ऐप्लिकेशन सेवा खाते के क्रेडेंशियल का इस्तेमाल करके, उपयोगकर्ता के Google Ads खाते को मैनेज कर सकता है. Python लाइब्रेरी को इस तरह कॉन्फ़िगर किया जाता है:
अगर
google-ads.yamlफ़ाइल या YAML स्ट्रिंग का इस्तेमाल किया जा रहा है, तो अपने कॉन्फ़िगरेशन में यह जानकारी जोड़ें. इससे आपके लोकल एनवायरमेंट में, निजी कुंजी वाली JSON फ़ाइल का पाथ सेट किया जा सकेगा. साथ ही, अगर डोमेन-वाइड डेलिगेशन का इस्तेमाल किया जा रहा है, तोimpersonated_emailको भी जोड़ा जा सकेगा:json_key_file_path: JSON_KEY_FILE_PATH # Optional: only set if using Google Workspace domain-wide delegation: # impersonated_email: IMPERSONATED_EMAILइसके बाद,
load_from_storageयाload_from_stringवाले तरीकों को कॉल करें:from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_storage()अगर लाइब्रेरी को कॉन्फ़िगर करने के लिए
dictका इस्तेमाल किया जा रहा है, तो यहां दिए गए कुंजी-वैल्यू पेयर को शामिल करें औरload_from_dictतरीके को कॉल करें. साथ ही, कॉन्फ़िगरेशनdictको पास करें:from google.ads.googleads.client import GoogleAdsClient configuration = { # ... "json_key_file_path": JSON_KEY_FILE_PATH, # ... } client = GoogleAdsClient.load_from_dict(configuration)अगर एनवायरमेंट वैरिएबल का इस्तेमाल किया जा रहा है, तो अपने
bashकॉन्फ़िगरेशन या एनवायरमेंट में यह जोड़ें:export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATHइसके बाद,
load_from_envवाले तरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_env()
अगर इनमें से किसी भी कॉन्फ़िगरेशन के तरीके में json_key_file_path कॉन्फ़िगरेशन का विकल्प मौजूद है, use_application_default_credentials विकल्प False है या सेट नहीं है, और OAuth उपयोगकर्ता क्रेडेंशियल कुंजियां (client_id, client_secret, और refresh_token) सेट नहीं हैं या उन पर टिप्पणी की गई है, तो लाइब्रेरी सेवा खाते के फ़्लो का इस्तेमाल करके अपने-आप अनुमति देती है.
ज़्यादा जानने के लिए, सेवा खाते के वर्कफ़्लो की गाइड देखें.
एक उपयोगकर्ता के लिए पुष्टि करने की सुविधा का फ़्लो
अगर सेवा खातों का इस्तेमाल नहीं किया जा सकता, तो इस वर्कफ़्लो का इस्तेमाल किया जा सकता है. इस वर्कफ़्लो के लिए, कॉन्फ़िगरेशन के दो चरण ज़रूरी हैं:
Google Ads API का इस्तेमाल करके मैनेज किए जाने वाले सभी खातों का ऐक्सेस, एक ही उपयोगकर्ता को दें. आम तौर पर, उपयोगकर्ता को Google Ads API मैनेजर खाते का ऐक्सेस दिया जाता है. साथ ही, उस मैनेजर खाते से सभी Google Ads खातों को लिंक किया जाता है.
उपयोगकर्ता, gcloud CLI या
generate_user_credentialsकोड के उदाहरण जैसे टूल का इस्तेमाल करके, आपके ऐप्लिकेशन को अपने सभी Google Ads खातों को मैनेज करने की अनुमति देता है.
लाइब्रेरी को उपयोगकर्ता के OAuth 2.0 क्रेडेंशियल का इस्तेमाल करके, इस तरह शुरू किया जा सकता है:
gcloud CLI टूल का इस्तेमाल करने पर (सुझाया गया)
अपने लोकल एनवायरमेंट में ऐप्लिकेशन डिफ़ॉल्ट क्रेडेंशियल (एडीसी) सेट अप करने के लिए, क्रेडेंशियल जनरेट करें दस्तावेज़ में दिया गया तरीका अपनाएं.
अपने
google-ads.yamlया YAML स्ट्रिंग में यह कॉन्फ़िगरेशन जोड़ें:use_application_default_credentials: trueइसके बाद,
load_from_storageयाload_from_stringमें से किसी एक तरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_storage()अगर लाइब्रेरी को कॉन्फ़िगर करने के लिए
dictका इस्तेमाल किया जाता है, तो यहां दिए गए कुंजी-वैल्यू पेयर को शामिल करें औरload_from_dictतरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient configuration = { # ... "use_application_default_credentials": True, # ... } client = GoogleAdsClient.load_from_dict(configuration)अगर एनवायरमेंट वैरिएबल का इस्तेमाल किया जा रहा है, तो अपने
bashकॉन्फ़िगरेशन या एनवायरमेंट में यह जोड़ें:export GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS=trueइसके बाद,
load_from_envवाले तरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_env()
OAuth टोकन को सीधे तौर पर मैनेज करने पर
कंसोल प्रोजेक्ट सेट अप करने के लिए यह तरीका अपनाएं. साथ ही, वह JSON फ़ाइल डाउनलोड करें जिसमें आपके प्रोजेक्ट का क्लाइंट आईडी और क्लाइंट सीक्रेट शामिल हो.
Python क्लाइंट लाइब्रेरी को अपने कंप्यूटर पर क्लोन करें और इसकी डायरेक्ट्री में जाएं:
git clone https://github.com/googleads/google-ads-python.git cd google-ads-pythonपहले चरण में डाउनलोड की गई JSON फ़ाइल का ऐब्सलूट पाथ देकर, उदाहरण को लागू करें:
python examples/authentication/generate_user_credentials.py \ -c PATH_TO_CREDENTIALS_JSONयह प्रोसेस पूरी होने के बाद, आपकी कंसोल पर एक रीफ़्रेश टोकन प्रिंट हो जाता है. इसे कॉपी करें और अगले चरण के लिए सेव करें.
अपनी पसंद के कॉन्फ़िगरेशन में ये सेटिंग जोड़कर, लाइब्रेरी को कॉन्फ़िगर करें:
अपने
google-ads.yamlया YAML स्ट्रिंग में यह कॉन्फ़िगरेशन जोड़ें:client_id: INSERT_OAUTH2_CLIENT_ID_HERE client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE refresh_token: INSERT_REFRESH_TOKEN_HEREइसके बाद,
load_from_storageयाload_from_stringमें से किसी एक तरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_storage()अगर लाइब्रेरी को कॉन्फ़िगर करने के लिए
dictका इस्तेमाल किया जा रहा है, तो यहां दिए गए की-वैल्यू पेयर शामिल करें औरload_from_dictतरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient configuration = { # ... "client_id": INSERT_OAUTH2_CLIENT_ID_HERE, "client_secret": ( INSERT_OAUTH2_CLIENT_SECRET_HERE ), "refresh_token": INSERT_REFRESH_TOKEN_HERE, # ... } client = GoogleAdsClient.load_from_dict(configuration)अगर एनवायरमेंट वैरिएबल का इस्तेमाल किया जा रहा है, तो अपने
bashकॉन्फ़िगरेशन या एनवायरमेंट में यह जोड़ें:export GOOGLE_ADS_CLIENT_ID=\ INSERT_OAUTH2_CLIENT_ID_HERE export GOOGLE_ADS_CLIENT_SECRET=\ INSERT_OAUTH2_CLIENT_SECRET_HERE export GOOGLE_ADS_REFRESH_TOKEN=\ INSERT_REFRESH_TOKEN_HEREइसके बाद,
load_from_envवाले तरीके को कॉल करें:from google.ads.googleads.client import GoogleAdsClient client = GoogleAdsClient.load_from_env()
ज़्यादा जानने के लिए, एक उपयोगकर्ता के लिए पुष्टि करने के वर्कफ़्लो की गाइड पढ़ें.
डिवाइस के एक से ज़्यादा उपयोगकर्ताओं के लिए पुष्टि करने का फ़्लो
अगर आपका ऐप्लिकेशन, उपयोगकर्ताओं को साइन इन करने और उनकी ओर से उनके Google Ads खातों को मैनेज करने के लिए, आपके ऐप्लिकेशन को अनुमति देने की सुविधा देता है, तो हमारा सुझाव है कि आप इस वर्कफ़्लो का इस्तेमाल करें. आपका ऐप्लिकेशन, OAuth 2.0 के उपयोगकर्ता क्रेडेंशियल बनाता और मैनेज करता है. लाइब्रेरी को उपयोगकर्ता के क्रेडेंशियल का इस्तेमाल करके इस तरह से शुरू किया जा सकता है. इसमें यह माना जाता है कि आपका ऐप्लिकेशन, रनटाइम के दौरान क्रेडेंशियल हासिल करता है. ऐसा, अनुमति देने की प्रोसेस को पूरा करके या उन्हें डेटास्टोर से लोड करके किया जाता है:
dict, रनटाइम के दौरान क्रेडेंशियल पाने के लिए, कॉन्फ़िगरेशन का सबसे आसान तरीका है:
from google.ads.googleads.client import GoogleAdsClient
configuration = {
# ...
"client_id": client_id,
"client_secret": client_secret,
"refresh_token": refresh_token,
# ...
}
client = GoogleAdsClient.load_from_dict(configuration)
ज़्यादा जानने के लिए, डिवाइस के एक से ज़्यादा उपयोगकर्ताओं के लिए पुष्टि करने की सुविधा से जुड़ी वर्कफ़्लो गाइड देखें.
मैन्युअल तरीके से पुष्टि करना
किसी भी तरीके से पुष्टि करने के क्रेडेंशियल जनरेट किए जा सकते हैं. साथ ही, क्लाइंट क्लास को सीधे तौर पर इंस्टैंटिएट करके, उन्हें GoogleAdsClient को मैन्युअल तरीके से उपलब्ध कराया जा सकता है. मान लें कि आपने जो क्रेडेंशियल ऑब्जेक्ट बनाया है वह google.auth.credentials.Credentials का इंस्टेंस है. इसे इस तरह पास किया जा सकता है:
from google.ads.googleads.client import GoogleAdsClient
from google.auth import default
# This line retrieves ADCs from the environment. You can use any authentication
# approach as long as the `credentials` variable is an instance of
# `google.auth.credentials.Credentials`.
credentials, _ = default(scopes=["https://www.googleapis.com/auth/adwords"])
client = GoogleAdsClient(
credentials=credentials,
use_proto_plus=True,
)
एक से ज़्यादा खाते प्रबंधित करना
आम तौर पर, कोई उपयोगकर्ता एक से ज़्यादा Google Ads खातों को मैनेज करता है. इसके लिए, वह खातों को सीधे तौर पर ऐक्सेस करता है या Google Ads मैनेजर खाते का इस्तेमाल करता है. Python क्लाइंट लाइब्रेरी में, ऐसे मामलों को हैंडल करने का तरीका बताने वाले कोड के ये उदाहरण दिए गए हैं:
get_account_hierarchyकोड के इस उदाहरण में, यह दिखाया गया है कि Google Ads मैनेजर खाते से जुड़े सभी खातों की सूची कैसे वापस पाई जाती है.list_accessible_customersकोड के उदाहरण में दिखाया गया है कि किसी उपयोगकर्ता के पास जिन खातों का सीधा ऐक्सेस है उनकी सूची कैसे वापस पाई जाती है. इसके बाद, इन खातों का इस्तेमालlogin_customer_idसेटिंग के लिए मान्य वैल्यू के तौर पर किया जा सकता है.