Konfiguration

Die Google Ads API-Clientbibliothek bietet mehrere Konfigurationseinstellungen, mit denen Sie das Verhalten der Bibliothek anpassen können.

Bibliothek zur Laufzeit konfigurieren

Die bevorzugte Methode zum Konfigurieren der Clientbibliothek besteht darin, zur Laufzeit ein GoogleAdsConfig-Objekt zu initialisieren:

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

GoogleAdsClient client = new GoogleAdsClient(config);

Alternative Konfigurationsoptionen

Wir bieten auch einige zusätzliche Optionen zum Konfigurieren der Clientbibliothek. Wenn Sie diese aktivieren möchten, fügen Sie in Ihrem Projekt einen NuGet-Verweis auf das Google.Ads.GoogleAds.Extensions-Paket hinzu.

Wenn Sie eine dieser Optionen verwenden, werden die Konfigurationseinstellungen nicht automatisch übernommen. Sie müssen sie explizit laden, wie unten gezeigt.

Konfiguration mit App.config

Alle Einstellungen, die für Google Ads API spezifisch sind, werden im Knoten GoogleAdsApi der Datei App.config gespeichert. Eine typische Konfiguration App.config sieht so aus:

<?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>

Wenn Sie Konfigurationseinstellungen aus einer App.config-Datei laden möchten, rufen Sie die Methode LoadFromDefaultAppConfigSection für ein GoogleAdsConfig-Objekt auf:

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

Separate App.config-Datei angeben

Wenn Sie nicht möchten, dass Ihr App.config unübersichtlich wird, können Sie die bibliotheksspezifische Konfiguration mit der Eigenschaft configSource in eine eigene Konfigurationsdatei verschieben.

Schritt 1: configSource in der Datei „App.config“ angeben

Ändern Sie App.config so:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
  </configSections>
  <GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>

Schritt 2: Inhalt der Konfigurationsdatei angeben

Erstellen Sie nun eine weitere Konfigurationsdatei mit dem Namen, den Sie in configSource angegeben haben, und verschieben Sie den Konfigurationsknoten aus App.config in diese Datei:

<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
  ... More settings.
</GoogleAdsApi>

Schritt 3: Build-Regeln in der CSPROJ-Datei korrigieren

Fügen Sie die neue Konfigurationsdatei schließlich in Ihr Projekt ein. Ändern Sie die Eigenschaften dieser Datei in Immer in den Ausgabefolder kopieren.

Erstellen Sie nun Ihr Projekt und führen Sie es aus. Ihre Anwendung beginnt, Werte aus der neuen Konfigurationsdatei zu übernehmen.

Konfiguration mit einer benutzerdefinierten JSON-Datei

Sie können eine IConfigurationRoot-Instanz verwenden, um die Clientbibliothek zu konfigurieren.

JSON-Datei erstellen

Erstellen Sie eine JSON-Datei mit dem Namen GoogleAdsApi.json, die eine ähnliche Struktur wie die Datei App.config hat.

{
    "Timeout": "2000",

    "ProxyServer": "http://localhost:8888",
    "ProxyUser": "",
    "ProxyPassword": "",
    "ProxyDomain": "",

    "DeveloperToken": "******",

    "OAuth2Mode": "APPLICATION",
    "OAuth2ClientId": "******.apps.googleusercontent.com",
    "OAuth2ClientSecret": "******",
    "OAuth2RefreshToken": "******",
}

Konfiguration laden

Laden Sie als Nächstes die JSON-Datei in eine 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);

Konfiguration mit settings.json

Der Vorgang ist hier ähnlich wie bei der Verwendung eines benutzerdefinierten JSON, mit der Ausnahme, dass die Schlüssel in einem Abschnitt mit dem Namen GoogleAdsApi stehen sollten:

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

Als Nächstes können Sie die IConfiguration-Instanz auf Ihrer Seite verwenden:

IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);

Konfiguration über Umgebungsvariablen

Sie können GoogleAdsClient auch mit Umgebungsvariablen initialisieren:

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

Vollständige Liste der unterstützten Umgebungsvariablen

Felder für die Konfiguration

Im Folgenden finden Sie eine Liste der Einstellungen, die von der Google Ads .NET-Bibliothek unterstützt werden.

Konnektivitätseinstellungen

  • Timeout: Mit diesem Schlüssel können Sie das Dienst-Zeitlimit in Millisekunden festlegen. Der Standardwert wird basierend auf der Einstellung method_config/timeout in googleads_grpc_service_config.json festgelegt. Legen Sie einen niedrigeren Wert fest, wenn Sie ein kürzeres Limit für die maximale Zeit für einen API-Aufruf erzwingen möchten. Sie können das Zeitlimit auf zwei Stunden oder mehr festlegen. Bei Anfragen, die sehr lange dauern, kann es aber trotzdem zu einem Zeitlimitüberschreitungsfehler kommen und die API gibt dann den Fehler DEADLINE_EXCEEDED zurück.
  • ProxyServer: Legen Sie dies auf die HTTP-Proxyserver-URL fest, wenn Sie einen Proxy verwenden, um eine Verbindung zum Internet herzustellen.
  • ProxyUser: Legen Sie dies auf den Nutzernamen fest, den Sie für die Authentifizierung beim Proxyserver benötigen. Lassen Sie dieses Feld leer, wenn kein Nutzername erforderlich ist.
  • ProxyPassword: Legen Sie dies auf das Passwort von ProxyUser fest, wenn Sie einen Wert für ProxyUser festgelegt haben.
  • ProxyDomain: Legen Sie dies auf die Domain für ProxyUser fest, wenn Ihr Proxyserver dies erfordert.
  • MaxReceiveMessageLengthInBytes: Mit dieser Einstellung können Sie die maximale Größe der API-Antwort erhöhen, die die Clientbibliothek verarbeiten kann. Der Standardwert ist 64 MB.
  • MaxMetadataSizeInBytes: Mit dieser Einstellung können Sie die maximale Größe der API-Fehlerantwort erhöhen, die die Clientbibliothek verarbeiten kann. Der Standardwert ist 16 MB.

