La libreria client dell'API Google Ads fornisce diverse impostazioni di configurazione che puoi utilizzare per personalizzare il comportamento della libreria.
Configurare 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()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_CLIENT_ID.apps.googleusercontent.com",
OAuth2ClientSecret = "INSERT_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_REFRESH_TOKEN"
};
GoogleAdsClient client = new GoogleAdsClient(config);
Opzioni di configurazione alternative
La libreria fornisce anche opzioni aggiuntive per caricare le impostazioni di configurazione. Per
attivarli, aggiungi un riferimento NuGet al
pacchetto Google.Ads.GoogleAds.Extensions nel tuo progetto.
Se utilizzi una di queste opzioni, le impostazioni di configurazione non vengono rilevate
automaticamente; devi caricarle in modo esplicito come mostrato nelle sezioni
seguenti. Assicurati di gestire le eccezioni di I/O dei file (ad esempio
FileNotFoundException o UnauthorizedAccessException) durante il caricamento delle impostazioni
da file o stream esterni.
Utilizzare App.config
Tutte le impostazioni specifiche dell'API Google Ads sono archiviate nel nodo GoogleAdsApi
del file App.config. Una configurazione tipica 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="" />
<!-- OAuth2 settings -->
<add key="OAuth2Mode" value="APPLICATION" />
<add key="OAuth2ClientId"
value="INSERT_CLIENT_ID.apps.googleusercontent.com" />
<add key="OAuth2ClientSecret" value="INSERT_CLIENT_SECRET" />
<add key="OAuth2RefreshToken" value="INSERT_REFRESH_TOKEN" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.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);
Specificare un file App.config separato
Se non vuoi che il file App.config sia troppo pieno, puoi spostare la
configurazione specifica della libreria in un file di configurazione separato utilizzando la
proprietà configSource:
Specifica un
configSourcenel tuoApp.config. Modifica il fileApp.configper fare riferimento a un file di configurazione esterno:<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" /> </configSections> <GoogleAdsApi configSource="GoogleAdsApi.config" /> </configuration>Specifica i contenuti del file di configurazione. Crea un altro file di configurazione con il nome specificato in
configSource(GoogleAdsApi.config) e sposta il nodo di configurazioneGoogleAdsApidaApp.configin questo file:<?xml version="1.0" encoding="utf-8" ?> <GoogleAdsApi> <!-- More settings. --> </GoogleAdsApi>Aggiorna le regole di compilazione nel file
.csproj. Includi il nuovo file di configurazione nel tuo progetto e imposta la proprietà Copia nella directory di output su Copia sempre. Ricompila ed esegui il progetto in modo che l'applicazione rilevi i valori del nuovo file di configurazione.
Utilizzare un file JSON personalizzato
Puoi utilizzare un'istanza IConfigurationRoot per configurare la
libreria client.
Crea 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": "",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
Carica la configurazione
Successivamente, 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);
Utilizzare settings.json
La procedura è simile a quella per l'utilizzo di un file JSON personalizzato, tranne per il fatto che le chiavi
devono trovarsi all'interno di una sezione denominata GoogleAdsApi:
{
"GoogleAdsApi": {
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "INSERT_CLIENT_ID.apps.googleusercontent.com",
"OAuth2ClientSecret": "INSERT_CLIENT_SECRET",
"OAuth2RefreshToken": "INSERT_REFRESH_TOKEN"
}
}
Successivamente, estrai la sezione GoogleAdsApi dall'istanza IConfiguration della tua applicazione (ad esempio, inserita da ASP.NET Core o creata con ConfigurationBuilder):
IConfigurationSection section = configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
In alternativa, puoi caricare un file settings.json direttamente per percorso con
config.LoadFromSettingsJson(filePath, "GoogleAdsApi") o dalla
variabile di ambiente GOOGLE_ADS_CONFIGURATION_FILE_PATH
(EnvironmentVariableNames.CONFIG_FILE_PATH) utilizzando
config.TryLoadFromEnvironmentFilePath.
Utilizzare le variabili di ambiente
Puoi anche inizializzare GoogleAdsClient utilizzando le variabili di ambiente:
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
Consulta l'elenco completo delle variabili di ambiente supportate.
Utilizzare uno stream generico
Puoi anche caricare la configurazione, o parti di essa, da un flusso generico, incluso uno criptato:
GoogleAdsConfig config = new GoogleAdsConfig()
{
// Set some configuration properties in code.
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
};
// Load your encrypted data from a file and dispose of the streams properly.
using (CryptoStream strm = GetEncryptedCredentialsStream())
using (StreamReader rdr = new StreamReader(strm))
{
// Configure the OAuth credentials from the encrypted stream.
config.LoadOAuth2SecretsFromStream(rdr);
}
GoogleAdsClient client = new GoogleAdsClient(config);
Campi di configurazione
Le sezioni seguenti elencano le impostazioni supportate dalla libreria Google Ads .NET.
Impostazioni di connettività
Timeout: utilizza questa chiave per impostare il timeout del servizio in millisecondi. Il valore predefinito è impostato in base all'impostazionemethod_config/timeoutingoogleads_grpc_service_config.json. Imposta un valore inferiore se devi applicare un limite più breve al tempo massimo per una chiamata API. Puoi impostare il timeout su 2 ore o più, ma l'API potrebbe comunque scadere richieste di esecuzione estremamente lunga e restituire un erroreDEADLINE_EXCEEDED.ProxyServer: impostalo sull'URL del server proxy HTTP se utilizzi un proxy per connetterti a internet.ProxyUser: impostalo sul nome utente necessario per l'autenticazione con il server proxy. Lascia questo campo vuoto se non è richiesto un nome utente.ProxyPassword: imposta questo valore sulla password diProxyUserse hai impostato un valore perProxyUser.ProxyDomain: impostalo sul dominio perProxyUserse il server proxy richiede di impostarne uno.MaxReceiveMessageLengthInBytes: utilizza questa impostazione per aumentare la dimensione massima della risposta 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 e MaxMetadataSizeInBytes
per correggere determinati errori ResourceExhausted. Queste impostazioni risolvono
gli errori del modulo:
Status(StatusCode="ResourceExhausted",Detail="Received
message larger than max (423184132 versus 67108864)"
In questo esempio, l'errore è dovuto alle dimensioni del messaggio (423184132 bytes)
superiori a quelle gestibili dalla libreria (67108864 bytes). Aumenta
MaxReceiveMessageLengthInBytes a 500000000 per evitare questo errore. Tieni presente
che l'errore indica anche che il codice ha gestito un oggetto
di risposta molto grande (ad esempio un SearchGoogleAdsResponse di grandi dimensioni).
Ciò potrebbe avere implicazioni sulle prestazioni del codice a causa dell'heap di oggetti di grandi dimensioni di .NET. Se questo diventa un problema di prestazioni, potresti
dover esplorare come riorganizzare le chiamate API o riprogettare parti della tua app.
Impostazioni OAuth2
Quando utilizzi OAuth 2.0 per autorizzare le chiamate ai server dell'API Google Ads, devi impostare le seguenti chiavi di configurazione:
AuthorizationMethod: impostato suOAuth2.OAuth2Mode: impostato suAPPLICATIONoSERVICE_ACCOUNT.OAuth2ClientId: imposta questo valore sull'ID client OAuth 2.0.OAuth2ClientSecret: imposta questo valore sul client secret OAuth 2.0.OAuth2Scope: imposta questo valore su ambiti diversi se vuoi autorizzare token OAuth 2.0 per più API. Questa impostazione è facoltativa.UseApplicationDefaultCredentials: imposta questo valore sutrueper l'autenticazione utilizzando le credenziali predefinite dell'applicazione (supportate inGoogle.Ads.GoogleAdsv24.1.0e versioni successive;config.LoadFromEnvironmentVariables()legge la variabile di ambienteUSE_APPLICATION_DEFAULT_CREDENTIALSsenza prefisso).Credentials: (solo runtime, supportato inv27.0.0e versioni successive) inserisci un'istanzaICredentialoGoogleCredentialpre-costruita direttamente suGoogleAdsConfigin fase di runtime.
Se utilizzi OAuth2Mode == APPLICATION, devi impostare le seguenti chiavi di configurazione aggiuntive:
OAuth2RefreshToken: imposta questo valore su un token di aggiornamento OAuth 2.0 pregenerato se vuoi riutilizzare i token OAuth 2.0. Questa impostazione è facoltativa.OAuth2RedirectUri: imposta questo valore sull'URL di reindirizzamento OAuth 2.0. Questa impostazione è facoltativa.
Per maggiori dettagli, consulta le seguenti guide:
Se utilizzi OAuth2Mode == SERVICE_ACCOUNT, devi impostare le seguenti chiavi di configurazione aggiuntive:
OAuth2SecretsJsonPath: imposta questo valore sul percorso del file della chiave JSON OAuth 2.0.OAuth2PrnEmail: imposta questo valore sull'indirizzo email dell'account che stai rappresentando quando utilizzi la delega a livello di dominio di Google Workspace. Questa impostazione è facoltativa.
Per maggiori dettagli, consulta la guida al flusso del service account OAuth.
Impostazioni di trasporto
UseGrpcCore: imposta questa impostazione sutrueper utilizzare la libreriaGrpc.Corecome livello di trasporto sottostante. Vedi Utilizzare la libreriaGrpc.Core.
Impostazioni dell'API Google Ads
Le seguenti impostazioni sono specifiche dell'API Google Ads:
DeveloperToken: facoltativo inv27.3.0e versioni successive (GOOGLE_ADS_DEVELOPER_TOKEN). I token dello sviluppatore sono stati ritirati il 9 settembre 2026. Sul server API, i livelli di accesso sono determinati dal tuo progetto Google Cloud indipendentemente dalla versione della libreria client e i server API ignorano l'intestazionedeveloper-token(finché una futura versione principale dell'API Google Ads non la rifiuterà). Per omettere o rimuovereDeveloperTokendalla configurazione, utilizzaGoogle.Ads.GoogleAdsv27.3.0o versioni successive, che hanno rimosso la convalidaDeveloperTokenlato client locale (le versioni precedenti richiedono unDeveloperTokennon vuoto per la convalida locale).LoginCustomerId: 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à quando l'autorizzazione viene concessa tramite gli account collegati nell'interfaccia utente di Google Ads (risorsaAccountLinknell'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.