Fehlertypen

Die Fehler sind in folgende Kategorien eingeteilt:

  • Authentifizierung
  • Wiederholbar
  • Validierung
  • Synchronisierungsbezogen

Obwohl diese Kategorien nicht alle möglichen Fehler umfassen und einige in mehr als eine Kategorie fallen, können sie dennoch als Ausgangspunkt für die Strukturierung der Fehlerbehandlung für Ihre App dienen. Unter Häufige Fehler finden Sie weitere Einzelheiten zu bestimmten Problemen.

Authentifizierungsfehler

Die Authentifizierung bezieht sich darauf, ob ein Nutzer Ihrer App die Berechtigung erteilt hat, in seinem Namen auf Google Ads zuzugreifen. Die Authentifizierung erfolgt über die durch den OAuth2-Ablauf generierten Anmeldedaten.

Der häufigste Grund für einen Authentifizierungsfehler aus 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 App 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 App jederzeit widerrufen. Je nachdem, wann Ihr Zugriff widerrufen wurde, gibt die API entweder direkt den Fehler AuthenticationError.OAUTH_TOKEN_REVOKED zurück oder die integrierten Anmeldedatenobjekte in den Clientbibliotheken lösen möglicherweise eine Ausnahme für widerrufene Tokens aus. Wenn Ihre App eine UI für Ihre Clients hat, können diese in beiden Fällen aufgefordert werden, den OAuth2-Vorgang noch einmal zu starten, um wieder die Berechtigung Ihrer App zu erteilen, in ihrem Namen zu handeln.

Retryable-Fehler

Einige Fehler wie TRANSIENT_ERROR oder INTERNAL_ERROR können auf ein vorübergehendes Problem hinweisen, das behoben werden kann, indem die Anfrage nach einer kurzen Pause wiederholt wird.

Bei von Nutzern initiierten Anfragen kann es hilfreich sein, sofort auf einen Fehler in der UI zu verweisen und dem Nutzer die Möglichkeit zu geben, einen erneuten Versuch auszulösen. Alternativ könnte Ihre Anwendung die Anfrage zuerst automatisch wiederholen und den Fehler erst dann in der UI sichtbar machen, wenn die maximale Anzahl von Wiederholungen oder die Gesamtwartezeit des Nutzers erreicht wurde.

Bei Anfragen, die am 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 exponentielle Backoff-Richtlinie. 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 vom Nutzer initiierten Anfragen auf, wenn diese eine ungültige Eingabe eingegeben haben. In diesen Fällen müssen Sie dem Nutzer eine entsprechende Fehlermeldung zu dem jeweils erhaltenen API-Fehler mitteilen. Außerdem können Sie Nutzereingaben auf häufige Fehler prüfen, bevor Sie einen API-Aufruf ausführen. So können Sie Ihre Anwendung reaktionsschneller und die API-Nutzung effizienter gestalten. Bei Anfragen vom Back-End könnte Ihre Anwendung den fehlgeschlagenen Vorgang in eine Warteschlange stellen, damit ein Mitarbeiter diese prüfen kann.

Viele Google Ads-Apps verfügen über eine lokale Datenbank, in der die Google Ads-Objekte gespeichert werden. Eine Herausforderung bei diesem Ansatz besteht darin, dass die lokale Datenbank möglicherweise nicht mit den Objekten in Google Ads synchron ist. Beispielsweise löscht ein Nutzer eine Anzeigengruppe direkt in Google Ads, aber die App und die lokale Datenbank erkennen die Änderung nicht und führen weiterhin API-Aufrufe aus, als ob die Anzeigengruppe vorhanden wäre. Diese Synchronisierungsprobleme können sich als eine Vielzahl von Fehlern zeigen, z. B. DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD und viele weitere.

Bei vom Nutzer initiierten Anfragen kann eine Strategie darin bestehen, den Nutzer auf ein mögliches Synchronisierungsproblem zu hinweisen und 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 UI zu aktualisieren.

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