Fehlertypen

Wir haben Fehler in die folgenden Kategorien eingeteilt:

  • Authentifizierung
  • Wiederholbar
  • Validierung
  • Synchronisierung

Diese Kategorien umfassen zwar nicht alle möglichen Fehler und einige Fehler passen möglicherweise in mehr als eine Kategorie, sie können aber dennoch als Ausgangspunkt für die Strukturierung der Fehlerbehandlung Ihrer App dienen. Weitere Informationen zu bestimmten Fehlern finden Sie in den folgenden Ressourcen:

  • Unter Häufige Fehler finden Sie weitere Details zu einem bestimmten Fehler.
  • Unter google.rpc.Status finden Sie Details zum logischen Fehlermodell, das von der API verwendet wird.
  • Unter Kanonische Fehlercodes finden Sie eine Liste und Erläuterung der kanonischen Fehlercodes, die von gRPC und HTTP im Kontext der Google Ads API definiert wurden.

Authentifizierungsfehler

Bei der Authentifizierung wird geprüft, ob Ihre App von einem Nutzer die Berechtigung erhalten hat, in seinem Namen auf Google Ads zuzugreifen. Die Authentifizierung wird über Anmeldedaten verwaltet, die durch den OAuth2-Ablauf generiert werden.

Der häufigste Grund für einen Authentifizierungsfehler, der auf Faktoren beruht, die außerhalb Ihrer Kontrolle liegen, ist, dass der authentifizierte Nutzer die Berechtigung widerrufen hat, die er Ihrer App erteilt hat, in seinem Namen zu handeln. Wenn Ihre App beispielsweise separate Google Ads-Konten für unabhängige Kunden verwaltet und sich bei der Verwaltung des Kontos eines Kunden separat als dieser Kunde authentifiziert, kann ein Kunde den Zugriff Ihrer App jederzeit widerrufen. Je nachdem, wann Ihr Zugriff widerrufen wurde, gibt die API möglicherweise direkt einen AuthenticationError.OAUTH_TOKEN_REVOKED Fehler zurück oder die integrierten Anmeldedaten Objekte in den Clientbibliotheken lösen eine Ausnahme für widerrufene Tokens aus. Wenn Ihre App in beiden Fällen eine Benutzeroberfläche für Ihre Kunden hat, kann sie sie auffordern, den OAuth2-Ablauf neu zu starten, um die Berechtigung Ihrer App, in ihrem Namen zu handeln, wiederherzustellen.

Wiederholbare Fehler

Einige Fehler wie TRANSIENT_ERROR oder INTERNAL_ERROR, können auf ein vorübergehendes Problem hinweisen, das möglicherweise durch Wiederholen der Anfrage nach einer kurzen Pause behoben werden kann.

Bei von Nutzern initiierten Anfragen besteht eine Strategie darin, sofort einen Fehler auf der Benutzeroberfläche anzuzeigen und dem Nutzer die Möglichkeit zu geben, einen Wiederholungsversuch auszulösen. Alternativ kann Ihre App die Anfrage zuerst automatisch wiederholen und den Fehler erst auf der Benutzeroberfläche anzeigen, nachdem eine maximale Anzahl von Wiederholungsversuchen oder eine maximale Wartezeit für den Nutzer erreicht wurde.

Bei Anfragen, die im Back-End initiiert werden, sollte Ihre App die Anfrage automatisch bis zu einer maximalen Anzahl von Wiederholungsversuchen wiederholen.

Verwenden Sie beim Wiederholen von Anfragen eine Richtlinie für den exponentiellen Backoff. Warten Sie vor dem zweiten Versuch beispielsweise fünf Sekunden, vor dem dritten zehn Sekunden und vor dem vierten 20 Sekunden. Der exponentielle Backoff trägt dazu bei, dass Sie die API nicht zu aggressiv aufrufen.

Validierungsfehler

Zu Validierungsfehlern kommt es nach inakzeptablen Eingaben bei einem Vorgang. Beispiele: PolicyViolationError, DateError, DateRangeError, StringLengthError und UrlFieldError.

Validierungsfehler treten am häufigsten bei von Nutzern initiierten Anfragen auf, bei denen ein Nutzer eine ungültige Eingabe gemacht hat. In diesen Fällen sollten Sie dem Nutzer eine entsprechende Fehlermeldung basierend auf dem spezifischen API-Fehler geben, den Sie erhalten haben. Sie können die Nutzereingabe auch auf häufige Fehler prüfen, bevor Sie einen API-Aufruf ausführen. So wird Ihre App reaktionsschneller und die API-Nutzung effizienter. Bei Anfragen vom Back-End kann Ihre App den fehlgeschlagenen Vorgang einer Warteschlange hinzufügen, damit er von einem menschlichen Mitarbeiter überprüft werden kann.

Viele Google Ads-Apps verwalten eine lokale Datenbank, in der ihre Google Ads-Objekte gespeichert sind. Eine Herausforderung bei diesem Ansatz besteht darin, dass die lokale Datenbank möglicherweise nicht mit den tatsächlichen Objekten in Google Ads synchronisiert ist. Ein Nutzer kann beispielsweise eine Anzeigengruppe direkt in Google Ads löschen, aber die App und die lokale Datenbank wissen nichts von der Änderung und senden weiterhin API-Aufrufe, als ob die Anzeigengruppe vorhanden wäre. Diese Synchronisierungsprobleme können sich in einer Vielzahl von Fehlern äußern, z. B. DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD, und vielen anderen.

Bei von Nutzern initiierten Anfragen besteht eine Strategie darin, den Nutzer auf ein mögliches Synchronisierungsproblem aufmerksam zu machen, sofort einen Job zu starten, der die relevante Klasse von Google Ads-Objekten abruft und die lokale Datenbank aktualisiert, und den Nutzer dann aufzufordern, die Benutzeroberfläche zu aktualisieren.

Bei Back-End-Anfragen liefern einige Fehler genügend Informationen, damit Ihre App die lokale Datenbank automatisch und inkrementell korrigieren kann. Der Fehler CANNOT_OPERATE_ON_REMOVED_ADGROUPAD sollte beispielsweise dazu führen, dass Ihre App diese Anzeige in Ihrer lokalen Datenbank als entfernt markiert. Fehler, die Sie auf diese Weise nicht beheben können, können dazu führen, dass Ihre App einen umfassenderen Synchronisierungsjob startet oder einer Warteschlange hinzugefügt wird, damit sie von einem menschlichen Mitarbeiter überprüft werden kann.