Python की क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने के लिए, YAML फ़ाइल, एनवायरमेंट वैरिएबल, YAML स्ट्रिंग या dict का इस्तेमाल किया जा सकता है.
पुष्टि करने का कॉन्फ़िगरेशन
Google Ads API को ऐक्सेस करने के लिए ज़रूरी OAuth क्रेडेंशियल को मैनेज करने के कई तरीके हैं. आपके चुने गए तरीके से तय होता है कि आपको किन कॉन्फ़िगरेशन फ़ील्ड का इस्तेमाल करना है. ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी गाइड देखें.
वाईएएमएल फ़ाइल का इस्तेमाल करके कॉन्फ़िगरेशन करना
क्लाइंट को शुरू करते समय, इस्तेमाल करने के लिए YAML फ़ाइल तय की जा सकती है. इसमें Google Ads API को अनुरोध भेजने के लिए ज़रूरी जानकारी होती है. इस फ़ाइल को तब ऐक्सेस किया जाता है, जब load_from_storage तरीके का इस्तेमाल करके क्लाइंट को शुरू किया जाता है. इस फ़ाइल को जनरेट करने का सबसे आसान तरीका यह है कि GitHub रिपॉज़िटरी से google-ads.yaml उदाहरण को कॉपी करें और उसमें बदलाव करके अपने क्रेडेंशियल शामिल करें. इनमें रीफ़्रेश टोकन, क्लाइंट आईडी, और क्लाइंट सीक्रेट शामिल हैं.
अगर आपने कोई पाथ नहीं दिया है, तो लाइब्रेरी आपकी $HOME डायरेक्ट्री में फ़ाइल ढूंढती है:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
google-ads.yaml फ़ाइल की जगह की जानकारी देने के लिए, मेथड को कॉल करते समय पाथ को स्ट्रिंग के तौर पर पास किया जा सकता है:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage("path/to/google-ads.yaml")
किसी खास एनवायरमेंट वैरिएबल को तय करके भी पाथ बताया जा सकता है:
import os
from google.ads.googleads.client import GoogleAdsClient
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
client = GoogleAdsClient.load_from_storage()
अगर दोनों वैल्यू दी गई हैं—पाथ को तरीके में पास किया गया है और एनवायरमेंट वैरिएबल मौजूद है—तो लाइब्रेरी, तरीके में पास किए गए पाथ को प्राथमिकता देती है.
एनवायरमेंट वैरिएबल का इस्तेमाल करके कॉन्फ़िगरेशन करना
अपने सभी क्लाइंट कॉन्फ़िगरेशन को एनवायरमेंट वैरिएबल के तौर पर सेव किया जा सकता है. क्लाइंट के load_from_env तरीके का इस्तेमाल करने पर, इन्हें पढ़ा जाता है. एनवायरमेंट वैरिएबल के नाम, google-ads.yaml फ़ाइल में तय किए गए नामों से मेल खाने चाहिए. हालांकि, ये सभी नाम अंग्रेज़ी के बड़े अक्षरों में होने चाहिए और इनके आगे GOOGLE_ADS_ नेमस्पेस होना चाहिए. उदाहरण के लिए, client_id को GOOGLE_ADS_CLIENT_ID के तौर पर सेव किया जाना चाहिए.
आम तौर पर, एनवायरमेंट वैरिएबल को बैश कॉन्फ़िगरेशन फ़ाइल में तय किया जाता है. जैसे, $HOME डायरेक्ट्री में मौजूद .bashrc या .bash_profile फ़ाइल. इन्हें कमांड लाइन का इस्तेमाल करके भी तय किया जा सकता है.
टर्मिनल में .bashrc
फ़ाइल का इस्तेमाल करके, एनवायरमेंट वैरिएबल तय करने के लिए यहां कुछ बुनियादी चरण दिए गए हैं:
# Append the line "export GOOGLE_ADS_CLIENT_ID=1234567890" to
# the bottom of your .bashrc file.
echo "export GOOGLE_ADS_CLIENT_ID=1234567890" >> ~/.bashrc
# Update your bash environment to use the most recently updated
# version of your .bashrc file.
source ~/.bashrc
टर्मिनल इंस्टेंस में एनवायरमेंट वैरिएबल को सीधे कमांड लाइन से भी सेट किया जा सकता है:
export GOOGLE_ADS_CLIENT_ID=1234567890
echo $GOOGLE_ADS_CLIENT_ID
load_from_env मेथड, Python के पहले से मौजूद os मॉड्यूल पर environ एट्रिब्यूट से कॉन्फ़िगरेशन डेटा लोड करता है. उदाहरण के लिए:
os.environ["GOOGLE_ADS_CLIENT_ID"]
यहां एनवायरमेंट वैरिएबल के कॉन्फ़िगरेशन के साथ क्लाइंट इंस्टेंस को शुरू करने का उदाहरण दिया गया है:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_env()
एनवायरमेंट वैरिएबल की मदद से logging को कॉन्फ़िगर करने के लिए, कॉन्फ़िगरेशन वैल्यू एक JSON ऑब्जेक्ट होनी चाहिए. यह ऑब्जेक्ट, सैंपल google-ads.yaml कॉन्फ़िगरेशन फ़ाइल में मौजूद YAML कुंजियों के स्ट्रक्चर से मेल खाना चाहिए.
यहां एक उदाहरण दिया गया है कि .bashrc फ़ाइल का इस्तेमाल करके, इसे कैसे सेट किया जा सकता है:
export GOOGLE_ADS_LOGGING='{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"default_fmt": {
"format": "[%(asctime)s - %(levelname)s] %(message).5000s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
},
"handlers": {
"default_handler": {
"class": "logging.StreamHandler",
"formatter": "default_fmt"
}
},
"loggers": {
"": {
"handlers": ["default_handler"],
"level": "INFO"
}
}
}'
अहम जानकारी: अगर load_from_env तरीके को कॉल करते समय एनवायरमेंट वैरिएबल GOOGLE_ADS_CONFIGURATION_FILE_PATH सेट किया जाता है, तो कॉन्फ़िगरेशन वैल्यू, बताए गए पाथ पर मौजूद google-ads.yaml फ़ाइल से वापस पाई जाती हैं. ये वैल्यू, पहले बताए गए एनवायरमेंट वैरिएबल से वापस नहीं पाई जातीं.
YAML स्ट्रिंग का इस्तेमाल करके कॉन्फ़िगरेशन
अगर आपने YAML फ़ाइल को मेमोरी में पढ़ा है, तो उसे शुरू करते समय सीधे क्लाइंट को दिया जा सकता है. इसके लिए, load_from_string तरीके का इस्तेमाल करें:
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "r", encoding="utf-8") as handle:
yaml_content = handle.read()
client = GoogleAdsClient.load_from_string(yaml_content)
dict का इस्तेमाल करके कॉन्फ़िगरेशन
dict को सीधे तौर पर load_from_dict तरीके से पास किया जा सकता है. उदाहरण के लिए:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"refresh_token": "YOUR_REFRESH_TOKEN",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
कॉन्फ़िगरेशन फ़ील्ड
क्लाइंट लाइब्रेरी के कॉन्फ़िगरेशन में इन फ़ील्ड का इस्तेमाल किया जा सकता है.
पुष्टि करना
पुष्टि करने के लिए इस्तेमाल किए जा रहे तरीके के आधार पर, फ़ील्ड के इनमें से किसी एक ग्रुप का इस्तेमाल करें:
- ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल वाला एक उपयोगकर्ता (दस्तावेज़)
use_application_default_credentials: क्या लाइब्रेरी को पुष्टि करने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) का इस्तेमाल करना चाहिए (यह सुविधाgoogle-adsv28.3.0और इसके बाद के वर्शन में काम करती है).
- OAuth टोकन का इस्तेमाल करने वाला एक उपयोगकर्ता (दस्तावेज़)
client_id: आपका OAuth क्लाइंट आईडी.client_secret: यह आपका OAuth क्लाइंट सीक्रेट है.refresh_token: यह आपका OAuth रीफ़्रेश टोकन है.
- सेवा खाता (दस्तावेज़)
json_key_file_path: लोकल निजी पासकोड फ़ाइल का पाथ. इसका इस्तेमाल, सेवा खाते की मदद से पुष्टि करने के लिए किया जाता है.impersonated_email: Google Workspace के डोमेन-वाइड डेलिगेशन का इस्तेमाल करते समय, किसी दूसरे खाते के तौर पर काम करने के लिए, उस खाते का ईमेल पता. यह ज़रूरी नहीं है.
लाइब्रेरी का व्यवहार
इन फ़ील्ड से लाइब्रेरी के काम करने का तरीका तय होता है:
logging: लॉग कॉन्फ़िगरेशन की जानकारी देखें.http_proxy: प्रॉक्सी के बारे में जानकारी देने वाला दस्तावेज़ देखें.use_proto_plus: ज़रूरी है. प्रोटो-प्लस मैसेज (TrueयाFalse) का इस्तेमाल करना है या नहीं. protobuf मैसेज दस्तावेज़ देखें.
अनुरोध के लेवल पर कॉन्फ़िगरेशन
linked_customer_id: linked-customer-id दस्तावेज़ देखें.login_customer_id: login-customer-id के बारे में जानकारी देने वाला दस्तावेज़ देखें.endpoint: Google Ads API के वैकल्पिक एंडपॉइंट का पता. यह ज़रूरी नहीं है.ads_assistant: Google Ads API Assistant हेडर के लिए वैकल्पिक आइडेंटिफ़ायर.
एनवायरमेंट वैरिएबल
एनवायरमेंट वैरिएबल का इस्तेमाल करके लाइब्रेरी को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
GOOGLE_ADS_ADS_ASSISTANTGOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_ENDPOINTGOOGLE_ADS_HTTP_PROXYGOOGLE_ADS_IMPERSONATED_EMAILGOOGLE_ADS_JSON_KEY_FILE_PATHGOOGLE_ADS_LINKED_CUSTOMER_IDGOOGLE_ADS_LOGIN_CUSTOMER_IDGOOGLE_ADS_LOGGINGGOOGLE_ADS_REFRESH_TOKENGOOGLE_ADS_USE_PROTO_PLUSGOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS(v28.3.0और इसके बाद के वर्शन में काम करता है)
लॉग कॉन्फ़िगरेशन
लॉग फ़ील्ड, logging कॉन्फ़िगरेशन फ़ील्ड के नीचे मौजूद फ़ील्ड होते हैं. ये सीधे तौर पर logging.config के पहले से मौजूद मॉड्यूल से लिए जाते हैं. ऐसा इसलिए होता है, क्योंकि लाइब्रेरी, logging नेमस्पेस के तहत आने वाले सभी फ़ील्ड को सीधे logging.config.dictConfig तरीके से पास करती है. पूरी जानकारी के लिए,
लॉगिंग गाइड देखें.
version: यह एक पूर्णांक वैल्यू है, जो स्कीमा वर्शन को दिखाती है.disable_existing_loggers: इससे यह तय होता है कि ऐप्लिकेशन में कहीं और कॉन्फ़िगर किए गए लॉगर को बंद किया जाना चाहिए या नहीं.formatters: अलग-अलग तरह के फ़ॉर्मैटर तय करने वाली डिक्शनरी.handlers: अलग-अलग हैंडलर तय करने वाली डिक्शनरी. इससे यह कंट्रोल किया जाता है कि लॉग कहां लिखे जाएं और किन फ़ॉर्मेटर का इस्तेमाल किया जाना चाहिए.loggers: अलग-अलग तरह के लॉगर तय करने वाली डिक्शनरी. इनमें एक हैंडलर और एक लॉग लेवल शामिल होता है.