Konfiguration

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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

Konfiguration mit App.config

Alle für Google Ads API spezifischen Einstellungen 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>

Separate App.config-Datei angeben

Wenn Sie Ihr App.config nicht überladen möchten, können Sie die bibliotheksspezifische Konfiguration mit der Property configSource in eine eigene Konfigurationsdatei verschieben.

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

Ändern Sie Ihren 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 unter configSource angegeben haben, und verschieben Sie den Konfigurationsknoten aus der Datei App.config in diese Datei:

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

Schritt 3: Build-Regeln in „csproj“ korrigieren

Schließen Sie schließlich die neue Konfigurationsdatei in Ihr Projekt ein. Ändern Sie die Attribute dieser Datei zu Immer in Ausgabeordner kopieren.

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

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 einen IConfigurationRoot.

ConfigurationBuilder builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    .AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();

GoogleAdsConfig config = new GoogleAdsConfig(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);

Konfiguration mit settings.json

Der Prozess ä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 Instanz IConfiguration auf Ihrer Seite verwenden:

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

Bibliothek zur Laufzeit konfigurieren

Sie können GoogleAdsClient auch zur Laufzeit initialisieren.

Beispiel 1: Konfiguration zur Laufzeit initialisieren

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

GoogleAdsClient client = new GoogleAdsClient(config);

Beispiel 2: Aus App.config laden, aber Einstellung überschreiben

GoogleAdsClient client = new GoogleAdsClient(config);
client.Config.DeveloperToken = "******";

Konfiguration mit Umgebungsvariablen

Sie können GoogleAdsClient auch mithilfe von Umgebungsvariablen initialisieren. Diese Einstellungen werden nicht automatisch übernommen. Sie sollten auch die Einstellungen aus den Umgebungsvariablen wie unten gezeigt laden.

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

Vollständige Liste der unterstützten Umgebungsvariablen

Felder für die Konfiguration

Die folgende Liste enthält die von der Google Ads .NET-Bibliothek unterstützten Einstellungen.

Verbindungseinstellungen

  • Timeout: Verwenden Sie diesen Schlüssel, um das Zeitlimit des Dienstes in Millisekunden festzulegen. 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üssen. Sie können das Zeitlimit auf 2 Stunden oder mehr festlegen. Die API kann jedoch trotzdem zu Anfragen mit extrem langer Ausführungszeit führen und einen DEADLINE_EXCEEDED-Fehler zurückgeben.
  • ProxyServer: Setzen Sie dies auf die HTTP-Proxy-Server-URL, wenn Sie einen Proxy für die Verbindung mit dem Internet verwenden.
  • ProxyUser: Geben Sie hier den Nutzernamen an, den Sie für die Authentifizierung beim Proxyserver verwenden möchten. Lassen Sie dieses Feld leer, wenn kein Nutzername erforderlich ist.
  • ProxyPassword: Legen Sie dieses Passwort auf ProxyUser fest, wenn Sie einen Wert für ProxyUser festlegen.
  • ProxyDomain: Setzen Sie dies auf die Domain für ProxyUser, wenn Ihr Proxyserver einen festlegen muss.
  • MaxReceiveMessageLengthInBytes: Verwenden Sie diese Einstellung, um die maximale Größe der API-Antwort zu erhöhen, 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.

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

In diesem Beispiel liegt der Fehler daran, dass die Nachrichtengröße (423184132 bytes) größer als die Bibliothek ist (67108864 bytes). Erhöhen Sie MaxReceiveMessageLengthInBytes auf 500000000, um diesen Fehler zu vermeiden.

Hinweis: Der Fehler weist auch darauf hin, dass Ihr Code ein erheblich großes Antwortobjekt verarbeitet hat, z. B. ein großes SearchGoogleAdsResponse. Dies kann sich auf die Leistung Ihres Codes auswirken, weil das große Objekt-Heap von .NET verwendet wird. Wenn dies zu Leistungsbeeinträchtigungen führt, müssen Sie möglicherweise Ihre API-Aufrufe neu organisieren oder Teile Ihrer App neu gestalten.

OAuth2-Einstellungen

Wenn Sie OAuth2 zum Autorisieren Ihrer Aufrufe an die Google Ads API-Server verwenden, sollten Sie die folgenden Konfigurationsschlüssel festlegen:

  • AuthorizationMethod: Legen Sie OAuth2 fest.
  • OAuth2Mode: Auf APPLICATION oder SERVICE_ACCOUNT festlegen.
  • 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: Setzen Sie diesen Wert auf ein vorab generiertes OAuth2-Aktualisierungstoken, 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 diesen Wert auf die E-Mail-Adresse des Kontos fest, das Sie imitieren.
  • OAuth2SecretsJsonPath: Legen Sie diesen Wert auf den Pfad zur OAuth2-JSON-Konfigurationsdatei fest.

Weitere Informationen finden Sie in der Anleitung zum OAuth-Dienstkonto.

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 Supportleitfaden für gRPC.

Google Ads API-Einstellungen

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

  • DeveloperToken: Legen Sie dafür Ihr Entwicklertoken fest.
  • LoginCustomerId: Dies ist die Kundennummer des autorisierten Kunden, der in der Anfrage ohne Bindestriche (-) verwendet werden soll. Weitere Informationen.
  • 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-UI (AccountLink-Ressource in der Google Ads API) gewährt wird. 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