Configuração

A biblioteca de cliente da API Google Ads oferece várias opções de configuração que podem ser usadas para personalizar o comportamento da biblioteca.

Como configurar usando o App.config

Todas as configurações específicas de Google Ads API são armazenadas no nó GoogleAdsApi do arquivo App.config. Uma configuração típica de App.config é a seguinte:

<?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>

Como especificar um arquivo App.config separado

Se você não quiser criar um App.config confuso, mova a configuração específica da biblioteca para o próprio arquivo de configuração usando a propriedade configSource.

Etapa 1: especificar um configSource no App.config

Modifique o App.config para que ele fique assim:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
  </configSections>
  <GoogleAdsApi configSource="GoogleAdsApi.config"/>
…
</configuration>

Etapa 2: especificar o conteúdo do arquivo de configuração

Agora, crie outro arquivo de configuração com o nome especificado em configSource e mova o nó de configuração do App.config para esse arquivo:

<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  … More settings.
</GoogleAdsApi>

Etapa 3: corrigir as regras de compilação no csproj

Por fim, inclua o novo arquivo de configuração no seu projeto. Altere as propriedades deste arquivo para Sempre copiar para a pasta de saída.

Agora, crie e execute seu projeto. Seu aplicativo começará a coletar valores do novo arquivo de configuração.

Como configurar usando um arquivo JSON personalizado

Você pode usar uma instância do IConfigurationRoot para configurar a biblioteca de cliente.

Criar um arquivo JSON

Crie um arquivo JSON chamado GoogleAdsApi.json que tenha uma estrutura semelhante ao arquivo App.config.

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

Carregar a configuração

Em seguida, carregue o arquivo JSON em um IConfigurationRoot.

ConfigurationBuilder builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();

GoogleAdsConfig config = new GoogleAdsConfig(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);

Como definir usando o settings.json

O processo é semelhante a usar um JSON personalizado, mas as chaves precisam estar em uma seção chamada GoogleAdsApi:

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

Em seguida, use a instância IConfiguration na sua página:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig(section);
GoogleAdsClient client = new GoogleAdsClient(config);

Como configurar a biblioteca no momento da execução

Também é possível inicializar o GoogleAdsClient no momento da execução.

Exemplo 1: inicializar a configuração no ambiente de execução

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = "APPLICATION",
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

Exemplo 2: carregar a partir do App.config, mas substituir uma configuração

GoogleAdsClient client = new GoogleAdsClient(config);
client.Config.DeveloperToken = "******";

Como configurar a biblioteca usando variáveis de ambiente

Também é possível inicializar o GoogleAdsClient usando variáveis de ambiente. Essas configurações não são coletadas automaticamente. É preciso carregar as configurações das variáveis de ambiente conforme mostrado abaixo.

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);

Veja a lista completa de variáveis de ambiente compatíveis aqui.

Campos de configuração

Veja a seguir a lista de configurações compatíveis com a biblioteca .NET do Google Ads.

Configurações de conectividade

  • Timeout: use essa chave para definir o tempo limite do serviço em milissegundos. O valor padrão é definido com base na configuração method_config/timeout em googleads_grpc_service_config.json. Defina um valor menor se você precisar aplicar um limite mais curto no tempo máximo para uma chamada de API. É possível definir o tempo limite como duas horas ou mais, mas a API ainda pode expirar solicitações extremamente longas e retornar um erro DEADLINE_EXCEEDED.
  • ProxyServer: defina como o URL do servidor proxy HTTP se você estiver usando um proxy para se conectar à Internet.
  • ProxyUser: defina como o nome de usuário necessário para autenticação no servidor proxy. Deixe em branco se um nome de usuário não for obrigatório.
  • ProxyPassword: defina essa senha como ProxyUser se você definir um valor para ProxyUser.
  • ProxyDomain: defina-o no domínio de ProxyUser se o servidor proxy precisar de um domínio.
  • MaxReceiveMessageLengthInBytes: use essa configuração para aumentar o tamanho máximo da resposta da API que a biblioteca de cliente pode processar. O valor padrão é 64 MB.
  • MaxMetadataSizeInBytes: use essa configuração para aumentar o tamanho máximo da resposta de erro da API que a biblioteca de cliente pode processar. O valor padrão é 16 MB.

Configurações do OAuth2

Ao usar o OAuth2 para autorizar suas chamadas para os servidores da API Google Ads, defina as seguintes chaves de configuração:

  • AuthorizationMethod: precisa ser definido como OAuth2.
  • OAuth2Mode: precisa ser definido como APPLICATION ou SERVICE_ACCOUNT.
  • OAuth2ClientId: defina esse valor como seu ID do cliente OAuth2.
  • OAuth2ClientSecret: defina esse valor como a chave secreta do cliente do OAuth2.
  • OAuth2Scope: defina esse valor como diferentes escopos se você quiser autorizar os tokens do OAuth2 para várias APIs. Esta configuração é opcional.

Se você estiver usando OAuth2Mode == APPLICATION, defina as outras chaves de configuração a seguir.

  • OAuth2RefreshToken: defina esse valor como um token de atualização OAuth2 gerado previamente se quiser reutilizar tokens OAuth2. Esta configuração é opcional.
  • OAuth2RedirectUri: defina esse valor como o URL de redirecionamento OAuth2. Essa configuração é opcional.

Consulte os seguintes guias para ver mais detalhes:

Se você estiver usando OAuth2Mode == SERVICE_ACCOUNT, será necessário definir as chaves de configuração adicionais a seguir.

  • OAuth2PrnEmail: defina esse valor como o endereço de e-mail da conta que você está representando.
  • OAuth2SecretsJsonPath: defina esse valor como o caminho do arquivo de configuração JSON do OAuth2.

Consulte o guia Fluxo da conta de serviço do OAuth para mais detalhes.

As configurações a seguir são específicas da API Google Ads.

  • DeveloperToken: defina como seu token de desenvolvedor.
  • LoginCustomerId: este é o ID do cliente autorizado a ser usado na solicitação, sem hifens (-). Saiba mais.
  • LinkedCustomerId: esse cabeçalho só é necessário para métodos que atualizam os recursos de uma entidade quando permitido pelas contas vinculadas na IU do Google Ads (recurso AccountLink na API Google Ads). Defina esse valor como o ID de cliente do provedor de dados que atualiza os recursos dele. Ele deve ser definido sem hifens (-). Para saber mais sobre contas vinculadas, acesse a Central de Ajuda.