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

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

पुष्टि करने का कॉन्फ़िगरेशन

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 ऑब्जेक्ट होना चाहिए. यह ऑब्जेक्ट, 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: यह लोकल प्राइवेट की फ़ाइल का पाथ होता है. इस कुकी का इस्तेमाल, सेवा खाते का इस्तेमाल करके पुष्टि करने के लिए किया जाता है.

लाइब्रेरी का व्यवहार

इन फ़ील्ड से लाइब्रेरी के काम करने के तरीके के बारे में पता चलता है:

अनुरोध के लेवल पर कॉन्फ़िगरेशन

एनवायरमेंट वैरिएबल

एनवायरमेंट वैरिएबल का इस्तेमाल करके लाइब्रेरी को कॉन्फ़िगर करने के लिए, इसका इस्तेमाल करें:

  • GOOGLE_ADS_CLIENT_ID
  • GOOGLE_ADS_CLIENT_SECRET
  • GOOGLE_ADS_CONFIGURATION_FILE_PATH
  • GOOGLE_ADS_DEVELOPER_TOKEN
  • GOOGLE_ADS_HTTP_PROXY
  • GOOGLE_ADS_JSON_KEY_FILE_PATH
  • GOOGLE_ADS_LINKED_CUSTOMER_ID
  • GOOGLE_ADS_LOGIN_CUSTOMER_ID
  • GOOGLE_ADS_LOGGING
  • GOOGLE_ADS_REFRESH_TOKEN
  • GOOGLE_ADS_USE_PROTO_PLUS
  • GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS

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

लॉगिंग फ़ील्ड, logging कॉन्फ़िगरेशन फ़ील्ड के नीचे मौजूद फ़ील्ड होते हैं. इन्हें सीधे तौर पर logging.config बिल्ट-इन मॉड्यूल से लिया जाता है, क्योंकि लाइब्रेरी logging नेमस्पेस के तहत मौजूद सभी फ़ील्ड को सीधे तौर पर logging.config.dictConfig तरीके से पास करेगी. पूरी जानकारी के लिए, लॉगिंग गाइड देखें.

  • version: यह एक पूर्णांक वैल्यू होती है, जो स्कीमा के वर्शन को दिखाती है.
  • disable_existing_loggers: इससे यह तय किया जाता है कि ऐप्लिकेशन में कहीं और कॉन्फ़िगर किए गए लॉगर को बंद करना है या नहीं.
  • formatters: अलग-अलग तरह के फ़ॉर्मेटर तय करने वाली डिक्शनरी.
  • handlers: अलग-अलग हैंडलर तय करने वाली डिक्शनरी. इनसे यह कंट्रोल किया जाता है कि लॉग कहां लिखे जाएंगे और किन फ़ॉर्मेटर का इस्तेमाल किया जाना चाहिए.
  • loggers: अलग-अलग तरह के लॉगर तय करने वाली डिक्शनरी. इनमें हैंडलर और लॉग लेवल शामिल होता है.