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 ambiente de execução
A maneira preferencial de configurar a biblioteca de cliente é inicializar um objeto GoogleAdsConfig no ambiente de 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 extras para configurar a biblioteca de cliente: para
ativá-las, adicione uma referência do Nuget ao Google.Ads.GoogleAds.Extensions
pacote no
seu projeto.
Se você usar uma dessas opções, as configurações não serão selecionadas automaticamente. É necessário carregá-las explicitamente, conforme mostrado abaixo.
Usar App.config
Todas as configurações específicas da Google Ads API são armazenadas no nó GoogleAdsApi do arquivo App.config. Uma configuração típica App.config é a seguinte:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"></section>
</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 desordenado, mova a
configuração específica da biblioteca para um arquivo de configuração próprio usando a
configSource
propriedade.
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"></section>
</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 build no csproj
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 vai começar a selecionar valores do novo arquivo de configuração.
Usar um arquivo JSON personalizado
É possível usar uma
IConfigurationRoot
instância 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();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
Usar 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, você pode usar 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);
Usar 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.
Usar um stream genérico
Também é possível carregar a configuração, ou partes dela, de um stream genérico, incluindo um criptografado:
GoogleAdsConfig config = new GoogleAdsConfig()
{
//Set some configuration properties in code.
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file.
CryptoStream strm = ....
StreamReader rdr = new StreamReader(strm);
// Configure the OAuth credentials from the encrypted file.
config.LoadOAuth2SecretsFromStream(rdr);
GoogleAdsClient client = new GoogleAdsClient(config);
Campos de configuração
A seguir, confira a lista de configurações compatíveis com a biblioteca .NET da API 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/timeoutem 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 atingir o tempo limite de solicitações de execução extremamente longa e retornar umDEADLINE_EXCEEDEDerro.ProxyServer: defina esse valor como o URL do servidor proxy HTTP se você estiver usando um proxy para se conectar à Internet.ProxyUser: defina esse valor como o nome de usuário necessário para autenticar no servidor proxy. Deixe esse campo vazio se um nome de usuário não for necessário.ProxyPassword: defina esse valor como a senha deProxyUserse você definir um valor paraProxyUser.ProxyDomain: defina esse valor como o domínio deProxyUserse 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
MaxReceiveMessageLengthInByteseMaxMetadataSizeInBytespara corrigir determinados errosResourceExhausted. Essas configurações resolvem erros do formulárioStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)".Neste exemplo, o erro ocorre porque o tamanho da mensagem (
423184132 bytes) é maior do que o que a biblioteca pode processar (67108864 bytes). AumenteMaxReceiveMessageLengthInBytespara500000000para evitar esse erro.O erro também indica que o código processou um objeto de resposta significativamente 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 analisar como reorganizar as chamadas de API ou redesenhar partes do app.
Configurações do OAuth 2.0
Ao usar o OAuth 2.0 para autorizar suas chamadas nos servidores da API Google Ads, defina as seguintes chaves de configuração:
AuthorizationMethod: defina comoOAuth2.OAuth2Mode: defina comoAPPLICATIONouSERVICE_ACCOUNT.OAuth2ClientId: defina esse valor como o ID do cliente OAuth 2.0.OAuth2ClientSecret: defina esse valor como a chave secreta do cliente OAuth 2.0.OAuth2Scope: defina esse valor como escopos diferentes se quiser autorizar tokens do OAuth 2.0 para várias APIs. Essa configuração é opcional.
Se você estiver usando OAuth2Mode == APPLICATION, defina as seguintes chaves de configuração extras.
OAuth2RefreshToken: defina esse valor como um token de atualização do OAuth 2.0 pré-gerado se quiser reutilizar tokens do OAuth 2.0. Essa configuração é opcional.OAuth2RedirectUri: defina esse valor como o URL de redirecionamento do OAuth 2.0. Essa configuração é opcional.
Consulte os guias a seguir para mais detalhes:
Se você estiver usando OAuth2Mode == SERVICE_ACCOUNT, defina as seguintes chaves de configuração extras.
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 OAuth 2.0.
Consulte o guia de fluxo da conta de serviço do OAuth para mais detalhes.
Configurações de transporte
UseGrpcCore: defina essa configuração comotruepara usar a bibliotecaGrpc.Corecomo a camada de transporte subjacente. Consulte Usar a biblioteca Grpc legada.
Configurações da API Google Ads
As configurações a seguir são específicas da API Google Ads.
DeveloperToken: defina esse valor como seu token de desenvolvedor.LoginCustomerId: esse é 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 permitidos por contas vinculadas na interface do Google Ads (recursoAccountLinkna 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 hifens (-). Saiba mais sobre contas vinculadas.