Anwendungsleistung

<ph type="x-smartling-placeholder">

Die .NET-Clientbibliothek von Google Ads vereinfacht die Interaktionen Ihrer App mit dem Google Ads API mit minimalem Konfigurationsaufwand Ihrerseits. Der Gesamteindruck hängt stark davon ab, wie die Bibliothek verwendet und in Ihre

In diesem Leitfaden werden Leistungsoptimierungen speziell für .NET-Anwendungen behandelt. ergänzt das beste Praktiken, die im Allgemeinen Google Ads API

Nach Möglichkeit GoogleAdsClient wiederverwenden

GoogleAdsClient steht für die Sitzung eines Nutzers bei API-Aufrufen. Sie bietet Optimierungen wie:

  • gRPC-Kanäle im Cache speichern die von API-Diensten verwendet werden. Dadurch wird die Einrichtungszeit bei der ersten API-Erstellung verkürzt. Anrufe.
  • Zugriffstokens nach Möglichkeit wiederverwenden. Dadurch wird die Anzahl der Umläufe reduziert. den die .NET-Clientbibliothek von Google Ads ausführen muss, um die Zugriffstokens zu aktualisieren.

Nach Möglichkeit Zugriffstokens aus einem Verwaltungskonto verwenden

  • Wenn Sie ein Zugriffstoken auf Verwaltungskontoebene erhalten haben, können Sie es verwenden. API-Aufrufe für alle Google Ads-Kundenkonten unter diesem Konto ausführen Hierarchie. In Kombination mit der Wiederverwendung von GoogleAdsClient Instanzen kann dies die Anzahl der Umläufe, die die Clientbibliothek durchführen muss, Zugriffstokens aktualisieren

Nach Möglichkeit SearchStream anstelle von Suche verwenden

GoogleAdsService.Search kann zwar mehrere Anfragen in fortlaufender Sequenz senden, um den gesamten Bericht herunterzuladen, GoogleAdsService.SearchStream sendet eine einzelne Anfrage und initiiert eine dauerhafte Verbindung mit der Google Ads API. unabhängig von der Berichtsgröße. Da die Umlaufzeit im Netzwerk jede einzelne Seite einer Search-Antwort anzufordern, je nachdem, Ihrer App bietet SearchStream möglicherweise eine bessere Leistung als Paging. Weitere Informationen finden Sie unter Such- und SearchStream, um mehr über erhalten Sie weitere Informationen zu dieser Optimierung.

Aktualisierungen von Zugriffstokens manuell verwalten

In bestimmten Umgebungen, z. B. Google Cloud Funktionen haben, ist es unter Umständen nicht möglich, GoogleAdsClient Instanzen. Solche Umgebungen können ihr Bestes geben um Daten zu speichern und wiederzuverwenden. In solchen Fällen können Sie das GoogleAdsConfig, um Ihre eigenen Aktualisierungen von Zugriffstokens wie folgt auszuführen.

// Create your own config class by extending the GoogleAdsConfig class.

class MyGoogleAdsConfig : GoogleAdsConfig
{
    public MyGoogleAdsConfig() : base()
    {
        // Disable the library's in-built channel caching mechanism.
        this.UseChannelCache = false;
    }
    protected override ICredential CreateCredentials()
    {
        // TODO: Create your own ICredentials object here. You may refer to the
        // default implementation of GoogleAdsConfig::CreateCreateCredentials
        // for an example.
    }
}

// Use your own config class when initializing the GoogleAdsClient instance.

MyGoogleAdsConfig myconfig = new MyGoogleAdsConfig();
GoogleAdsClient client = new GoogleAdsClient(myconfig);

Für Release-Build kompilieren

Achten Sie darauf, dass Sie Ihre App mithilfe der Release-Version Konfiguration wenn sie auf dem Server bereitgestellt werden. Wenn Sie die Fehlerbehebungskonfiguration verwenden, wird mit vollständigen symbolischen Debug-Informationen und ohne Optimierung kompiliert.

App-Profil erstellen

Erstellen Sie ein Profil Ihrer App hinsichtlich CPU- und Arbeitsspeichernutzung, um die Leistung zu ermitteln und Engpässe erhalten. Visual Studio bietet Diagnosetools um ein Profil für Ihre Anwendung zu erstellen. Es gibt auch andere kommerzielle Profile Tools die verfügbar sind.

Asynchrone Methoden verwenden

Asynchrone Programmierung mit dem Befehl async-await Paradigma verhindert Leistungsengpässe und verbessert die Reaktionsfähigkeit von für Ihre App. Die Google Ads .NET-Bibliothek generiert asynchrone Methoden für alle Dienste und RPC-Methoden.

Abbruch asynchroner Methoden

Mit dem Parameter callSettings können Sie eine CancellationToken auf asynchrone Methoden anwenden:

CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
cancellationTokenSource.CancelAfter(3000);
CallSettings callSettings = CallSettings.FromCancellationToken(cancellationTokenSource.Token);

string query = "SELECT campaign.name FROM campaign";
var request = new SearchGoogleAdsStreamRequest()
{
    CustomerId = customerId.ToString(),
    Query = query,
};

