Konfiguration

Die Google Ads API-Clientbibliothek bietet verschiedene Konfigurationseinstellungen, mit denen Sie das Bibliotheksverhalten anpassen können.

Bibliothek zur Laufzeit konfigurieren

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

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

GoogleAdsClient client = new GoogleAdsClient(config);

Alternative Konfigurationsoptionen

Außerdem bieten wir einige zusätzliche Optionen zum Konfigurieren der Clientbibliothek: Um sie zu aktivieren, fügen Sie eine Nuget-Referenz zum Google.Ads.GoogleAds.Extensions-Paket in Ihrem Projekt hinzu.

Wenn Sie eine dieser Optionen verwenden, werden die Konfigurationseinstellungen nicht automatisch übernommen. Sie sollten 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 App.config nicht überladen möchten, können Sie die bibliotheksspezifische Konfiguration mithilfe des Attributs configSource in eine eigene Konfigurationsdatei verschieben.

Schritt 1: configSource in 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 von Ihrer App.config in diese Datei:

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

Schritt 3: Build-Regeln im CSPROJ korrigieren

Fügen Sie zum Schluss die neue Konfigurationsdatei in Ihr Projekt ein. Ändern Sie die Eigenschaften dieser Datei in Always copy to Ausgabefolder (In Ausgabeordner immer kopieren).

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

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 ein IConfigurationRoot-Objekt.

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 hier ähnelt der Verwendung eines benutzerdefinierten JSON-Formats, 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 Instanz IConfiguration 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);

Eine vollständige Liste der unterstützten Umgebungsvariablen finden Sie hier.

Felder für die Konfiguration

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

Konnektivitätseinstellungen

  • Timeout: Mit diesem Schlüssel können Sie das Zeitlimit für den Dienst in Millisekunden festlegen. Der Standardwert wird anhand der method_config/timeout-Einstellung 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üssen. Sie können das Zeitlimit auf 2 Stunden oder mehr festlegen. Bei Anfragen mit extrem langer Ausführungszeit kann es aber trotzdem vorkommen, dass die API den Fehler DEADLINE_EXCEEDED zurückgibt.
  • ProxyServer: Legen Sie diesen Wert auf die HTTP-Proxyserver-URL fest, wenn Sie einen Proxy für die Internetverbindung verwenden.
  • ProxyUser: Legen Sie hier 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 dafür das Passwort ProxyUser fest, wenn Sie einen Wert für ProxyUser festlegen.
  • ProxyDomain: Legen Sie hier die Domain für ProxyUser fest, wenn für Ihren Proxyserver eine solche festgelegt werden muss.
  • MaxReceiveMessageLengthInBytes: Mit dieser Einstellung erhöhen Sie die maximale Größe der API-Antwort, die die Clientbibliothek verarbeiten kann. Der Standardwert ist 64 MB.
  • MaxMetadataSizeInBytes: Verwenden Sie diese Einstellung, um die maximale Größe der API-Fehlerantwort zu erhöhen, die die Clientbibliothek verarbeiten kann. Der Standardwert ist 16 MB.

Passe die Einstellungen MaxReceiveMessageLengthInBytes und MaxMetadataSizeInBytes an, um bestimmte ResourceExhausted-Fehler zu beheben. Diese Einstellungen beheben Fehler im Format Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)".

In diesem Beispiel ist der Fehler darauf zurückzuführen, dass die Nachricht (423184132 bytes) größer ist als das, was die Bibliothek verarbeiten kann (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 Antwortobjekt verarbeitet wurde (z. B. ein großes SearchGoogleAdsResponse). Dies kann sich aufgrund des Large Object Heap von .NET auf die Leistung Ihres Codes auswirken. Wenn dies zu Leistungseinbußen führt, müssen Sie sich möglicherweise damit befassen, wie Sie Ihre API-Aufrufe neu organisieren oder Teile Ihrer Anwendung 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: Legen Sie APPLICATION oder SERVICE_ACCOUNT fest.
  • OAuth2ClientId: Lege hier deine OAuth2-Client-ID fest.
  • OAuth2ClientSecret: Legen Sie hier Ihren OAuth2-Clientschlüssel fest.
  • OAuth2Scope: Legen Sie für diesen Wert 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 für diesen Wert ein vorab generiertes OAuth2-Aktualisierungstoken fest, wenn Sie OAuth2-Tokens wiederverwenden möchten. Diese Einstellung ist optional.
  • OAuth2RedirectUri: Legen Sie diesen Wert auf 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, das Sie imitieren.
  • OAuth2SecretsJsonPath: Legen Sie diesen Wert auf den Pfad der OAuth2-JSON-Konfigurationsdatei fest.

Weitere Informationen findest du im Leitfaden OAuth-Vorgang für Dienstkonten.

Transporteinstellungen

  • UseGrpcCore: Legen Sie diese Einstellung auf true fest, um die Grpc.Core-Bibliothek als zugrunde liegende Transportebene zu verwenden. Weitere Informationen finden Sie im gRPC-Supportleitfaden.

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 Kundennummer des autorisierten Kunden, der in der Anfrage verwendet werden soll, ohne Bindestriche (-).
  • LinkedCustomerId: Dieser Header ist nur für Methoden erforderlich, mit denen die Ressourcen einer Entität aktualisiert werden, wenn Sie die entsprechende Berechtigung in der Google Ads-Benutzeroberfläche über „Verknüpfte Konten“ erhalten haben (Ressource AccountLink in der Google Ads API). Legen Sie diesen Wert auf die Kundennummer des Datenanbieters fest, der die Ressourcen der angegebenen Kundennummer aktualisiert. Er sollte ohne Bindestriche (-) festgelegt werden. Weitere Informationen zu verknüpften Konten