Configurazione

La libreria client dell'API Google Ads fornisce diverse impostazioni di configurazione che puoi utilizzare per personalizzare il comportamento della raccolta.

configura la libreria in fase di runtime

Il modo migliore per configurare la libreria client è quello di inizializzare GoogleAdsConfig oggetto in fase di runtime:

GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "******.apps.googleusercontent.com",
    OAuth2ClientSecret = "******",
    OAuth2RefreshToken = "******"
};

GoogleAdsClient client = new GoogleAdsClient(config);

Opzioni di configurazione alternative

Forniamo anche alcune opzioni aggiuntive per configurare la libreria client: attivarle, aggiungi un riferimento Nuget alla classe Google.Ads.GoogleAds.Extensions pacchetto in del progetto.

Se utilizzi una di queste opzioni, le impostazioni di configurazione non vengono selezionate automaticamente: dovresti caricarli esplicitamente come mostrato di seguito.

Configura con App.config

Tutte le impostazioni specifiche di Google Ads API vengono memorizzate in GoogleAdsApi nodo del file App.config. Una configurazione tipica App.config è come che segue:

<?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 Metodo LoadFromDefaultAppConfigSection su un oggetto GoogleAdsConfig:

GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);

Specifica un file App.config separato

Se non vuoi cadere App.config ingombrante, puoi spostare specifica della libreria in un proprio file di configurazione utilizzando configSource proprietà.

Passaggio 1: specifica un valore configSource in 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 il contenuto 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 un nuovo file di configurazione nel progetto. Modificare le proprietà di questo file in Copia sempre nella cartella di output.

Ora crea ed esegui il progetto. L'applicazione inizierà a raccogliere valori dal nuovo file di configurazione.

Configurazione mediante file JSON personalizzato

Puoi utilizzare un IConfigurationRoot per configurare la libreria client.

Creare un file JSON

Crea un file JSON denominato GoogleAdsApi.json con una struttura simile a quella del App.config file.

{
    "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 file 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 mediante settings.json

La procedura è simile all'utilizzo di un file JSON personalizzato, ad eccezione del fatto che le chiavi devono essere in una sezione denominata GoogleAdsApi:

{
    "GoogleAdsApi":
    {
        "DeveloperToken": "******",
        "OAuth2Mode": "APPLICATION",
        "OAuth2ClientId": "******.apps.googleusercontent.com",
        "OAuth2ClientSecret": "******",
        "OAuth2RefreshToken": "******",
        ...
    }
    // More settings...
}

A questo punto, puoi utilizzare l'istanza IConfiguration nella tua 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);

Consulta l'elenco completo degli ambienti supportati variabili.

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. La il valore predefinito è configurato in base all'impostazione method_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 2 ore o più, ma l'API potrebbe comunque scadono le richieste a lunga esecuzione e restituisce un DEADLINE_EXCEEDED.
  • ProxyServer: impostalo sull'URL del server proxy HTTP se utilizzi una un proxy per connettersi a internet.
  • ProxyUser: imposta questo campo sul nome utente per il quale richiedi l'autenticazione. il server proxy. Lascia vuoto questo campo se non è richiesto un nome utente.
  • ProxyPassword: imposta la password di ProxyUser se imposti un valore per ProxyUser.
  • ProxyDomain: imposta questa opzione sul dominio per ProxyUser, se il server proxy richiede che ne sia impostata una.
  • MaxReceiveMessageLengthInBytes: utilizza questa impostazione per aumentare il valore massimo dimensione della risposta API che la libreria client è in grado di gestire. Il valore predefinito è 64 MB.
  • MaxMetadataSizeInBytes: utilizza questa impostazione per aumentare il valore massimo Dimensione della risposta di errore dell'API che la libreria client è in grado di gestire. La il valore predefinito è 16 MB.

Modifica MaxReceiveMessageLengthInBytes e MaxMetadataSizeInBytes impostazioni per correggere determinati errori di tipo ResourceExhausted. Queste impostazioni riguardano errori nel 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 che la libreria è in grado di gestire (67108864 bytes). Aumenta MaxReceiveMessageLengthInBytes a 500000000 per evitare questo errore.

Tieni presente che l'errore indica anche che il codice ha gestito in modo grande oggetto Response (come un oggetto SearchGoogleAdsResponse). Questo potrebbero influire sulle prestazioni del codice a causa dell'oggetto di grandi dimensioni di .NET Heap: Se questo diventa un problema di prestazioni, potrebbe essere necessario capire come a riorganizzare le chiamate API o riprogettare parti della tua app.

Impostazioni OAuth2

Quando utilizzi OAuth2 per autorizzare le chiamate verso i server dell'API Google Ads, devi impostare le seguenti chiavi di configurazione:

  • AuthorizationMethod: impostata su OAuth2.
  • OAuth2Mode: imposta su APPLICATION o SERVICE_ACCOUNT.
  • OAuth2ClientId: imposta questo valore sul tuo ID client OAuth2.
  • OAuth2ClientSecret: imposta questo valore sul 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 quanto segue 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 è facoltativo.

Per ulteriori dettagli, consulta le seguenti guide:

Se utilizzi OAuth2Mode == SERVICE_ACCOUNT, devi impostare delle chiavi di configurazione aggiuntive.

  • OAuth2PrnEmail: imposta questo valore sull'indirizzo email dell'account che stai furto d'identità.
  • OAuth2SecretsJsonPath: imposta questo valore sulla configurazione JSON OAuth2 del file YAML.

Consulta il flusso dell'account di servizio OAuth guida per ulteriori dettagli.

Impostazioni dei trasporti

  • UseGrpcCore: configura questa impostazione su true per utilizzare la raccolta Grpc.Core come livello di trasporto sottostante. Consulta l'assistenza per gRPC Google Cloud per ulteriori dettagli.

Impostazioni dell'API Google Ads

Le seguenti impostazioni sono specifiche per l'API Google Ads.

  • DeveloperToken: imposta questa opzione sul tuo token sviluppatore.
  • LoginCustomerId: si tratta dell'ID cliente del cliente autorizzato da utilizzare nella richiesta, senza trattini (-).
  • LinkedCustomerId: questa intestazione è obbligatoria solo per i metodi che aggiornano risorse di un'entità se autorizzate tramite gli account collegati nel UI di Google Ads (risorsa AccountLink nell'API Google Ads). Imposta questo valore su l'ID cliente del fornitore di dati che aggiorna le risorse del l'ID cliente. Deve essere impostato senza trattini (-). Scopri di più su Linked Account.