GoogleAdsServiceClient googleAdsService = client.GetService(
    Services.V17.GoogleAdsService);

googleAdsService.SearchStream(request,
    delegate (SearchGoogleAdsStreamResponse resp)
    {
        foreach (GoogleAdsRow googleAdsRow in resp.Results)
        {
            // Process the row.
        }
    }, callSettings
);

Protokollierung deaktivieren, wann immer möglich

In der Google Ads .NET-Bibliothek wird das Logging standardmäßig deaktiviert und es wird ein Lazy Logging verwendet. um die Leistung Ihrer App zu verbessern. Wenn Sie die Protokollierung aktivieren, in der Produktionsumgebung deaktivieren. Für die Überwachung für bestimmte fehlgeschlagene Anfragen in der Produktion, können Sie einen oder mehrere der folgenden Schritte ausführen: ohne die Leistung Ihrer App zu beeinträchtigen:

  • Aktivieren Sie nur die Zusammenfassungslogs.
  • Legen Sie für die vollständigen Logs die Ebene ERROR fest.
  • Speichere die Anfrage-ID für bestimmte Anfragen, die du teilen kannst mit den Supportkanälen.

Weitere Informationen finden Sie im Logging-Leitfaden.

Entscheiden Sie, ob Sie die Methode „SearchStream“ oder „Search“ verwenden möchten.

Die Google Ads API bietet zwei Möglichkeiten zum Abrufen von Objekten: die Methode Search. (verwendet Paginierung) und SearchStream (verwendet Streaming).

SearchStream bietet im Vergleich zu Search eine bessere Leistung, es gibt jedoch Szenarien, in denen Search bevorzugt wird.

Weitere Informationen finden Sie im Leitfaden zu Streamingberichten. zu den beiden Methoden.

„ReadyToRun“-Option verwenden

.NET Core 3.1 unterstützt die Vorkompilierung der Binärdateien auf einer bestimmten Plattform und Architektur, indem Sie die Einstellung PublishReadyToRun auf true festlegen. Dann wird die Binärdatei veröffentlicht, indem eine gültige RuntimeIdentifier angegeben wird, wenn Veröffentlichung. Weitere Informationen findest du in der Anleitung zum ReadyToRun , um mehr über die mehr.

TieredCompilation verwenden

Mit TieredCompilation kann .NET Hotspots erkennen und die die Leistung. Die gestaffelte Kompilierung funktioniert besser mit der Option ReadyToRun, da kann das vorgenerierte Bild verwendet werden, sofern verfügbar. Weitere Informationen finden Sie im Leitfaden zur TieredCompilation. um mehr zu erfahren.

Automatische Speicherbereinigung optimieren

.NET bietet zwei allgemeine Profile für die automatische Speicherbereinigung (GC): eine Workstation Profil und ein Serverprofil. Diese beiden Profile haben unterschiedliche Leistungsmerkmale Kompromisse. Apps, die die Google Ads .NET-Bibliothek verwenden, funktionieren in der Regel besser, wenn sie ausgeführt werden. in einem Serverprofil. Sie können von der Feinabstimmung der folgenden GC-Einstellungen profitieren.

  • Automatische Speicherbereinigung des Servers:Die automatische Speicherbereinigung des Servers lässt .NET zu. um eine bessere Leistung einer Google Ads API-App zu erzielen, in mehreren Threads arbeiten. Siehe dieses Leitfaden . Sie können die automatische Serverbereinigung aktivieren, indem Sie die folgenden Zeilen zur Datei .csproj Ihrer Anwendung hinzu.

    <PropertyGroup>
      <ServerGarbageCollection>true</ServerGarbageCollection>
    </PropertyGroup>
    
  • Gleichzeitige automatische Speicherbereinigung:Sie können die Funktion Gleichzeitige automatische Speicherbereinigung automatische Speicherbereinigung .NET GC erhält einen speziellen Thread für die automatische Speicherbereinigung in der Generation 2. Diese Einstellung kann bei der Verarbeitung großer Berichte nützlich sein. Sie können die gleichzeitige automatische Speicherbereinigung aktivieren, indem Sie die folgenden Zeilen zu Ihrem App-Datei .csproj.

    <PropertyGroup>
      <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
    </PropertyGroup>
    
  • Automatische Speicherbereinigung für VM beibehalten:Der RetainVMGarbageCollection Einstellung konfiguriert, ob zu löschende Segmente des virtuellen Arbeitsspeichers in zur späteren Verwendung in einer Standby-Liste enthalten oder wieder an den Betriebssystem (Betriebssystem). Sie können die Aufbewahrung des virtuellen Arbeitsspeichers aktivieren, indem Sie den Parameter folgenden Zeilen zu Ihrer App hinzu.

    <PropertyGroup>
      <RetainVMGarbageCollection>true</RetainVMGarbageCollection>
    </PropertyGroup>
    

Sie können die automatische Speicherbereinigung optimieren, indem Sie eine Einrichtung wählen, die zwischen eine Workstation und einen Server. Alle relevanten Einstellungen in der Datei runtimeconfig.json Ihrer .NET Core-App angegeben sind, einer Umgebung oder App.config Ihrer .NET SDK-App.