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

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

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

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

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = "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>

चरण 3: अपने 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: अगर इंटरनेट से कनेक्ट करने के लिए प्रॉक्सी का इस्तेमाल किया जा रहा है, तो इसे एचटीटीपी प्रॉक्सी सर्वर के यूआरएल पर सेट करें.
  • 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 सेवा खाता फ़्लो गाइड देखें.

यात्रा की सुविधा से जुड़ी सेटिंग

  • UseGrpcCore: Grpc.Core लाइब्रेरी को मुख्य ट्रांसपोर्ट लेयर के तौर पर इस्तेमाल करने के लिए, इस सेटिंग को true पर सेट करें. ज़्यादा जानकारी के लिए, gRPC की सहायता गाइड देखें.

Google Ads API की सेटिंग

ये सेटिंग खास तौर पर Google Ads API के लिए हैं.

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