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

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

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 का इस्तेमाल करके कॉन्फ़िगरेशन किया गया है

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)

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

क्लाइंट लाइब्रेरी का कॉन्फ़िगरेशन, इन फ़ील्ड के साथ काम करता है.

सामान्य फ़ील्ड (भले ही, YAML या लिखवाने वाले कॉन्फ़िगरेशन का इस्तेमाल किया जा रहा हो, ये नाम एक जैसे होते हैं):

  • refresh_token: आपका OAuth रीफ़्रेश टोकन.
  • client_id: आपका OAuth क्लाइंट आईडी.
  • client_secret: आपका OAuth क्लाइंट सीक्रेट.
  • developer_token: एपीआई ऐक्सेस करने के लिए आपका डेवलपर टोकन.
  • login_customer_id: login-customer-id दस्तावेज़ देखें.
  • linked_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: अलग-अलग तरह के लॉगर के बारे में बताने वाले शब्दकोश, जिनमें हैंडलर और लॉग लेवल शामिल हैं.