Google Ads API की क्लाइंट लाइब्रेरी, कॉन्फ़िगरेशन की कई सेटिंग उपलब्ध कराती है. इनका इस्तेमाल करके, लाइब्रेरी के बिहेवियर को पसंद के मुताबिक बनाया जा सकता है.
रनटाइम के दौरान लाइब्रेरी को कॉन्फ़िगर करना
क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने का सबसे अच्छा तरीका यह है कि रनटाइम के दौरान, GoogleAdsConfig ऑब्जेक्ट को शुरू किया जाए:
GoogleAdsConfig config = new GoogleAdsConfig()
{
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"></section>
</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=""/>
<!-- 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"></section>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
दूसरा चरण: अपनी कॉन्फ़िगरेशन फ़ाइल का कॉन्टेंट तय करना
अब configSource पर तय किए गए नाम से एक और कॉन्फ़िगरेशन फ़ाइल बनाएं. इसके बाद, अपने App.config से कॉन्फ़िगरेशन नोड को इस फ़ाइल में ले जाएं:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
तीसरा चरण: अपने csproj में, बिल्ड के नियमों को ठीक करना
आखिर में, अपने प्रोजेक्ट में नई कॉन्फ़िगरेशन फ़ाइल शामिल करें. इस फ़ाइल की प्रॉपर्टी को Always copy to output folder पर बदलें.
अब अपने प्रोजेक्ट को बिल्ड करें और चलाएं. आपका ऐप्लिकेशन, नई कॉन्फ़िगरेशन फ़ाइल से वैल्यू चुनना शुरू कर देगा.
JSON की कस्टम फ़ाइल का इस्तेमाल करना
क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने के लिए, IConfigurationRoot इंस्टेंस का इस्तेमाल किया जा सकता है.
JSON फ़ाइल बनाना
GoogleAdsApi.json नाम की एक JSON फ़ाइल बनाएं. इसका स्ट्रक्चर, App.config फ़ाइल जैसा होना चाहिए.
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"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":
{
"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.
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: इस कुंजी का इस्तेमाल, सेवा के लिए टाइम आउट को मिलीसेकंड में सेट करने के लिए करें. The डिफ़ॉल्ट वैल्यू,method_config/timeoutसेटिंग के आधार पर सेट की जाती है जो googleads_grpc_service_config.json में है. अगर आपको एपीआई कॉल के लिए, ज़्यादा से ज़्यादा समय की सीमा कम करनी है, तो कम वैल्यू सेट करें. टाइम आउट को दो घंटे या उससे ज़्यादा पर सेट किया जा सकता है. हालांकि, एपीआई अब भी बहुत ज़्यादा समय तक चलने वाले अनुरोधों के लिए टाइम आउट हो सकता है और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 के लिए खास हैं.
LoginCustomerId: यह अनुमति वाले ग्राहक का आईडी है. इसका इस्तेमाल अनुरोध में किया जा सकता है. इसमें हाइफ़न (-) नहीं होना चाहिए.LinkedCustomerId: इस हेडर की ज़रूरत सिर्फ़ उन तरीकों के लिए होती है जो किसी इकाई के संसाधनों को अपडेट करते हैं. ऐसा तब होता है, जब Google Ads के यूज़र इंटरफ़ेस (यूआई) में लिंक किए गए खातों (AccountLinkसंसाधन, Google Ads API में) के ज़रिए अनुमति दी जाती है. इस वैल्यू को, डेटा देने वाले उस ग्राहक के आईडी पर सेट करें जो तय किए गए ग्राहक आईडी के संसाधनों को अपडेट करता है. इसे हाइफ़न (-) के बिना सेट किया जाना चाहिए. लिंक किए गए खातों के बारे में ज़्यादा जानें.