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

Google Ads API क्लाइंट लाइब्रेरी, कॉन्फ़िगरेशन की कई सेटिंग उपलब्ध कराती है. इनका इस्तेमाल करके, लाइब्रेरी के व्यवहार को अपनी ज़रूरत के हिसाब से बदला जा सकता है.

लाइब्रेरी को रनटाइम पर कॉन्फ़िगर करना

क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने का सबसे अच्छा तरीका यह है कि रनटाइम के दौरान GoogleAdsConfig ऑब्जेक्ट को शुरू किया जाए:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

कॉन्फ़िगरेशन के अन्य विकल्प

हम क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने के लिए कुछ और विकल्प भी देते हैं: इन्हें चालू करने के लिए, अपने प्रोजेक्ट में Google.Ads.GoogleAds.Extensions पैकेज में Nuget रेफ़रंस जोड़ें.

इनमें से किसी एक विकल्प का इस्तेमाल करने पर, कॉन्फ़िगरेशन सेटिंग अपने-आप नहीं चुनी जाती हैं. आपको उन्हें साफ़ तौर पर लोड करना होगा. इसके लिए, यहां दिया गया तरीका अपनाएं.

App.config का इस्तेमाल करना

Google Ads API से जुड़ी सभी सेटिंग, App.config फ़ाइल के GoogleAdsApi नोड में सेव होती हैं. सामान्य कॉन्फ़िगरेशन App.config इस तरह होता है:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" />
  </configSections>
  <GoogleAdsApi>
    <!-- Set the service timeout in milliseconds. -->
    <add key="Timeout" value="2000" />

    <!-- Proxy settings for library. -->
    <add key="ProxyServer" value="http://localhost:8888"/>
    <add key="ProxyUser" value=""/>
    <add key="ProxyPassword" value=""/>
    <add key="ProxyDomain" value=""/>

    <!-- API-specific settings -->
    <add key="DeveloperToken" value="******"/>

    <!-- OAuth2 settings -->
    <add key = "OAuth2Mode" value="APPLICATION"/>
    <add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
    <add key = "OAuth2ClientSecret" value = "******" />
    <add key = "OAuth2RefreshToken" value = "******" />
  </GoogleAdsApi>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
  </startup>
</configuration>

App.config फ़ाइल से कॉन्फ़िगरेशन सेटिंग लोड करने के लिए, GoogleAdsConfig ऑब्जेक्ट पर LoadFromDefaultAppConfigSection तरीके को कॉल करें:

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);

अलग App.config फ़ाइल तय करना

अगर आपको अपने App.config को व्यवस्थित रखना है, तो configSource प्रॉपर्टी का इस्तेमाल करके, लाइब्रेरी से जुड़े कॉन्फ़िगरेशन को उसकी कॉन्फ़िगरेशन फ़ाइल में ले जाएं.

पहला चरण: अपने App.config में configSource तय करें

अपने App.config में बदलाव करके उसे ऐसा बनाएं:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
  </configSections>
  <GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>

दूसरा चरण: कॉन्फ़िगरेशन फ़ाइल का कॉन्टेंट तय करना

अब configSource पर दिए गए नाम से एक और कॉन्फ़िगरेशन फ़ाइल बनाएं. इसके बाद, अपने App.config से कॉन्फ़िगरेशन नोड को इस फ़ाइल में ले जाएं:

<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  ... More settings.
</GoogleAdsApi>

तीसरा चरण: अपने csproj में बिल्ड के नियमों को ठीक करना

आखिर में, अपने प्रोजेक्ट में नई कॉन्फ़िगरेशन फ़ाइल शामिल करें. इस फ़ाइल की प्रॉपर्टी बदलकर, हमेशा आउटपुट फ़ोल्डर में कॉपी करें पर सेट करें.

अब अपना प्रोजेक्ट बनाएं और उसे चलाएं. आपका ऐप्लिकेशन, नई कॉन्फ़िगरेशन फ़ाइल से वैल्यू लेना शुरू कर देगा.

कस्टम JSON फ़ाइल का इस्तेमाल करना

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

JSON फ़ाइल बनाना

GoogleAdsApi.json नाम की एक JSON फ़ाइल बनाएं. इसका स्ट्रक्चर, App.config फ़ाइल के स्ट्रक्चर जैसा होना चाहिए.

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

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

इसके बाद, JSON फ़ाइल को IConfigurationRoot में लोड करें.

ConfigurationBuilder builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);

settings.json फ़ाइल का इस्तेमाल करना

