A biblioteca de cliente da API Google Ads oferece várias definições de configuração que podem ser usadas para personalizar o comportamento da biblioteca.
Como configurar usando App.config
Todas as configurações específicas de Google Ads API
são armazenadas no nó GoogleAdsApi
do arquivo App.config
. Veja a seguir uma configuração típica de
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=""/>
<!-- 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>
Especificar um arquivo App.config separado
Se você não quiser sobrecarregar sua App.config
, 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 seu App.config
para esse arquivo:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
Etapa 3: corrija as regras de build no CSS
Por fim, inclua o novo arquivo de configuração no seu projeto. Altere as propriedades desse arquivo para Sempre copiar para a pasta de saída.
Agora, crie e execute seu projeto. O aplicativo começará a coletar valores do novo arquivo de configuração.
Configuração usando um arquivo JSON personalizado
É possível usar uma instância
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);
Configuração usando settings.json
O processo aqui é parecido com o uso de um JSON personalizado, mas as chaves precisam
ser em uma seção chamada GoogleAdsApi
:
{
"GoogleAdsApi":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
Em seguida, você pode usar a instância IConfiguration
em sua página:
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig(section);
GoogleAdsClient client = new GoogleAdsClient(config);
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 de App.config, mas substituir uma configuração
GoogleAdsClient client = new GoogleAdsClient(config);
client.Config.DeveloperToken = "******";
Configuração usando variáveis de ambiente
Também é possível inicializar o GoogleAdsClient
usando variáveis de ambiente. Essas
configurações não são selecionadas automaticamente, mas também é necessário 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.
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çãomethod_config/timeout
em googleads_grpc_service_config.json. Defina um valor menor se precisar aplicar um limite mais curto no tempo máximo de uma chamada de API. É possível definir o tempo limite como 2 horas ou mais, mas a API ainda pode expirar solicitações extremamente longas e retornar um erroDEADLINE_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 que você precisa autenticar no servidor proxy. Deixe este campo em branco se o nome de usuário não for obrigatório.ProxyPassword
: defina isso com a senha deProxyUser
se definir um valor paraProxyUser
.ProxyDomain
: defina como o domínio deProxyUser
se o servidor proxy exigir um.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 gerenciar. O valor padrão é 16 MB.
Ajuste as configurações de
MaxReceiveMessageLengthInBytes
eMaxMetadataSizeInBytes
para corrigir determinados errosResourceExhausted
. Essas configurações resolvem erros no formatoStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
.Nesse exemplo, o erro ocorre porque o tamanho da mensagem (
423184132 bytes
) é maior do que a biblioteca consegue processar (67108864 bytes
). AumenteMaxReceiveMessageLengthInBytes
para500000000
para evitar esse erro.O erro também indica que seu código processou um objeto de resposta significativamente grande (como um
SearchGoogleAdsResponse
grande). Isso pode ter implicações no desempenho devido à pilha de objetos grande do .NET. Se isso se tornar uma preocupação de desempenho, talvez seja necessário explorar como reorganizar suas chamadas de API ou reformular partes do app.
Configurações do OAuth2
Ao usar o OAuth2 para autorizar as chamadas para os servidores da API Google Ads, defina as seguintes chaves de configuração:
- Defina
AuthorizationMethod
comoOAuth2
. OAuth2Mode
: definido comoAPPLICATION
ouSERVICE_ACCOUNT
.OAuth2ClientId
: defina esse valor como seu ID do cliente OAuth2.OAuth2ClientSecret
: defina esse valor como a chave secreta do cliente OAuth2.OAuth2Scope
: defina esse valor para escopos diferentes se quiser autorizar tokens OAuth2 para várias APIs. Esta configuração é opcional.
Se você estiver usando OAuth2Mode == APPLICATION
, será necessário definir as chaves de configuração adicionais a seguir.
OAuth2RefreshToken
: defina esse valor como um token de atualização OAuth2 gerado previamente, se você quiser reutilizar tokens OAuth2. Esta configuração é opcional.OAuth2RedirectUri
: defina esse valor como o URL de redirecionamento OAuth2. Essa configuração é opcional.
Consulte os guias a seguir para 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
: define esse valor como o caminho do arquivo de configuração JSON do OAuth2.
Consulte o guia sobre o fluxo de conta de serviço do OAuth para mais detalhes.
Configurações de transporte
UseGrpcCore
: defina essa configuração comotrue
para usar a bibliotecaGrpc.Core
como a camada de transporte subjacente. Consulte o guia de suporte do gRPC para mais detalhes.
Configurações da API Google Ads
As configurações a seguir são específicas para a API Google Ads.
DeveloperToken
: defina como o token de desenvolvedor.LoginCustomerId
: é o ID do cliente autorizado a ser usado na solicitação, sem hifens (-
).LinkedCustomerId
: esse cabeçalho só é necessário para métodos que atualizam os recursos de uma entidade quando autorizados por meio de contas vinculadas na IU do Google Ads (recursoAccountLink
na API Google Ads). Defina esse valor como o ID de cliente do provedor de dados que atualiza os recursos do ID de cliente especificado. Ele precisa ser definido sem hifens (-
). Saiba mais sobre contas vinculadas.