La libreria client dell'API Google Ads offre diverse impostazioni di configurazione che puoi utilizzare per personalizzare il comportamento della libreria.
Configura la libreria in fase di runtime
Il modo preferito per configurare la libreria client è inizializzare un oggetto GoogleAdsConfig
in fase di runtime:
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = "APPLICATION",
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Opzioni di configurazione alternative
Forniamo inoltre alcune opzioni aggiuntive per configurare la libreria client: per abilitarle, aggiungi un riferimento Nuget al pacchetto Google.Ads.GoogleAds.Extensions
nel progetto.
Se utilizzi una di queste opzioni, le impostazioni di configurazione non vengono selezionate automaticamente: devi caricarle esplicitamente come mostrato di seguito.
Configurazione con App.config
Tutte le impostazioni specifiche di Google Ads API
sono memorizzate nel nodo GoogleAdsApi
del file App.config
. Una tipica configurazione App.config
è la seguente:
<?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>
Per caricare le impostazioni di configurazione da un file App.config
, chiama il
metodo LoadFromDefaultAppConfigSection
su un oggetto GoogleAdsConfig
:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
Specifica un file App.config separato
Se vuoi evitare di confondere le App.config
, puoi spostare la configurazione specifica della libreria nel relativo file di configurazione utilizzando la proprietà configSource
.
Passaggio 1: specifica un valore configSource nel file App.config
Modifica il tuo App.config
in modo che abbia il seguente aspetto:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
Passaggio 2: specifica i contenuti del file di configurazione
Ora crea un altro file di configurazione con il nome specificato in configSource
e sposta il nodo di configurazione da App.config
in questo file:
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
Passaggio 3: correggi le regole di build in csproj
Infine, includi il nuovo file di configurazione nel progetto. Modifica le proprietà di questo file in Copia sempre nella cartella di output.
Ora crea ed esegui il tuo progetto. L'applicazione inizierà a raccogliere valori dal nuovo file di configurazione.
Configurazione mediante file JSON personalizzato
Puoi utilizzare un'istanza
IConfigurationRoot
per configurare la libreria client.
Creare un file JSON
Crea un file JSON denominato GoogleAdsApi.json
con una struttura simile a quella del
file App.config
.
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
}
Carica la configurazione
Quindi, carica il file JSON in 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);
Configurazione con settings.json
La procedura qui è simile all'utilizzo di un JSON personalizzato, ad eccezione del fatto che le chiavi devono
trovarsi in una sezione denominata GoogleAdsApi
:
{
"GoogleAdsApi":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
Dopodiché puoi utilizzare l'istanza IConfiguration
nella pagina:
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
Configurazione utilizzando le variabili di ambiente
Puoi anche inizializzare GoogleAdsClient
utilizzando le variabili di ambiente:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Vedi l'elenco completo delle variabili di ambiente supportate.
Campi di configurazione
Di seguito è riportato l'elenco delle impostazioni supportate dalla libreria .NET di Google Ads.
Impostazioni di connettività
Timeout
: utilizza questa chiave per impostare il timeout del servizio in millisecondi. Il valore predefinito è impostato in base all'impostazionemethod_config/timeout
in googleads_grpc_service_config.json. Imposta un valore più basso se devi applicare un limite più breve per il tempo massimo per una chiamata API. Puoi impostare il timeout su un valore pari o superiore a 2 ore, ma l'API potrebbe comunque causare il timeout delle richieste con esecuzione estremamente lunga e restituire un erroreDEADLINE_EXCEEDED
.ProxyServer
: imposta questa opzione sull'URL del server proxy HTTP se utilizzi un proxy per connetterti a internet.ProxyUser
: imposta questo campo sul nome utente per cui vuoi eseguire l'autenticazione tramite il server proxy. Lascia vuoto questo campo se non è richiesto un nome utente.ProxyPassword
: imposta la password diProxyUser
se imposti un valore perProxyUser
.ProxyDomain
: imposta questo valore sul dominio perProxyUser
se il server proxy richiede l'impostazione di uno.MaxReceiveMessageLengthInBytes
: utilizza questa impostazione per aumentare la dimensione massima della risposta dell'API che la libreria client può gestire. Il valore predefinito è 64 MB.MaxMetadataSizeInBytes
: utilizza questa impostazione per aumentare la dimensione massima della risposta di errore dell'API che la libreria client può gestire. Il valore predefinito è 16 MB.
Modifica le impostazioni
MaxReceiveMessageLengthInBytes
eMaxMetadataSizeInBytes
per correggere determinati errori diResourceExhausted
. Queste impostazioni risolvono gli errori nel moduloStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
.In questo esempio, l'errore è dovuto al fatto che le dimensioni del messaggio (
423184132 bytes
) sono superiori a quelle che la libreria può gestire (67108864 bytes
). AumentaMaxReceiveMessageLengthInBytes
a500000000
per evitare questo errore.Tieni presente che l'errore indica anche che il tuo codice ha gestito un oggetto Response di dimensioni molto grandi, come un
SearchGoogleAdsResponse
di grandi dimensioni. Ciò potrebbe avere implicazioni sulle prestazioni per il tuo codice a causa dell'heap di oggetti di grandi dimensioni di .NET. Se questo diventa un problema di prestazioni, potresti dover scoprire come riorganizzare le chiamate API o riprogettare parti della tua app.
Impostazioni OAuth2
Quando utilizzi OAuth2 per autorizzare le chiamate ai server dell'API Google Ads, devi impostare le seguenti chiavi di configurazione:
AuthorizationMethod
: imposta suOAuth2
.OAuth2Mode
: impostala suAPPLICATION
oSERVICE_ACCOUNT
.OAuth2ClientId
: imposta questo valore sul tuo ID client OAuth2.OAuth2ClientSecret
: imposta questo valore sul tuo client secret OAuth2.OAuth2Scope
: imposta questo valore su ambiti diversi se vuoi autorizzare token OAuth2 per più API. Questa impostazione è facoltativa.
Se utilizzi OAuth2Mode == APPLICATION
, devi impostare le seguenti
chiavi di configurazione aggiuntive.
OAuth2RefreshToken
: imposta questo valore su un token di aggiornamento OAuth2 pregenerato se vuoi riutilizzare i token OAuth2. Questa impostazione è facoltativa.OAuth2RedirectUri
: imposta questo valore sull'URL di reindirizzamento OAuth2. Questa impostazione è facoltativa.
Per ulteriori dettagli, consulta le seguenti guide:
Se utilizzi OAuth2Mode == SERVICE_ACCOUNT
, devi impostare le seguenti chiavi di configurazione aggiuntive.
OAuth2PrnEmail
: imposta questo valore sull'indirizzo email dell'account che stai impersonando.OAuth2SecretsJsonPath
: imposta questo valore sul percorso del file di configurazione JSON OAuth2.
Per ulteriori dettagli, consulta la guida al flusso dell'account di servizio OAuth.
Impostazioni di trasporto
UseGrpcCore
: configura questa impostazione sutrue
per utilizzare la libreriaGrpc.Core
come livello di trasporto sottostante. Per ulteriori dettagli, consulta la guida di assistenza gRPC.
Impostazioni API Google Ads
Le seguenti impostazioni sono specifiche dell'API Google Ads.
DeveloperToken
: imposta questa opzione sul tuo token sviluppatore.LoginCustomerId
: questo è l'ID cliente del cliente autorizzato da utilizzare nella richiesta, senza trattini (-
).LinkedCustomerId
: questa intestazione è obbligatoria solo per i metodi che aggiornano le risorse di un'entità se autorizzata tramite Account collegati nell'interfaccia utente di Google Ads (risorsaAccountLink
nell'API Google Ads). Imposta questo valore sull'ID cliente del fornitore di dati che aggiorna le risorse dell'ID cliente specificato. Deve essere impostato senza trattini (-
). Scopri di più sugli account collegati.