Video: Vortrag zur Fehlerbehandlung vom Workshop 2019
Fehler können durch eine falsche Umgebungseinrichtung, einen Fehler in Ihrer Software oder ungültige Eingaben eines Nutzers verursacht werden. Unabhängig von der Quelle müssen Sie das Problem beheben und entweder Ihren Code korrigieren oder Logik hinzufügen, um den Nutzerfehler zu behandeln. In diesem Leitfaden werden einige Best Practices für die Fehlerbehebung bei Fehlern in der Google Ads API beschrieben.
Konnektivität sicherstellen
Prüfen Sie, ob Sie Zugriff auf die Google Ads API haben und ob die Einrichtung korrekt ist. Wenn in Ihrer Antwort HTTP-Fehler zurückgegeben werden, müssen Sie diese sorgfältig beheben und sicherstellen, dass Sie die Dienste, die Sie verwenden möchten, über Ihren Code erreichen.
Ihre Anmeldedaten sind in Ihrer Anfrage eingebettet, damit Sie von den Diensten authentifiziert werden können. Machen Sie sich mit der Struktur von Google Ads API-Anfragen und -Antworten vertraut, insbesondere wenn Sie Aufrufe ohne Verwendung der Clientbibliotheken verarbeiten möchten. Jede Clientbibliothek wird mit einer spezifischen Anleitung dazu ausgeliefert, wie Sie Ihre Anmeldedaten in die Konfigurationsdatei einfügen (siehe README der Clientbibliothek).
Prüfen Sie, ob Sie die richtigen Anmeldedaten verwenden. In unserer Kurzanleitung wird beschrieben, wie Sie das richtige Set erhalten. Das folgende Beispiel für einen Antwortfehler zeigt, dass der Nutzer ungültige Anmeldedaten gesendet hat:
{ "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "detail": "Authentication error: 2" } ] } }
Wenn Sie diese Schritte ausgeführt haben und weiterhin Probleme auftreten, müssen Sie die Google Ads API-Fehler beheben.
Problem ermitteln
In der Google Ads API werden Fehler in der Regel als JSON-Fehlerobjekt gemeldet, das eine Liste von Fehlern in der Antwort enthält. Diese Objekte enthalten einen Fehlercode sowie eine Meldung, in der erläutert wird, warum der Fehler aufgetreten ist. Sie sind die ersten Hinweise darauf, was das Problem sein könnte.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
In allen unseren Clientbibliotheken werden Ausnahmen ausgelöst, die Fehler in der Antwort kapseln. Diese Ausnahmen zu erfassen und die Meldungen in einem Log oder auf einem Bildschirm zur Fehlerbehebung auszugeben, ist ein guter Anfang. Wenn Sie diese Informationen mit den anderen protokollierten Ereignissen in Ihrer Anwendung kombinieren, erhalten Sie einen guten Überblick darüber, was das Problem auslösen könnte. Nachdem Sie den Fehler in den Logs gefunden haben, müssen Sie herausfinden, was er bedeutet.
Fehler untersuchen
In der Dokumentation zu häufigen Fehlern finden Sie Informationen zu den am häufigsten auftretenden Fehlern. Darin werden die Fehlermeldung, relevante API-Referenzen und Möglichkeiten zum Vermeiden oder Beheben des Fehlers beschrieben.
Wenn der Fehler nicht in unserer Dokumentation zu häufigen Fehlern aufgeführt ist, sehen Sie in unserer Referenzdokumentation nach der Fehlerstring.
In unseren Supportkanälen finden Sie andere Entwickler, die ihre Erfahrungen mit der API teilen. Möglicherweise hat jemand anderes das Problem, das Sie haben, bereits behoben.
Wenn Sie auf Fehler stoßen, die nicht dokumentiert sind, teilen Sie uns dies bitte im Forum mit.
In der Google Ads-Hilfe finden Sie Informationen zur Fehlerbehebung bei Validierungs- oder Kontolimits. Die Google Ads API übernimmt die Regeln und Einschränkungen des Google Ads-Kernprodukts.
In Blogposts finden Sie gelegentlich ebenfalls nützliche Hinweise zur Fehlerbehebung.
Nachdem Sie den Fehler untersucht haben, müssen Sie die Ursache ermitteln.
Ursache ermitteln
Sehen Sie sich die Ausnahmemeldung an, um die Ursache des Fehlers zu ermitteln. Sehen Sie sich die Antwort an und prüfen Sie die Anfrage auf eine mögliche Ursache. Einige Google Ads API-Fehlermeldungen enthalten ein fieldPathElements
im Feld location
der GoogleAdsError
. Damit wird angegeben, an welcher Stelle in der Anfrage der Fehler aufgetreten ist. Beispiel:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
Bei der Fehlerbehebung kann es sein, dass Ihre Anwendung die falschen Informationen an die API sendet. Wir empfehlen dringend die Verwendung einer integrierten Entwicklungsumgebung (IDE) wie Eclipse. Eclipse ist eine kostenlose Open-Source-IDE, die hauptsächlich für die Entwicklung von Java verwendet wird, aber auch Plug-ins für andere Sprachen bietet. Sie können Haltepunkte festlegen und Ihren Code Zeile für Zeile durchgehen.
Prüfen Sie noch einmal, ob die Anfrage mit den Eingaben in Ihrem Antrag übereinstimmt. Möglicherweise wird der Name der Kampagne nicht in die Anfrage aufgenommen. Achten Sie darauf, dass Sie eine Feldmaske senden, die den gewünschten Aktualisierungen entspricht. Die Google Ads API unterstützt spärliche Aktualisierungen. Wenn Sie ein Feld in einer Mutate-Anfrage aus der Feldmaske weglassen, bedeutet das, dass die API es nicht ändern soll. Wenn Ihre Anwendung ein Objekt abruft, eine Änderung vornimmt und es zurücksendet, schreiben Sie möglicherweise in ein Feld, das keine Aktualisierung unterstützt. In der Referenzdokumentation finden Sie eine Beschreibung des Felds und Informationen dazu, ob und wann Sie das Feld aktualisieren können.
Hilfe
Es ist nicht immer möglich, das Problem selbst zu erkennen und zu beheben. Wenn Sie Ihre Frage im Forum stellen, wird sie Tausenden von Entwicklern angezeigt, die möglicherweise mit demselben Problem konfrontiert waren.
Geben Sie in Ihren Anfragen so viele Informationen wie möglich an. Dazu gehört beispielsweise Folgendes:
- Bereinigte JSON-Anfrage und -Antwort. Entfernen Sie vertrauliche Informationen wie Ihr Entwicklertoken oder AuthToken.
- Code-Snippets: Wenn Sie ein sprachspezifisches Problem haben oder Hilfe bei der Verwendung der API benötigen, fügen Sie einen Code-Snippet ein, um zu erklären, was Sie tun.
- RequestId. So können Mitglieder des Google Developer Relations-Teams Ihre Anfrage finden, wenn sie für die Produktionsumgebung gestellt wurde. Wir empfehlen, in Ihren Logs die requestId zu registrieren, die als Attribut in den Ausnahmen enthalten ist, die Antwortfehler kapseln, sowie mehr Kontext als nur die requestId.
- Zusätzliche Informationen wie die Laufzeit-/Interpreterversion und die Plattform können bei der Fehlerbehebung ebenfalls hilfreich sein.
Problem beheben
Nachdem Sie das Problem identifiziert und eine Lösung gefunden haben, können Sie die entsprechenden Änderungen vornehmen und das Bugfix mit einem Testkonto (bevorzugt) oder in der Produktionsumgebung testen (wenn sich der Programmfehler nur auf Daten in einem bestimmten Produktionskonto bezieht).
Freigabe in Betracht ziehen
Wenn Sie im Forum eine Frage zu einem Fehler gestellt haben, der dort noch nicht behandelt wurde, und Sie die Lösung gefunden haben, sollten Sie sie dem Thread hinzufügen. Wenn ein Entwickler das nächste Mal dasselbe Problem hat, kann er es sofort beheben.
Nächste Schritte
Bei der Lösung Ihres Problems sind Ihnen bestimmt Möglichkeiten aufgefallen, wie Sie Ihren Code verbessern und derartige Fehler von vornherein vermeiden können.
Durch das Erstellen einer guten Reihe von Unittests lassen sich Codequalität und Zuverlässigkeit erheblich verbessern. Außerdem wird der Prozess des Testens neuer Änderungen beschleunigt, um sicherzustellen, dass frühere Funktionen nicht beeinträchtigt werden. Eine gute Strategie zur Fehlerbehandlung ist auch wichtig, um alle erforderlichen Daten für die Fehlerbehebung zu erfassen.