La bibliothèque cliente de l'API Google Ads fournit plusieurs paramètres de configuration que vous pouvez utiliser pour personnaliser son comportement.
Configurer la bibliothèque au moment de l'exécution
La méthode privilégiée pour configurer la bibliothèque cliente consiste à initialiser un objet GoogleAdsConfig
au moment de l'exécution:
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = "APPLICATION",
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Autres options de configuration
Nous proposons également d'autres options pour configurer la bibliothèque cliente. Pour ce faire, ajoutez une référence Nuget au package Google.Ads.GoogleAds.Extensions
dans votre projet.
Si vous utilisez l'une de ces options, les paramètres de configuration ne sont pas collectés automatiquement: vous devez les charger explicitement, comme indiqué ci-dessous.
Configurer à l'aide d'App.config
Tous les paramètres spécifiques à Google Ads API
sont stockés dans le nœud GoogleAdsApi
du fichier App.config
. Voici un exemple de configuration App.config
typique:
<?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>
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 que votre App.config
soit encombrée, vous pouvez déplacer la configuration spécifique à la bibliothèque dans son propre fichier de configuration à l'aide de la propriété configSource
.
Étape 1: Spécifiez une configurationSource dans votre fichier App.config
Modifiez votre App.config
pour qu'elle se présente comme suit:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
Étape 2: Spécifiez le contenu de votre fichier de configuration
Créez maintenant un autre fichier de configuration portant le nom que vous avez spécifié sur configSource
, puis déplacez le nœud de configuration de votre App.config
vers ce fichier:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
Étape 3: Corrigez les règles de compilation dans votre fichier csproj
Enfin, incluez le nouveau fichier de configuration dans votre projet. Définissez les propriétés de ce fichier sur Toujours copier dans le dossier de sortie.
Maintenant, créez et exécutez votre projet. Votre application commencera à récupérer les valeurs du nouveau fichier de configuration.
Configuration à l'aide d'un fichier JSON personnalisé
Vous pouvez utiliser une instance IConfigurationRoot
pour configurer la bibliothèque cliente.
Créer un fichier JSON
Créez un fichier JSON nommé GoogleAdsApi.json
ayant une structure semblable à celle du fichier App.config
.
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
}
Charger la configuration
Ensuite, chargez le fichier JSON dans un fichier 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);
Configuration à l'aide de settings.json
Le processus est semblable à l'utilisation d'un fichier JSON personnalisé, sauf que les clés doivent se trouver dans une section nommée GoogleAdsApi
:
{
"GoogleAdsApi":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
Vous pouvez ensuite utiliser l'instance IConfiguration
sur votre page:
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Configuration à l'aide de variables d'environnement
Vous pouvez également initialiser 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.
Champs de configuration
Voici la liste des paramètres compatibles avec la bibliothèque .NET Google Ads.
Paramètres de connectivité
Timeout
: utilisez cette clé pour définir le délai avant expiration du service en millisecondes. La valeur par défaut est définie en fonction du paramètremethod_config/timeout
inclus dans googleads_grpc_service_config.json. Définissez une valeur plus faible si vous devez appliquer une limite plus courte pour le délai maximal d'un appel d'API. Vous pouvez définir le délai avant expiration sur deux heures ou plus, mais l'API peut toujours dépasser le délai d'expiration des requêtes très longues et renvoyer une erreurDEADLINE_EXCEEDED
.ProxyServer
: définissez cette valeur sur l'URL du serveur proxy HTTP si vous utilisez un proxy pour vous connecter à Internet.ProxyUser
: définissez le nom d'utilisateur dont vous avez besoin pour vous authentifier auprès du serveur proxy. Laissez ce champ vide si aucun nom d'utilisateur n'est requis.ProxyPassword
: définissez le mot de passeProxyUser
si vous avez défini une valeur pourProxyUser
.ProxyDomain
: définissez ce paramètre sur le domaine pourProxyUser
si votre serveur proxy nécessite l'un d'entre eux.MaxReceiveMessageLengthInBytes
: utilisez ce paramètre pour augmenter la taille maximale de la réponse d'API que la bibliothèque cliente peut gérer. La valeur par défaut est de 64 Mo.MaxMetadataSizeInBytes
: utilisez ce paramètre pour augmenter la taille maximale de la réponse d'erreur d'API que la bibliothèque cliente peut gérer. La valeur par défaut est de 16 Mo.
Ajustez les paramètres
MaxReceiveMessageLengthInBytes
etMaxMetadataSizeInBytes
pour corriger certaines erreursResourceExhausted
. Ces paramètres corrigent les erreurs au formatStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
.Dans cet exemple, l'erreur est due au fait que la taille du message (
423184132 bytes
) est supérieure à la taille que la bibliothèque peut gérer (67108864 bytes
). Pour éviter cette erreur, définissezMaxReceiveMessageLengthInBytes
sur500000000
.Notez que l'erreur indique également que votre code a traité un objet Response de taille importante (un
SearchGoogleAdsResponse
volumineux, par exemple). Cela peut avoir des répercussions sur les performances du code en raison du segment d'objet volumineux de .NET. Si cela pose un problème de performances, vous devrez peut-être explorer la façon de réorganiser vos appels d'API ou de repenser les parties de votre application.
Paramètres OAuth2
Lorsque vous utilisez OAuth2 pour autoriser vos appels sur les serveurs de l'API Google Ads, vous devez définir les clés de configuration suivantes:
- Définissez
AuthorizationMethod
surOAuth2
. OAuth2Mode
: définissezAPPLICATION
ouSERVICE_ACCOUNT
.OAuth2ClientId
: définissez cette valeur sur votre ID client OAuth2.OAuth2ClientSecret
: définissez cette valeur sur votre code secret de client OAuth2.OAuth2Scope
: définissez cette valeur sur différents champs d'application si vous souhaitez autoriser des jetons OAuth2 pour plusieurs API. Ce paramètre est facultatif.
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 OAuth2 prégénéré si vous souhaitez réutiliser des jetons OAuth2. Ce paramètre est facultatif.OAuth2RedirectUri
: définissez cette valeur sur l'URL de redirection OAuth2. 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.
OAuth2PrnEmail
: définissez cette valeur sur l'adresse e-mail du compte dont vous usurpez l'identité.OAuth2SecretsJsonPath
: définissez cette valeur sur le chemin d'accès au fichier de configuration JSON OAuth2.
Pour en savoir plus, consultez le guide Flux du compte de service OAuth.
Paramètres du transport
UseGrpcCore
: définissez ce paramètre surtrue
pour utiliser la bibliothèqueGrpc.Core
comme couche de transport sous-jacente. Pour en savoir plus, consultez le guide d'assistance gRPC.
Paramètres de l'API Google Ads
Les paramètres suivants sont spécifiques à l'API Google Ads.
DeveloperToken
: définissez ce jeton sur votre jeton de développeur.LoginCustomerId
: numéro 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é lorsqu'il est autorisé via des comptes associés dans l'UI Google Ads (ressourceAccountLink
dans 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é. Doit être défini sans traits d'union (-
). En savoir plus sur les comptes associés