क्लाइंट को कॉन्फ़िगर करने के कई अलग-अलग तरीके हैं.
YAML फ़ाइल का इस्तेमाल करके कॉन्फ़िगरेशन करें
कोई YAML फ़ाइल तय करते समय, उसका इस्तेमाल किया जा सकता है. ऐसा क्लाइंट बनाते समय किया जा सकता है जिसमें पुष्टि करने की ज़रूरी जानकारी मौजूद हो. इस फ़ाइल को तब ऐक्सेस किया जाता है, जब load_from_storage
तरीके का इस्तेमाल करके क्लाइंट को शुरू किया जाता है.
इस फ़ाइल को जनरेट करने का सबसे आसान तरीका यह है कि आप GitHub रिपॉज़िटरी से google-ads.yaml
के उदाहरण को कॉपी करें और अपने क्रेडेंशियल शामिल करने के लिए उसमें बदलाव करें. इन क्रेडेंशियल में डेवलपर टोकन, रीफ़्रेश टोकन, क्लाइंट आईडी, और क्लाइंट सीक्रेट शामिल हैं.
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()
अगर दोनों वैल्यू दी जाती हैं, तो तरीके में पाथ पास किया जाता है और ऊपर दिया गया एनवायरमेंट वैरिएबल मौजूद होता है. इसके बाद, लाइब्रेरी, तरीके में पास किए गए पाथ को प्राथमिकता देगी.
अगर पाथ नहीं दिया जाता है, तो लाइब्रेरी इस फ़ाइल के लिए, आपकी $HOME
डायरेक्ट्री में दिखेगी:
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 ऑब्जेक्ट होना चाहिए. यह वैल्यू, 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
का इस्तेमाल करके कॉन्फ़िगर किया गया है
आपके पास, load_from_dict
वाले तरीके का इस्तेमाल करके 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)
कॉन्फ़िगरेशन फ़ील्ड
क्लाइंट लाइब्रेरी का कॉन्फ़िगरेशन, इन फ़ील्ड के साथ काम करता है.
सामान्य फ़ील्ड (चाहे ये नाम एक जैसे हों, भले ही YAML या लिखवाने वाले कॉन्फ़िगरेशन का इस्तेमाल किया जा रहा हो):
refresh_token
: आपका OAuth रीफ़्रेश टोकन.client_id
: आपका OAuth क्लाइंट आईडी.client_secret
: आपका OAuth क्लाइंट सीक्रेट.developer_token
: एपीआई ऐक्सेस करने के लिए, आपका डेवलपर टोकन.login_customer_id
: लॉगिन-ग्राहक आईडी दस्तावेज़ देखें.linked_customer_id
: लिंक किए गए ग्राहक आईडी से जुड़ा दस्तावेज़ देखें.json_key_file_path
(पहले इसका नामpath_to_private_key_file
था): यह किसी लोकल निजी पासकोड वाली फ़ाइल का पाथ होता है. इसका इस्तेमाल, सेवा खाते का इस्तेमाल करके पुष्टि करने के लिए किया जाता है. OAuth2 सेवा खाते से जुड़े दस्तावेज़ देखें.impersonated_email
(पहलेdelegate_account
था): प्रतिनिधि के तौर पर इस्तेमाल किया जाने वाला खाते का ईमेल. इसका इस्तेमाल, सेवा खाते की मदद से पुष्टि करने के लिए किया जाता है. OAuth2 सेवा खाते से जुड़ा दस्तावेज़ देखें.logging
: लॉग करने का कॉन्फ़िगरेशन. लॉगिंग फ़ील्ड के बारे में नीचे बताया गया है.http_proxy
: प्रॉक्सी दस्तावेज़ देखें.use_proto_plus
: प्रोटो-प्लस मैसेज का इस्तेमाल करना है या नहीं. प्रोटोबफ़ मैसेज दस्तावेज़ देखें.
एनवायरमेंट वैरिएबल के तौर पर सामान्य फ़ील्ड:
GOOGLE_ADS_CONFIGURATION_FILE_PATH
GOOGLE_ADS_REFRESH_TOKEN
GOOGLE_ADS_CLIENT_ID
GOOGLE_ADS_CLIENT_SECRET
GOOGLE_ADS_DEVELOPER_TOKEN
GOOGLE_ADS_LOGIN_CUSTOMER_ID
GOOGLE_ADS_LINKED_CUSTOMER_ID
GOOGLE_ADS_JSON_KEY_FILE_PATH
(पहले इसका नामGOOGLE_ADS_PATH_TO_PRIVATE_KEY_FILE
था)GOOGLE_ADS_IMPERSONATED_EMAIL
(पहले इसका नामGOOGLE_ADS_DELEGATE_ACCOUNT
था)GOOGLE_ADS_LOGGING
GOOGLE_ADS_HTTP_PROXY
GOOGLE_ADS_USE_PROTO_PLUS
लॉगिंग फ़ील्ड, जो logging
कॉन्फ़िगरेशन फ़ील्ड के नीचे होते हैं वे सीधे logging.config
बिल्ट-इन मॉड्यूल से लिए जाते हैं. ऐसा इसलिए, क्योंकि लाइब्रेरी logging
नेमस्पेस के सभी फ़ील्ड को सीधे logging.config.dictConfig
मेथड से पास करती है. पूरी जानकारी के लिए लॉग इन करने की गाइड देखें.
version
: स्कीमा वर्शन को दिखाने वाली पूरी संख्या.disable_existing_loggers
: ऐप्लिकेशन में किसी दूसरी जगह कॉन्फ़िगर किए गए लॉगर को बंद किया जाना चाहिए या नहीं.formatters
: अलग-अलग तरह के फ़ॉर्मैटर के बारे में बताने वाले शब्दकोश.handlers
: अलग-अलग हैंडलर के बारे में बताने वाली डिक्शनरी. इनसे यह कंट्रोल होता है कि लॉग कहां लिखे जाएंगे और फ़ॉर्मैटर का इस्तेमाल कैसे किया जाना चाहिए.loggers
: अलग-अलग तरह के लॉगर के बारे में बताने वाली डिक्शनरी, इनमें हैंडलर और लॉग लेवल शामिल हैं.