Configuration

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 fournissons également des options supplémentaires pour configurer la bibliothèque cliente: pour les activer, 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 sélectionné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. Une configuration App.config type est la suivante:

<?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 voulez 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 propriété configSource.

Étape 1: Spécifiez une source dans le fichier App.config

Modifiez votre App.config pour qu'il 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 du fichier de configuration

Créez maintenant un autre fichier de configuration portant le nom que vous avez spécifié dans 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 un nouveau fichier de configuration dans votre projet. Définissez les propriétés de ce fichier sur Toujours copier dans le dossier de sortie.

À présent, 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 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 avec le fichier settings.json

Le processus est semblable à l'utilisation d'un fichier JSON personnalisé, à la différence 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

Vous trouverez ci-dessous 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ètre method_config/timeout de googleads_grpc_service_config.json. Définissez une valeur inférieure si vous devez imposer une limite plus courte pour la durée maximale 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 des requêtes extrêmement longues et renvoyer une erreur DEADLINE_EXCEEDED.
  • ProxyServer: indiquez l'URL du serveur proxy HTTP si vous utilisez un proxy pour vous connecter à Internet.
  • ProxyUser: indiquez 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: indiquez le mot de passe de ProxyUser si vous définissez une valeur pour ProxyUser.
  • ProxyDomain: indiquez le domaine de ProxyUser si votre serveur proxy en a besoin.
  • 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 de 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 de 16 Mo.

Ajustez les paramètres MaxReceiveMessageLengthInBytes et MaxMetadataSizeInBytes pour corriger certaines erreurs ResourceExhausted. Ces paramètres traitent les erreurs de la forme Status(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 à celle que la bibliothèque peut gérer (67108864 bytes). Définissez MaxReceiveMessageLengthInBytes sur 500000000 pour éviter cette erreur.

Notez que cette erreur indique également que votre code a traité un objet Response beaucoup plus volumineux (tel qu'un SearchGoogleAdsResponse volumineux), ce qui peut affecter les performances de votre code en raison du grand tas d'objets de .NET. Si cela pose un problème de performances, vous devrez peut-être envisager de réorganiser vos appels d'API ou de repenser certaines 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 sur OAuth2.
  • OAuth2Mode: défini sur APPLICATION ou SERVICE_ACCOUNT.
  • OAuth2ClientId: définissez cette valeur sur votre ID client OAuth2.
  • OAuth2ClientSecret: définissez cette valeur sur le code secret de votre client OAuth2.
  • OAuth2Scope: définissez cette valeur sur des champs d'application différents si vous souhaitez autoriser les 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 empruntez 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 sur le flux des comptes de service OAuth.

Paramètres des transports

  • UseGrpcCore: définissez ce paramètre sur true pour utiliser la bibliothèque Grpc.Core comme couche de transport sous-jacente. Pour en savoir plus, consultez le guide de compatibilité gRPC.

Paramètres de l'API Google Ads

Les paramètres suivants sont spécifiques à l'API Google Ads.

  • DeveloperToken: indiquez votre jeton de développeur.
  • LoginCustomerId: numéro 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 vous y êtes autorisé via les comptes associés dans l'UI Google Ads (ressource AccountLink 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é. Il doit être défini sans tirets (-). En savoir plus sur les comptes associés