यहां की प्रोसेस, कस्टम JSON का इस्तेमाल करने जैसी ही है. हालांकि, कुंजियां GoogleAdsApi नाम वाले सेक्शन में होनी चाहिए:

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

इसके बाद, अपने पेज में IConfiguration इंस्टेंस का इस्तेमाल किया जा सकता है:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);

एनवायरमेंट वैरिएबल का इस्तेमाल करना

एनवायरमेंट वैरिएबल का इस्तेमाल करके भी GoogleAdsClient को शुरू किया जा सकता है:

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);

इस्तेमाल किए जा सकने वाले एनवायरमेंट वैरिएबल की पूरी सूची देखें.

किसी सामान्य स्ट्रीम का इस्तेमाल करना

सामान्य स्ट्रीम से कॉन्फ़िगरेशन या उसके कुछ हिस्से भी लोड किए जा सकते हैं. इनमें एन्क्रिप्ट (सुरक्षित) की गई स्ट्रीम भी शामिल है:

GoogleAdsConfig config = new GoogleAdsConfig()
{
  //Set some configuration properties in code.
  DeveloperToken = "******",
  OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};

// Load your encrypted data from a file.

CryptoStream strm = ....

StreamReader rdr = new StreamReader(strm);
// Configure the OAuth credentials from the encrypted file.
config.LoadOAuth2SecretsFromStream(rdr);

GoogleAdsClient client = new GoogleAdsClient(config);

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

यहां उन सेटिंग की सूची दी गई है जो Google Ads .NET लाइब्रेरी के साथ काम करती हैं.

इंटरनेट कनेक्शन की सेटिंग

  • Timeout: इस कुंजी का इस्तेमाल करके, सेवा के टाइम आउट को मिलीसेकंड में सेट करें. डिफ़ॉल्ट वैल्यू, googleads_grpc_service_config.json में मौजूद method_config/timeout सेटिंग के आधार पर सेट की जाती है. अगर आपको एपीआई कॉल के लिए ज़्यादा से ज़्यादा समय की सीमा कम करनी है, तो कम वैल्यू सेट करें. टाइम आउट की अवधि को दो घंटे या उससे ज़्यादा पर सेट किया जा सकता है. हालांकि, एपीआई अब भी बहुत ज़्यादा समय तक चलने वाले अनुरोधों को टाइम आउट कर सकता है और DEADLINE_EXCEEDED गड़बड़ी दिखा सकता है.
  • ProxyServer: अगर इंटरनेट से कनेक्ट करने के लिए प्रॉक्सी का इस्तेमाल किया जा रहा है, तो इसे HTTP प्रॉक्सी सर्वर के यूआरएल पर सेट करें.
  • ProxyUser: इसे उस उपयोगकर्ता नाम पर सेट करें जिसका इस्तेमाल आपको प्रॉक्सी सर्वर के ख़िलाफ़ पुष्टि करने के लिए करना है. अगर उपयोगकर्ता नाम की ज़रूरत नहीं है, तो इसे खाली छोड़ दें.
  • ProxyPassword: अगर आपने ProxyUser के लिए कोई वैल्यू सेट की है, तो इसे ProxyUser के पासवर्ड पर सेट करें.
  • ProxyDomain: अगर आपके प्रॉक्सी सर्वर के लिए, ProxyUser का डोमेन सेट करना ज़रूरी है, तो इसे सेट करें.
  • MaxReceiveMessageLengthInBytes: इस सेटिंग का इस्तेमाल करके, एपीआई से मिले जवाब के ज़्यादा से ज़्यादा साइज़ को बढ़ाया जा सकता है. इससे क्लाइंट लाइब्रेरी को जवाब को मैनेज करने में मदद मिलती है. डिफ़ॉल्ट वैल्यू 64 एमबी है.
  • MaxMetadataSizeInBytes: इस सेटिंग का इस्तेमाल करके, एपीआई से जुड़ी गड़बड़ी के जवाब का ज़्यादा से ज़्यादा साइज़ बढ़ाया जा सकता है. यह साइज़, क्लाइंट लाइब्रेरी मैनेज कर सकती है. डिफ़ॉल्ट वैल्यू 16 एमबी है.

ResourceExhausted से जुड़ी कुछ गड़बड़ियों को ठीक करने के लिए, MaxReceiveMessageLengthInBytes और MaxMetadataSizeInBytes सेटिंग में बदलाव करें. इन सेटिंग से, Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" फ़ॉर्मैट वाली गड़बड़ियों को ठीक किया जाता है.

