Die Fehler sind in folgende Kategorien unterteilt:
- Authentifizierung
- Wiederholbar
- Validierung
- Synchronisierungsbezogen
Auch wenn diese Kategorien nicht alle möglichen Fehler abdecken und sich möglicherweise auf mehrere Kategorien beziehen, können sie dennoch als Ausgangspunkt für die Strukturierung der Fehlerbehandlung Ihrer Anwendung dienen. Unter Häufige Fehler finden Sie weitere Einzelheiten zu bestimmten Problemen.
Authentifizierungsfehler
Die Authentifizierung bezieht sich darauf, ob ein Nutzer Ihrer App erlaubt hat, in seinem Namen auf Google Ads zuzugreifen. Die Authentifizierung wird über Anmeldedaten verwaltet, die durch den OAuth2-Ablauf generiert wurden.
Der häufigste Grund für einen Authentifizierungsfehler durch Faktoren, die außerhalb Ihrer Kontrolle liegen, ist, dass der authentifizierte Nutzer die Berechtigung widerrufen hat, die er Ihrer Anwendung erteilt hat, in seinem Namen zu handeln. Wenn Ihre Anwendung beispielsweise separate Google Ads-Konten für unabhängige Kunden verwaltet und sich bei der Verwaltung dieses Kundenkontos separat als jeder Kunde authentifiziert, kann ein Kunde den Zugriff Ihrer Anwendung jederzeit widerrufen. Je nachdem, wann der Zugriff widerrufen wurde, gibt die API möglicherweise direkt den Fehler AuthenticationError.OAUTH_TOKEN_REVOKED
zurück oder die integrierten Berechtigungsobjekte in den Clientbibliotheken können eine Ausnahme für das Widerrufen eines Tokens auslösen. Wenn Ihre Anwendung eine UI für Ihre Clients hat, könnte sie in beiden Fällen aufgefordert werden, den OAuth2-Ablauf neu zu starten, um die Berechtigung der Anwendung wiederherzustellen, in ihrem Namen zu handeln.
Retryable-Fehler
Einige Fehler wie TRANSIENT_ERROR
oder INTERNAL_ERROR
können auf ein vorübergehendes Problem hinweisen, das durch Wiederholen der Anfrage nach einer kurzen Pause behoben werden kann.
Bei von Nutzern initiierten Anfragen besteht eine Strategie darin, sofort einen Fehler in der UI anzuzeigen und dem Nutzer die Möglichkeit zu geben, einen neuen Versuch auszulösen. Alternativ könnte Ihre Anwendung die Anfrage zuerst automatisch wiederholen und den Fehler erst dann in der UI offenlegen, wenn eine maximale Anzahl von Wiederholungsversuchen oder die Gesamtwartezeit des Nutzers erreicht wurde.
Bei Anfragen, die vom Back-End initiiert werden, sollte Ihre Anwendung die Anfrage automatisch bis zu einer maximalen Anzahl von Wiederholungsversuchen wiederholen.
Verwenden Sie beim Wiederholen von Anfragen eine Richtlinie mit exponentiellem Backoff. Warten Sie vor dem zweiten Versuch beispielsweise fünf Sekunden, vor dem dritten zehn Sekunden und vor dem vierten 20 Sekunden. Dadurch wird die API nicht zu häufig aufgerufen.
Validierungsfehler
Zu Validierungsfehlern kommt es nach inakzeptablen Eingaben bei einem Vorgang.
Beispiel: PolicyViolationError
, DateError
, DateRangeError
, StringLengthError
und UrlFieldError
.
Validierungsfehler treten am häufigsten bei von Nutzern initiierten Anfragen auf, bei denen eine ungültige Eingabe erfolgt ist. In diesen Fällen sollten Sie dem Nutzer eine entsprechende Fehlermeldung basierend auf dem spezifischen API-Fehler senden, den Sie erhalten haben. Sie können Nutzereingaben auch auf häufige Fehler prüfen, bevor Sie einen API-Aufruf ausführen. Dadurch wird Ihre Anwendung reaktionsschneller und die API-Nutzung effizienter. Bei Anfragen vom Back-End kann Ihre Anwendung den fehlgeschlagenen Vorgang einer Warteschlange hinzufügen, damit eine Person ihn überprüfen kann.
Fehlende Synchronität
Viele Google Ads-Apps verfügen über eine lokale Datenbank zur Speicherung ihrer Google Ads-Objekte. Eine Herausforderung bei diesem Ansatz besteht darin, dass die lokale Datenbank nicht mit den Objekten in Google Ads synchron sein kann. Beispiel: Ein Nutzer löscht eine Anzeigengruppe direkt in Google Ads, aber die App und die lokale Datenbank erkennen die Änderung nicht und führen weiterhin API-Aufrufe aus, so als ob die Anzeigengruppe vorhanden wäre. Diese Synchronisierungsprobleme können sich als eine Vielzahl von Fehlern wie DUPLICATE_CAMPAIGN_NAME
, DUPLICATE_ADGROUP_NAME
, AD_NOT_UNDER_ADGROUP
, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
und viele andere äußern.
Bei von Nutzern initiierten Anfragen besteht eine Strategie darin, den Nutzer auf ein mögliches Synchronisierungsproblem hinzuweisen, sofort einen Job zu starten, mit dem die relevante Klasse von Google Ads-Objekten abgerufen und die lokale Datenbank aktualisiert wird. Anschließend wird der Nutzer aufgefordert, die Benutzeroberfläche zu aktualisieren.
Bei Backend-Anfragen liefern einige Fehler genügend Informationen, damit Ihre Anwendung die lokale Datenbank automatisch und schrittweise korrigieren kann. CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
sollte beispielsweise bewirken, dass Ihre App die Anzeige in der lokalen Datenbank als entfernt markiert. Fehler, die Sie nicht auf diese Weise behandeln können, können dazu führen, dass Ihre Anwendung einen umfassenderen Synchronisierungsjob startet oder in eine Warteschlange zur Überprüfung durch eine Person aufgenommen wird.