कॉन्फ़िगरेशन

क्लाइंट को कॉन्फ़िगर करने के कई अलग-अलग तरीके हैं.

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 या लिखवाने वाले कॉन्फ़िगरेशन का इस्तेमाल किया जा रहा हो):

एनवायरमेंट वैरिएबल के तौर पर सामान्य फ़ील्ड:

  • 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: अलग-अलग तरह के लॉगर के बारे में बताने वाली डिक्शनरी, इनमें हैंडलर और लॉग लेवल शामिल हैं.