इस उदाहरण में, गड़बड़ी की वजह मैसेज का साइज़ (423184132 bytes) है. यह लाइब्रेरी के हैंडल किए जा सकने वाले साइज़ (67108864 bytes) से ज़्यादा है. इस गड़बड़ी से बचने के लिए, MaxReceiveMessageLengthInBytes को 500000000 तक बढ़ाएं.

ध्यान दें कि इस गड़बड़ी से यह भी पता चलता है कि आपके कोड ने बहुत बड़े रिस्पॉन्स ऑब्जेक्ट (जैसे कि बड़ा SearchGoogleAdsResponse) को हैंडल किया है. .NET के लार्ज ऑब्जेक्ट हीप की वजह से, आपके कोड की परफ़ॉर्मेंस पर इसका असर पड़ सकता है. अगर इससे परफ़ॉर्मेंस पर असर पड़ता है, तो आपको यह देखना होगा कि एपीआई कॉल को फिर से व्यवस्थित कैसे किया जाए या अपने ऐप्लिकेशन के कुछ हिस्सों को फिर से डिज़ाइन कैसे किया जाए.

OAuth2 सेटिंग

Google Ads API सर्वर के ख़िलाफ़ अपने कॉल को अनुमति देने के लिए OAuth2 का इस्तेमाल करते समय, आपको कॉन्फ़िगरेशन की इन कुंजियों को सेट करना चाहिए:

  • AuthorizationMethod: OAuth2 पर सेट करें.
  • OAuth2Mode: इसे APPLICATION या SERVICE_ACCOUNT पर सेट करें.
  • OAuth2ClientId: इस वैल्यू को अपने OAuth2 क्लाइंट आईडी पर सेट करें.
  • OAuth2ClientSecret: इस वैल्यू को अपने OAuth2 क्लाइंट सीक्रेट पर सेट करें.
  • OAuth2Scope: अगर आपको कई एपीआई के लिए OAuth2 टोकन को अनुमति देनी है, तो इस वैल्यू को अलग-अलग स्कोप पर सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.

अगर OAuth2Mode == APPLICATION का इस्तेमाल किया जा रहा है, तो आपको यहां दी गई अतिरिक्त कॉन्फ़िगरेशन कुंजियां सेट करनी होंगी.

  • OAuth2RefreshToken: अगर आपको OAuth2 टोकन का फिर से इस्तेमाल करना है, तो इस वैल्यू को पहले से जनरेट किए गए OAuth2 रीफ़्रेश टोकन पर सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.
  • OAuth2RedirectUri: इस वैल्यू को OAuth2 रीडायरेक्ट यूआरएल पर सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.

ज़्यादा जानकारी के लिए, यहां दी गई गाइड देखें:

अगर OAuth2Mode == SERVICE_ACCOUNT का इस्तेमाल किया जा रहा है, तो आपको कॉन्फ़िगरेशन की ये अतिरिक्त कुंजियां सेट करनी होंगी.

  • OAuth2PrnEmail: इस वैल्यू को उस खाते के ईमेल पते पर सेट करें जिसका इस्तेमाल करके आपको कार्रवाई करनी है.
  • OAuth2SecretsJsonPath: इस वैल्यू को OAuth2 JSON कॉन्फ़िगरेशन फ़ाइल के पाथ पर सेट करें.

ज़्यादा जानकारी के लिए, OAuth सेवा खाते का फ़्लो गाइड देखें.

परिवहन की सेटिंग

Google Ads API की सेटिंग

यहां दी गई सेटिंग, Google Ads API के लिए खास तौर पर उपलब्ध हैं.

  • DeveloperToken: इसे अपने डेवलपर टोकन पर सेट करें.
  • LoginCustomerId: यह उस ग्राहक का आईडी है जिसे अनुरोध में इस्तेमाल करने की अनुमति मिली है. इसमें हाइफ़न (-) नहीं होते.
  • LinkedCustomerId: यह हेडर सिर्फ़ उन तरीकों के लिए ज़रूरी है जो Google Ads यूज़र इंटरफ़ेस (यूआई) में लिंक किए गए खातों के ज़रिए अनुमति मिलने पर, किसी इकाई के संसाधनों को अपडेट करते हैं. Google Ads API में यह AccountLink संसाधन होता है. इस वैल्यू को उस डेटा प्रोवाइडर के ग्राहक आईडी पर सेट करें जो बताए गए ग्राहक आईडी के संसाधनों को अपडेट करता है. इसे हाइफ़न (-) के बिना सेट किया जाना चाहिए. लिंक किए गए खातों के बारे में ज़्यादा जानें.