Konfiguration

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

Bibliothek während der Laufzeit konfigurieren

Die Clientbibliothek wird am besten konfiguriert, indem ein GoogleAdsConfig-Objekt zur Laufzeit initialisiert wird:

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 zur Konfiguration der Clientbibliothek an. Wenn Sie diese aktivieren möchten, fügen Sie Ihrem Projekt eine NuGet-Referenz zum Google.Ads.GoogleAds.Extensions-Paket hinzu.

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

Mit App.config konfigurieren

Alle Google Ads API-spezifischen Einstellungen werden im Knoten GoogleAdsApi der Datei App.config gespeichert. Eine typische App.config-Konfiguration 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 die Datei App.config nicht überladen möchten, können Sie die bibliotheksspezifische Konfiguration mithilfe der Property configSource in eine eigene Konfigurationsdatei verschieben.

Schritt 1: configSource in App.config angeben

Ändern Sie Ihr 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 jetzt 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 csproj korrigieren

Fügen Sie abschließend die neue Konfigurationsdatei in Ihr Projekt ein. Ändern Sie die Eigenschaften dieser Datei in Immer in den Ausgabeordner kopieren.

Erstellen und führen Sie nun Ihr Projekt aus. Ihre Anwendung liest dann Werte aus der neuen Konfigurationsdatei.

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

Das Verfahren ähnelt der Verwendung einer benutzerdefinierten JSON-Datei, mit der Ausnahme, dass sich die Schlüssel in einem Abschnitt mit dem Namen GoogleAdsApi befinden 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 mithilfe von Umgebungsvariablen

Sie können GoogleAdsClient auch mithilfe von 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 die Zeitüberschreitung des Dienstes in Millisekunden festlegen. Der Standardwert wird anhand der Einstellung method_config/timeout in googleads_grpc_service_config.json festgelegt. Legen Sie einen niedrigeren Wert fest, wenn Sie eine kürzere maximale Zeit für einen API-Aufruf erzwingen möchten. Sie können das Zeitlimit auf mindestens zwei Stunden festlegen. Bei extrem lang laufenden Anfragen kann es jedoch trotzdem zu einem Zeitlimit der API kommen, wodurch der Fehler DEADLINE_EXCEEDED zurückgegeben wird.
  • ProxyServer: Geben Sie hier die URL des HTTP-Proxyservers an, wenn Sie einen Proxy verwenden, um eine Verbindung zum Internet herzustellen.
  • ProxyUser: Geben Sie hier den Nutzernamen ein, mit dem Sie sich beim Proxyserver authentifizieren müssen. Lassen Sie dieses Feld leer, wenn kein Nutzername erforderlich ist.
  • ProxyPassword: Legen Sie hier das Passwort für ProxyUser fest, wenn Sie einen Wert für ProxyUser festgelegt haben.
  • ProxyDomain: Legen Sie hier die Domain für ProxyUser fest, falls dies für Ihren Proxyserver erforderlich ist.
  • MaxReceiveMessageLengthInBytes: Mit dieser Einstellung können Sie die maximale Größe der API-Antwort erhöhen, die von der Clientbibliothek verarbeitet werden kann. Der Standardwert ist 64 MB.
  • MaxMetadataSizeInBytes: Mit dieser Einstellung können Sie die maximale Größe der API-Fehlerantwort erhöhen, die von der Clientbibliothek verarbeitet werden kann. Der Standardwert ist 16 MB.

Passen Sie die MaxReceiveMessageLengthInBytes- und MaxMetadataSizeInBytes-Einstellungen an, um bestimmte ResourceExhausted-Fehler zu beheben. Mit diesen Einstellungen können Fehler der Form Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)" behoben werden.

In diesem Beispiel ist der Fehler darauf zurückzuführen, dass die Nachrichtengröße (423184132 bytes) größer ist als die von der Bibliothek verarbeitet werden kann (67108864 bytes). Erhöhen Sie MaxReceiveMessageLengthInBytes auf 500000000, um diesen Fehler zu vermeiden.

Der Fehler weist auch darauf hin, dass Ihr Code ein deutlich großes Response-Objekt verarbeitet hat (z. B. ein großes SearchGoogleAdsResponse). Dies kann aufgrund des Large Object Heap von .NET Auswirkungen auf die Leistung Ihres Codes haben. 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 bei den Google Ads API-Servern zu autorisieren, sollten Sie die folgenden Konfigurationsschlüssel festlegen:

  • AuthorizationMethod: Legen Sie OAuth2 fest.
  • OAuth2Mode: Legen Sie APPLICATION oder SERVICE_ACCOUNT fest.
  • OAuth2ClientId: Legen Sie für diesen Wert Ihre OAuth2-Client-ID fest.
  • OAuth2ClientSecret: Legen Sie für diesen Wert Ihren OAuth2-Clientschlüssel fest.
  • OAuth2Scope: Legen Sie für diesen Wert unterschiedliche 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: Legen Sie für diesen Wert die OAuth2-Weiterleitungs-URL fest. 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 für diesen Wert die E-Mail-Adresse des Kontos fest, dessen Identität Sie annehmen.
  • OAuth2SecretsJsonPath: Legen Sie für diesen Wert den Pfad zur OAuth2-JSON-Konfigurationsdatei fest.

Weitere Informationen finden Sie im Leitfaden OAuth-Ablauf für Dienstkonten.

Einstellungen für die Mobilität

  • 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: Geben Sie hier Ihr Entwicklertoken ein.
  • LoginCustomerId: Die Kundennummer des autorisierten Kunden, die in der Anfrage verwendet werden soll, ohne Bindestriche (-).
  • LinkedCustomerId: Dieser Header ist nur für Methoden erforderlich, die die Ressourcen einer Entität aktualisieren, wenn die Berechtigung über verknüpfte Konten in der Google Ads-Benutzeroberfläche erteilt wurde (AccountLink-Ressource in der Google Ads API). Legen Sie für diesen Wert die Kunden-ID des Datenanbieters fest, der die Ressourcen der angegebenen Kunden-ID aktualisiert. Es sollte ohne Bindestriche (-) festgelegt werden. Weitere Informationen zu verknüpften Konten