क्लाइंट को कॉन्फ़िगर करने के कई तरीके हैं.
पुष्टि करने के लिए कॉन्फ़िगरेशन
Google Ads API को ऐक्सेस करने के लिए ज़रूरी OAuth क्रेडेंशियल मैनेज करने के कई तरीके हैं. आपके चुने गए तरीके से यह तय होगा कि आपको किन कॉन्फ़िगरेशन फ़ील्ड का इस्तेमाल करना है. ज़्यादा जानकारी के लिए, पुष्टि करने से जुड़ी हमारी गाइड देखें.
YAML फ़ाइल का इस्तेमाल करके कॉन्फ़िगरेशन
क्लाइंट को शुरू करते समय, 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
os.environ["GOOGLE_ADS_CONFIGURATION_FILE_PATH"] = "path/to/google-ads.yaml"
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
अगर दोनों वैल्यू दी जाती हैं, तो पाथ को तरीके में पास किया जाता है. साथ ही, एनवायरमेंट वैरिएबल मौजूद होता है. ऐसे में, लाइब्रेरी, तरीके में पास किए गए पाथ को प्राथमिकता देगी.
एनवायरमेंट वैरिएबल का इस्तेमाल करके कॉन्फ़िगरेशन
क्लाइंट के सभी कॉन्फ़िगरेशन को एनवायरमेंट वैरिएबल के तौर पर सेव किया जा सकता है. क्लाइंट के load_from_env तरीके का इस्तेमाल करते समय, इन्हें पढ़ा जाएगा. एनवायरमेंट वैरिएबल के नाम, google-ads.yaml फ़ाइल में तय किए गए नामों के जैसे होने चाहिए. हालांकि, ये सभी अपर केस में होने चाहिए और इनके आगे GOOGLE_ADS_ नेमस्पेस का प्रीफ़िक्स होना चाहिए. उदाहरण के लिए, client_id को GOOGLE_ADS_CLIENT_ID के तौर पर सेव किया जाना चाहिए.
एनवायरमेंट वैरिएबल आम तौर पर, बैश कॉन्फ़िगरेशन फ़ाइल में तय किए जाते हैं. जैसे, $HOME डायरेक्ट्री में मौजूद .bashrc या .bash_profile फ़ाइल. इन्हें कमांड लाइन का इस्तेमाल करके भी तय किया जा सकता है. ध्यान दें कि इन निर्देशों में यह मान लिया गया है कि bash का इस्तेमाल किया जा रहा है. अगर किसी दूसरे शेल का इस्तेमाल किया जा रहा है, तो आपको इस्तेमाल किए जा रहे शेल में एनवायरमेंट वैरिएबल सेट करने के तरीके के बारे में दस्तावेज़ देखना पड़ सकता है.
टर्मिनल का इस्तेमाल करके, .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.
$ src ~/.bashrc
एनवायरमेंट वैरिएबल को सीधे कमांड लाइन से, अपने टर्मिनल इंस्टेंस में भी सेट किया जा सकता है:
$ export GOOGLE_ADS_CLIENT_ID=1234567890
$ echo $GOOGLE_ADS_CLIENT_ID
1234567890
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 ऑब्जेक्ट होनी चाहिए. यह 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"
}
}
}'
YAML स्ट्रिंग का इस्तेमाल करके कॉन्फ़िगरेशन
अगर आपने YAML फ़ाइल को मेमोरी में पढ़ा है, तो इसे शुरू करते समय सीधे क्लाइंट को दिया जा सकता है. इसके लिए, सिर्फ़ load_from_string तरीके का इस्तेमाल करें.
from google.ads.googleads.client import GoogleAdsClient
with open("/path/to/yaml", "rb") as handle:
yaml = handle.read()
client = GoogleAdsClient.load_from_string(yaml)
dict का इस्तेमाल करके कॉन्फ़िगरेशन
आप सीधे dict को load_from_dict तरीके में पास कर सकते हैं. उदाहरण के लिए:
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"developer_token": "abcdef123456",
"refresh_token": "1//0abcdefghijklABCDEF",
"client_id": "123456-abcdef.apps.googleusercontent.com",
"client_secret": "aBcDeFgHiJkL"}
client = GoogleAdsClient.load_from_dict(credentials)
कॉन्फ़िगरेशन फ़ील्ड
क्लाइंट लाइब्रेरी कॉन्फ़िगरेशन में ये फ़ील्ड काम करते हैं.
पुष्टि करना
पुष्टि करने के लिए, फ़ील्ड के इनमें से किसी एक ग्रुप का इस्तेमाल करें. यह इस बात पर निर्भर करता है कि पुष्टि करने के लिए कौनसे तरीके का इस्तेमाल किया जा रहा है:
- एक उपयोगकर्ता के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करना (दस्तावेज़)
use_application_default_credentials: क्या लाइब्रेरी को पुष्टि करने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) का इस्तेमाल करना चाहिए.
- एक उपयोगकर्ता के लिए, OAuth टोकन का इस्तेमाल करना (दस्तावेज़)
client_id: आपका OAuth क्लाइंट आईडी.client_secret: आपका OAuth क्लाइंट सीक्रेट.refresh_token: आपका OAuth रीफ़्रेश टोकन.
- सेवा खाते का इस्तेमाल करना (दस्तावेज़)
json_key_file_path: स्थानीय निजी कुंजी वाली फ़ाइल का पाथ. इसका इस्तेमाल, सेवा खाते का इस्तेमाल करके पुष्टि करने के लिए किया जाता है.
लाइब्रेरी का व्यवहार
इन फ़ील्ड से, लाइब्रेरी के व्यवहार का पता चलता है:
logging: लॉगिंग कॉन्फ़िगरेशन की जानकारी देखें.http_proxy: प्रॉक्सी दस्तावेज़ देखें.use_proto_plus: proto-plus मैसेज का इस्तेमाल करना है या नहीं. protobuf मैसेज के बारे में दस्तावेज़ देखें.
अनुरोध के लेवल पर कॉन्फ़िगरेशन
developer_token: ज़रूरी है एपीआई को ऐक्सेस करने के लिए, आपका डेवलपर टोकन.linked_customer_id: लिंक किए गए ग्राहक आईडी के बारे में दस्तावेज़ देखें.login_customer_id: लॉगिन-कस्टमर-आईडी के बारे में दस्तावेज़ देखें.
एनवायरमेंट वैरिएबल
एनवायरमेंट वैरिएबल का इस्तेमाल करके लाइब्रेरी को कॉन्फ़िगर करने के लिए, इनका इस्तेमाल करें:
GOOGLE_ADS_CLIENT_IDGOOGLE_ADS_CLIENT_SECRETGOOGLE_ADS_CONFIGURATION_FILE_PATHGOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_HTTP_PROXYGOOGLE_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
लॉगिंग कॉन्फ़िगरेशन
लॉगिंग फ़ील्ड, जो logging कॉन्फ़िगरेशन
फ़ील्ड के तहत आने वाले फ़ील्ड होते हैं, सीधे logging.config बिल्ट-इन मॉड्यूल
से लिए जाते हैं, क्योंकि लाइब्रेरी, logging नेमस्पेस
के तहत आने वाले सभी फ़ील्ड को सीधे logging.config.dictConfig तरीके में पास करेगी. पूरी जानकारी के लिए,
लॉगिंग गाइड देखें.
version: स्कीमा के वर्शन को दिखाने वाली कोई पूर्णांक वैल्यू.disable_existing_loggers: क्या ऐप्लिकेशन में कहीं और कॉन्फ़िगर किए गए लॉगर्स को बंद किया जाना चाहिए.formatters: अलग-अलग तरह के फ़ॉर्मेटर तय करने वाली डिक्शनरी.handlers: अलग-अलग हैंडलर तय करने वाली डिक्शनरी. इनसे यह कंट्रोल किया जाता है कि लॉग कहां लिखे जाएं और किन फ़ॉर्मेटर का इस्तेमाल किया जाना चाहिए.loggers: अलग-अलग तरह के लॉगर तय करने वाली डिक्शनरी. इनमें एक हैंडलर और लॉग लेवल शामिल होता है.