A biblioteca de cliente da API Google Ads oferece várias configurações que podem ser usadas para personalizar o comportamento da biblioteca.
Configurar a biblioteca no momento da execução
A maneira recomendada de configurar a biblioteca de cliente é inicializar um
objeto GoogleAdsConfig
no momento da execução:
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Opções de configuração alternativas
Também oferecemos algumas opções adicionais para configurar a biblioteca de cliente. Para
ativá-las, adicione uma referência do Nuget ao pacote
Google.Ads.GoogleAds.Extensions
no
seu projeto.
Se você usar uma dessas opções, as configurações não serão detectadas automaticamente. É necessário carregá-las explicitamente, conforme mostrado abaixo.
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 App.config
típica é
esta:
<?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>
Para carregar as configurações de um arquivo App.config
, chame o
método LoadFromDefaultAppConfigSection
em um objeto GoogleAdsConfig
:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Especificar um arquivo App.config separado
Se você não quiser que o App.config
fique 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 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 de App.config
para este arquivo:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
Etapa 3: corrigir as regras de build no csproj
Por fim, inclua o novo arquivo de configuração no projeto. Mude as propriedades deste arquivo para Always copy to output folder.
Agora crie e execute o projeto. O app vai começar a extrair valores do novo arquivo de configuração.
Configuração usando um arquivo JSON personalizado
É possível usar uma
instância de IConfigurationRoot
para configurar a biblioteca de cliente.
Criar um arquivo JSON
Crie um arquivo JSON chamado GoogleAdsApi.json
com 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();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
Configuração usando settings.json
O processo aqui é semelhante ao uso de um JSON personalizado, exceto que 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();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Configuração usando variáveis de ambiente
Também é possível inicializar o GoogleAdsClient
usando variáveis de ambiente:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Consulte a lista completa de variáveis de ambiente compatíveis.
Campos de configuração
Confira 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 para duas horas ou mais, mas a API ainda pode exibir um erroDEADLINE_EXCEEDED
para solicitações extremamente longas.ProxyServer
: defina esse valor 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 não for necessário.ProxyPassword
: defina como a senha deProxyUser
se você definir um valor paraProxyUser
.ProxyDomain
: defina como o domínio deProxyUser
se o servidor proxy exigir que um seja definido.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.
Ajuste as configurações
MaxReceiveMessageLengthInBytes
eMaxMetadataSizeInBytes
para corrigir determinados erros deResourceExhausted
. Essas configurações abordam erros do tipoStatus(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 o que a biblioteca pode processar (67108864 bytes
). AumenteMaxReceiveMessageLengthInBytes
para500000000
para evitar esse erro.O erro também indica que o código processou um objeto de resposta grande (como um grande
SearchGoogleAdsResponse
). Isso pode ter implicações de desempenho para o código devido ao Heap de objetos grandes do .NET. Se isso se tornar um problema de desempenho, talvez seja necessário reorganizar as chamadas de API ou redesenhar partes do app.
Configurações do OAuth2
Ao usar o OAuth2 para autorizar suas chamadas nos servidores da API Google Ads, defina as seguintes chaves de configuração:
- Defina
AuthorizationMethod
comoOAuth2
. OAuth2Mode
: defina comoAPPLICATION
ouSERVICE_ACCOUNT
.OAuth2ClientId
: defina esse valor como o ID do cliente OAuth2.OAuth2ClientSecret
: defina esse valor como a chave secreta do cliente OAuth2.OAuth2Scope
: defina esse valor para diferentes escopos se quiser autorizar tokens OAuth2 para várias APIs. Essa configuração é opcional.
Se você estiver usando OAuth2Mode == APPLICATION
, será necessário definir as seguintes
chaves de configuração.
OAuth2RefreshToken
: defina esse valor como um token de atualização OAuth2 pré-gerado se você quiser reutilizar tokens OAuth2. Essa configuração é opcional.OAuth2RedirectUri
: defina esse valor como o URL de redirecionamento do 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
seguintes chaves de configuração.
OAuth2PrnEmail
: defina esse valor como o endereço de e-mail da conta que você está personificando.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.
Configurações de transporte
UseGrpcCore
: defina essa configuração comotrue
para usar a bibliotecaGrpc.Core
como a camada de transporte. Consulte Usar a biblioteca legada do Grpc.
Configurações da API Google Ads
As configurações a seguir são específicas da API Google Ads.
DeveloperToken
: defina como o token do desenvolvedor.LoginCustomerId
: é o ID do cliente autorizado a ser usado na solicitação, sem hifen (-
).LinkedCustomerId
: esse cabeçalho é necessário apenas para métodos que atualizam os recursos de uma entidade quando autorizados por contas vinculadas na interface do Google Ads (recursoAccountLink
na API Google Ads). Defina esse valor como o ID do cliente do provedor de dados que atualiza os recursos do ID do cliente especificado. Ele precisa ser definido sem hifen (-
). Saiba mais sobre as contas vinculadas.