Passen Sie die Einstellungen für MaxReceiveMessageLengthInBytes und MaxMetadataSizeInBytes an, um bestimmte ResourceExhausted-Fehler zu beheben. Diese Einstellungen beziehen sich auf Fehler der Form Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)".

In diesem Beispiel wird der Fehler durch die Nachrichtengröße (423184132 bytes) verursacht, die größer ist als die von der Bibliothek unterstützte Größe (67108864 bytes). Erhöhen Sie MaxReceiveMessageLengthInBytes auf 500000000, um diesen Fehler zu vermeiden.

Der Fehler weist auch darauf hin, dass in Ihrem Code ein sehr großes Response-Objekt (z. B. ein großes SearchGoogleAdsResponse) verarbeitet wurde. Dies kann sich aufgrund des Large Object Heap von .NET auf die Leistung Ihres Codes auswirken. Wenn dies zu Leistungsproblemen führt, müssen Sie möglicherweise Ihre API-Aufrufe neu organisieren oder Teile Ihrer App neu gestalten.

OAuth2-Einstellungen

Wenn Sie OAuth2 verwenden, um Ihre Aufrufe an die Google Ads API-Server zu autorisieren, sollten Sie die folgenden Konfigurationsschlüssel festlegen:

  • AuthorizationMethod: Legen Sie OAuth2 fest.
  • OAuth2Mode: Auf APPLICATION oder SERVICE_ACCOUNT setzen.
  • OAuth2ClientId: Setzen Sie diesen Wert auf Ihre OAuth2-Client-ID.
  • OAuth2ClientSecret: Setzen Sie diesen Wert auf Ihren OAuth2-Clientschlüssel.
  • OAuth2Scope: Legen Sie diesen Wert auf verschiedene Bereiche fest, wenn Sie OAuth2-Tokens für mehrere APIs autorisieren möchten. Diese Einstellung ist optional.

Wenn Sie OAuth2Mode == APPLICATION verwenden, müssen Sie die folgenden zusätzlichen Konfigurationsschlüssel festlegen.

  • OAuth2RefreshToken: Legen Sie diesen Wert auf ein vorab generiertes OAuth2-Aktualisierungstoken fest, wenn Sie OAuth2-Tokens wiederverwenden möchten. Diese Einstellung ist optional.
  • OAuth2RedirectUri: Setzen Sie diesen Wert auf die OAuth2-Weiterleitungs-URL. Diese Einstellung ist optional.

Weitere Informationen finden Sie in den folgenden Leitfäden:

Wenn Sie OAuth2Mode == SERVICE_ACCOUNT verwenden, müssen Sie die folgenden zusätzlichen Konfigurationsschlüssel festlegen.

  • OAuth2PrnEmail: Legen Sie diesen Wert auf die E-Mail-Adresse des Kontos fest, dessen Identität Sie annehmen.
  • OAuth2SecretsJsonPath: Legen Sie diesen Wert auf den Pfad der OAuth2-JSON-Konfigurationsdatei fest.

Weitere Informationen finden Sie im Leitfaden OAuth-Dienstkonto-Ablauf.

Einstellungen für Transport

  • UseGrpcCore: Legen Sie diese Einstellung auf true fest, um die Grpc.Core-Bibliothek als zugrunde liegende Transportschicht zu verwenden. Weitere Informationen finden Sie unter Alte Grpc-Bibliothek verwenden.

Google Ads API-Einstellungen

Die folgenden Einstellungen gelten speziell für die Google Ads API.

  • DeveloperToken: Legen Sie hier Ihr Entwicklertoken fest.
  • LoginCustomerId: Dies ist die Kunden-ID des autorisierten Kunden, die in der Anfrage verwendet werden soll, ohne Bindestriche (-).
  • LinkedCustomerId: Dieser Header ist nur für Methoden erforderlich, mit denen die Ressourcen einer Einheit aktualisiert werden, wenn die Berechtigung über verknüpfte Konten in der Google Ads-Benutzeroberfläche (AccountLink-Ressource in der Google Ads API) erteilt wird. Legen Sie für diesen Wert die Kunden-ID des Datenanbieters fest, der die Ressourcen der angegebenen Kunden-ID aktualisiert. Sie sollte ohne Bindestriche festgelegt werden (-). Weitere Informationen zu verknüpften Konten