La bibliothèque cliente de l'API Google Ads fournit plusieurs paramètres de configuration que vous pouvez utiliser pour personnaliser le comportement de la bibliothèque.
Configurer la bibliothèque au moment de l'exécution
La méthode recommandée pour configurer la bibliothèque cliente consiste à initialiser un objet GoogleAdsConfig au moment de l'exécution :
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);
Autres options de configuration
La bibliothèque fournit également des options supplémentaires pour charger les paramètres de configuration. Pour
les activer, ajoutez une référence NuGet au
Google.Ads.GoogleAds.Extensions package dans votre projet.
Si vous utilisez l'une de ces options, les paramètres de configuration ne sont pas récupérés automatiquement. Vous devez les charger explicitement, comme indiqué dans les sections suivantes. Veillez à gérer les exceptions d'E/S de fichier (telles que FileNotFoundException ou UnauthorizedAccessException) lorsque vous chargez des paramètres à partir de fichiers ou de flux externes.
Utiliser App.config
Tous les paramètres spécifiques à l'API Google Ads sont stockés dans le nœud GoogleAdsApi du fichier App.config. Voici une configuration App.config type :
<?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>
Pour charger les paramètres de configuration à partir d'un fichier App.config, appelez la méthode LoadFromDefaultAppConfigSection sur un objet GoogleAdsConfig :
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Spécifier un fichier App.config distinct
Si vous ne souhaitez pas encombrer votre App.config, vous pouvez déplacer la
configuration spécifique à la bibliothèque dans son propre fichier de configuration à l'aide de la
configSource propriété :
Spécifiez un
configSourcedans votreApp.config. Modifiez votre fichierApp.configpour référencer un fichier de configuration externe :<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" /> </configSections> <GoogleAdsApi configSource="GoogleAdsApi.config" /> </configuration>Spécifiez le contenu de votre fichier de configuration. Créez un autre fichier de configuration portant le nom que vous avez spécifié dans
configSource(GoogleAdsApi.config), puis déplacez le nœud de configurationGoogleAdsApide votre fichierApp.configvers ce fichier :<?xml version="1.0" encoding="utf-8" ?> <GoogleAdsApi> <!-- More settings. --> </GoogleAdsApi>Mettez à jour les règles de compilation dans votre fichier
.csproj. Incluez le nouveau fichier de configuration dans votre projet et définissez sa propriété Copier dans le répertoire de sortie sur Toujours copier. Recompilez et exécutez votre projet pour que votre application récupère les valeurs du nouveau fichier de configuration.
Utiliser un fichier JSON personnalisé
Vous pouvez utiliser une IConfigurationRoot instance pour configurer la
bibliothèque cliente.
Créer un fichier JSON
Créez un fichier JSON nommé GoogleAdsApi.json dont la structure est semblable à celle du fichier 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"
}
Charger la configuration
Ensuite, chargez le fichier JSON dans un 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);
Utiliser settings.json
Le processus est semblable à celui qui consiste à utiliser un fichier JSON personnalisé, sauf que les clés doivent se trouver dans une section nommée GoogleAdsApi :
{
"GoogleAdsApi": {
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
Ensuite, extrayez la section GoogleAdsApi de l'instance IConfiguration de votre application (par exemple, injectée par ASP.NET Core ou créée avec ConfigurationBuilder) :
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Vous pouvez également charger un fichier settings.json directement par chemin d'accès avec
config.LoadFromSettingsJson(filePath, "GoogleAdsApi"), ou à partir de la variable d'environnement
GOOGLE_ADS_CONFIGURATION_FILE_PATH
(EnvironmentVariableNames.CONFIG_FILE_PATH) à l'aide de
config.TryLoadFromEnvironmentFilePath.
Utiliser des variables d'environnement
Vous pouvez également initialiser le GoogleAdsClient à l'aide de variables d'environnement :
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Consultez la liste complète des variables d'environnement compatibles.
Utiliser un flux générique
Vous pouvez également charger la configuration, ou certaines de ses parties, à partir d'un flux générique, y compris un flux chiffré :
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);
Champs de configuration
Les sections suivantes listent les paramètres compatibles avec la bibliothèque .NET Google Ads.
Paramètres de connectivité
Timeout: utilisez cette clé pour définir le délai d'attente du service en millisecondes. La valeur par défaut est définie en fonction du paramètremethod_config/timeoutdansgoogleads_grpc_service_config.json. Définissez une valeur inférieure si vous devez appliquer une limite plus courte à la durée maximale d'un appel d'API. Vous pouvez définir le délai d'attente sur deux heures ou plus, mais l'API peut toujours expirer les requêtes de très longue durée et renvoyer uneDEADLINE_EXCEEDEDerreur.ProxyServer: définissez cette valeur sur l'URL du serveur proxy HTTP si vous utilisez un proxy pour vous connecter à Internet.ProxyUser: définissez cette valeur sur le nom d'utilisateur requis pour vous authentifier auprès du serveur proxy. Laissez ce champ vide si aucun nom d'utilisateur n'est requis.ProxyPassword: définissez cette valeur sur le mot de passe deProxyUsersi vous avez défini une valeur pourProxyUser.ProxyDomain: définissez cette valeur sur le domaine deProxyUsersi votre serveur proxy nécessite qu'il soit défini.MaxReceiveMessageLengthInBytes: utilisez ce paramètre pour augmenter la taille maximale de la réponse de l'API que la bibliothèque cliente peut gérer. La valeur par défaut est 64 Mo.MaxMetadataSizeInBytes: utilisez ce paramètre pour augmenter la taille maximale de la réponse d'erreur de l'API que la bibliothèque cliente peut gérer. La valeur par défaut est 16 Mo.
Ajustez les paramètres MaxReceiveMessageLengthInBytes et MaxMetadataSizeInBytes pour corriger certaines erreurs ResourceExhausted. Ces paramètres résolvent les erreurs du formulaire suivant :
Status(StatusCode="ResourceExhausted",Detail="Received
message larger than max (423184132 versus 67108864)"
Dans cet exemple, l'erreur est due à la taille du message (423184132 bytes), qui est supérieure à ce que la bibliothèque peut gérer (67108864 bytes). Augmentez MaxReceiveMessageLengthInBytes à 500000000 pour éviter cette erreur. Note
que l'erreur indique également que votre code a géré un objet de réponse très volumineux (tel qu'un SearchGoogleAdsResponse volumineux).
Cela peut avoir des conséquences sur les performances de votre code en raison du
tas d'objets volumineux de .NET. Si cela devient un problème de performances, vous devrez peut-être explorer comment réorganiser vos appels d'API ou repenser certaines parties de votre application.
Paramètres OAuth2
Lorsque vous utilisez OAuth 2.0 pour autoriser vos appels aux serveurs de l'API Google Ads, vous devez définir les clés de configuration suivantes :
AuthorizationMethod: définissez cette valeur surOAuth2.OAuth2Mode: définissez cette valeur surAPPLICATIONouSERVICE_ACCOUNT.OAuth2ClientId: définissez cette valeur sur votre ID client OAuth 2.0.OAuth2ClientSecret: définissez cette valeur sur votre code secret client OAuth 2.0.OAuth2Scope: définissez cette valeur sur différentes étendues si vous souhaitez autoriser les jetons OAuth 2.0 pour plusieurs API. Ce paramètre est facultatif.UseApplicationDefaultCredentials: définissez cette valeur surtruepour vous authentifier à l'aide des identifiants par défaut de l'application (compatibles avecGoogle.Ads.GoogleAdsv24.1.0et versions ultérieures ;config.LoadFromEnvironmentVariables()lit la variable d'environnementUSE_APPLICATION_DEFAULT_CREDENTIALSsans préfixe).Credentials: (exécution uniquement, compatible avecv27.0.0et versions ultérieures) Injectez une instanceICredentialouGoogleCredentialpréconstruite directement surGoogleAdsConfigau moment de l’exécution.
Si vous utilisez OAuth2Mode == APPLICATION, vous devez définir les clés de configuration supplémentaires suivantes :
OAuth2RefreshToken: définissez cette valeur sur un jeton d'actualisation OAuth 2.0 pré-généré si vous souhaitez réutiliser des jetons OAuth 2.0. Ce paramètre est facultatif.OAuth2RedirectUri: définissez cette valeur sur l'URL de redirection OAuth 2.0. Ce paramètre est facultatif.
Pour en savoir plus, consultez les guides suivants :
Si vous utilisez OAuth2Mode == SERVICE_ACCOUNT, vous devez définir les clés de configuration supplémentaires suivantes :
OAuth2SecretsJsonPath: définissez cette valeur sur le chemin d'accès au fichier de clé JSON OAuth 2.0.OAuth2PrnEmail: définissez cette valeur sur l'adresse e-mail du compte que vous empruntez lorsque vous utilisez la délégation à l'échelle du domaine Google Workspace. Ce paramètre est facultatif.
Pour en savoir plus, consultez le guide sur le flux de compte de service OAuth.
Paramètres de transport
UseGrpcCore: définissez ce paramètre surtruepour utiliser la bibliothèqueGrpc.Corecomme couche transport sous-jacente. Consultez Utiliser la bibliothèqueGrpc.Core.
Paramètres de l'API Google Ads
Les paramètres suivants sont spécifiques à l'API Google Ads :
LoginCustomerId: il s'agit de l'ID client du client autorisé à utiliser dans la requête, sans tirets (-).LinkedCustomerId: cet en-tête n'est requis que pour les méthodes qui mettent à jour les ressources d'une entité lorsque l'autorisation est accordée via des comptes associés dans l'UI Google Ads (ressourceAccountLinkdans l'API Google Ads). Définissez cette valeur sur le numéro client du fournisseur de données qui met à jour les ressources du numéro client spécifié. Il doit être défini sans tirets (-). En savoir plus sur les comptes associés.