Google Ads API की क्लाइंट लाइब्रेरी, कॉन्फ़िगरेशन की कई सेटिंग उपलब्ध कराती है. इनका इस्तेमाल करके, लाइब्रेरी के व्यवहार को पसंद के मुताबिक बनाया जा सकता है.
रनटाइम के दौरान लाइब्रेरी को कॉन्फ़िगर करना
क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने का सबसे अच्छा तरीका यह है कि रनटाइम के दौरान, GoogleAdsConfig ऑब्जेक्ट को शुरू किया जाए:
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN"
};
GoogleAdsClient client = new GoogleAdsClient(config);
कॉन्फ़िगरेशन के अन्य विकल्प
लाइब्रेरी, कॉन्फ़िगरेशन सेटिंग लोड करने के लिए अन्य विकल्प भी उपलब्ध कराती है. इन्हें चालू करने के लिए, अपने प्रोजेक्ट में
Google.Ads.GoogleAds.Extensions पैकेज में NuGet रेफ़रंस जोड़ें.
अगर इनमें से किसी एक विकल्प का इस्तेमाल किया जाता है, तो कॉन्फ़िगरेशन सेटिंग अपने-आप लोड नहीं होती हैं. आपको इन्हें साफ़ तौर पर लोड करना होगा. इसके लिए, यहां दिए गए सेक्शन देखें. बाहरी फ़ाइलों या स्ट्रीम से सेटिंग लोड करते समय, फ़ाइल I/O से जुड़ी गड़बड़ियों (जैसे, FileNotFoundException या UnauthorizedAccessException) को ठीक करना न भूलें.
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="" />
<!-- OAuth2 settings -->
<add key="OAuth2Mode" value="APPLICATION" />
<add key="OAuth2ClientId"
value="INSERT_CLIENT_ID.apps.googleusercontent.com" />
<add key="OAuth2ClientSecret" value="INSERT_CLIENT_SECRET" />
<add key="OAuth2RefreshToken" value="INSERT_REFRESH_TOKEN" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.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(GoogleAdsApi.config) में तय किए गए नाम से, एक और कॉन्फ़िगरेशन फ़ाइल बनाएं. इसके बाद, अपनेApp.configसेGoogleAdsApiकॉन्फ़िगरेशन नोड को इस फ़ाइल में ले जाएं:<?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": "",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
कॉन्फ़िगरेशन लोड करना
इसके बाद, 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": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
इसके बाद, अपने ऐप्लिकेशन के IConfiguration इंस्टेंस से GoogleAdsApi सेक्शन को एक्सट्रैक्ट करें. उदाहरण के लिए, ASP.NET Core से इंजेक्ट किया गया या ConfigurationBuilder से बनाया गया:
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
इसके अलावा, settings.json फ़ाइल को सीधे तौर पर पाथ से लोड किया जा सकता है. इसके लिए,
config.LoadFromSettingsJson(filePath, "GoogleAdsApi") का इस्तेमाल करें. साथ ही,
GOOGLE_ADS_CONFIGURATION_FILE_PATH एनवायरमेंट वैरिएबल
(EnvironmentVariableNames.CONFIG_FILE_PATH) से लोड करने के लिए,
config.TryLoadFromEnvironmentFilePath का इस्तेमाल करें.
एनवायरमेंट वैरिएबल का इस्तेमाल करना
एनवायरमेंट वैरिएबल का इस्तेमाल करके, 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 and dispose of the streams properly.
using (CryptoStream strm = GetEncryptedCredentialsStream())
using (StreamReader rdr = new StreamReader(strm))
{
// Configure the OAuth credentials from the encrypted stream.
config.LoadOAuth2SecretsFromStream(rdr);
}
GoogleAdsClient client = new GoogleAdsClient(config);
कॉन्फ़िगरेशन फ़ील्ड
यहां दिए गए सेक्शन में, Google Ads .NET लाइब्रेरी के साथ काम करने वाली सेटिंग की सूची दी गई है.
कनेक्टिविटी सेटिंग
Timeout: इस कुंजी का इस्तेमाल करके, सेवा के लिए टाइम आउट को मिलीसेकंड में सेट करें. डिफ़ॉल्ट वैल्यू,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 सर्वर के ख़िलाफ़ अपने कॉल को ऑथराइज़ करने के लिए, OAuth 2.0 का इस्तेमाल करते समय, आपको कॉन्फ़िगरेशन की ये कुंजियां सेट करनी चाहिए:
AuthorizationMethod: इसेOAuth2पर सेट करें.OAuth2Mode: इसेAPPLICATIONयाSERVICE_ACCOUNTपर सेट करें.OAuth2ClientId: इस वैल्यू को अपने OAuth 2.0 क्लाइंट आईडी पर सेट करें.OAuth2ClientSecret: इस वैल्यू को अपने OAuth 2.0 क्लाइंट सीक्रेट पर सेट करें.OAuth2Scope: अगर आपको एक से ज़्यादा एपीआई के लिए, OAuth 2.0 टोकन को ऑथराइज़ करना है, तो इस वैल्यू को अलग-अलग स्कोप पर सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.UseApplicationDefaultCredentials: Application Default Credentials (यह सुविधा,Google.Ads.GoogleAdsv24.1.0और इसके बाद के वर्शन में उपलब्ध है) का इस्तेमाल करके पुष्टि करने के लिए, इस वैल्यू कोtrueपर सेट करें.config.LoadFromEnvironmentVariables()बिना प्रीफ़िक्स वालेUSE_APPLICATION_DEFAULT_CREDENTIALSएनवायरमेंट वैरिएबल को पढ़ता है.Credentials: (सिर्फ़ रनटाइम के दौरान,v27.0.0और इसके बाद के वर्शन में उपलब्ध) रनटाइम के दौरान, पहले से बनाए गएICredentialयाGoogleCredentialइंस्टेंस को सीधेGoogleAdsConfigपर इंजेक्ट करें.
अगर OAuth2Mode == APPLICATION का इस्तेमाल किया जा रहा है, तो आपको कॉन्फ़िगरेशन की ये अतिरिक्त कुंजियां सेट करनी होंगी:
OAuth2RefreshToken: अगर आपको OAuth 2.0 टोकन का फिर से इस्तेमाल करना है, तो इस वैल्यू को पहले से जनरेट किए गए OAuth 2.0 रीफ़्रेश टोकन पर सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.OAuth2RedirectUri: इस वैल्यू को OAuth 2.0 रीडायरेक्ट यूआरएल पर सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.
ज़्यादा जानकारी के लिए, ये गाइड देखें:
अगर OAuth2Mode == SERVICE_ACCOUNT का इस्तेमाल किया जा रहा है, तो आपको कॉन्फ़िगरेशन की ये अतिरिक्त कुंजियां सेट करनी होंगी:
OAuth2SecretsJsonPath: इस वैल्यू को OAuth 2.0 JSON कुंजी वाली फ़ाइल के पाथ पर सेट करें.OAuth2PrnEmail: Google Workspace के डोमेन-वाइड डेलिगेशन का इस्तेमाल करते समय, जिस खाते के तौर पर काम किया जा रहा है उसके ईमेल पते पर इस वैल्यू को सेट करें. इस सेटिंग का इस्तेमाल करना ज़रूरी नहीं है.
ज़्यादा जानकारी के लिए, OAuth सेवा खाते के फ़्लो की गाइड देखें.
ट्रांसपोर्टेशन सेटिंग
UseGrpcCore: अंडरलाइन ट्रांसपोर्ट लेयर के तौर पर,Grpc.Coreलाइब्रेरी का इस्तेमाल करने के लिए, इस सेटिंग कोtrueपर सेट करें. लाइब्रेरीGrpc.Coreका इस्तेमाल करना देखें.
Google Ads API की सेटिंग
यहां दी गई सेटिंग, Google Ads API के लिए खास हैं:
LoginCustomerId: यह, अनुरोध में इस्तेमाल करने के लिए, ऑथराइज़ किए गए ग्राहक का आईडी है. इसमें हाइफ़न (-) शामिल नहीं होते.LinkedCustomerId: इस हेडर की ज़रूरत सिर्फ़ उन तरीकों के लिए होती है जो Google Ads के यूज़र इंटरफ़ेस (यूआई) में लिंक किए गए खातों (AccountLinkरिसॉर्स, Google Ads API में) के ज़रिए अनुमति मिलने पर, किसी इकाई के रिसॉर्स को अपडेट करते हैं. इस वैल्यू को, डेटा देने वाले उस ग्राहक के आईडी पर सेट करें जो तय किए गए ग्राहक आईडी के रिसॉर्स को अपडेट करता है. इसे बिना हाइफ़न (-) के सेट किया जाना चाहिए. लिंक किए गए खातों के बारे में ज़्यादा जानें.