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

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 node में सेव होती हैं. सामान्य कॉन्फ़िगरेशन 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);

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

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

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 संसाधन) में लिंक किए गए खातों के ज़रिए अनुमति दी जाती है. इस वैल्यू को, डेटा उपलब्ध कराने वाली उस कंपनी के ग्राहक आईडी पर सेट करें जो बताए गए ग्राहक आईडी के संसाधनों को अपडेट करती है. इसे हाइफ़न (-) के बिना सेट किया जाना चाहिए. लिंक किए गए खातों के बारे में ज़्यादा जानें.