Problembehebung

Video: Sehen Sie sich das Gespräch zur Fehlerbehandlung vom Workshop 2019 an

Fehler können durch eine falsche Umgebungseinrichtung, einen Programmfehler in Ihrer Software oder ungültige Nutzereingaben verursacht werden. Unabhängig von der Quelle müssen Sie das Problem beheben und entweder Ihren Code korrigieren oder eine Logik hinzufügen, um den Nutzerfehler zu beheben. In diesem Leitfaden werden einige Best Practices bei der Behebung von Fehlern beschrieben, die mit der Google Ads API auftreten.

Konnektivität sicherstellen

  1. Sie benötigen Zugriff auf die Google Ads API und die korrekte Einrichtung. Wenn Ihre Antwort HTTP-Fehler zurückgibt, achten Sie darauf, diese Fehler sorgfältig zu beheben und die Dienste zu erreichen, die Sie über Ihren Code verwenden möchten.

  2. Ihre Anmeldedaten werden in Ihre Anfrage eingebettet, damit die Dienste Sie authentifizieren können. Machen Sie sich mit der Struktur der Google Ads API-Anfragen und -Antworten vertraut, insbesondere wenn Sie Aufrufe ohne Verwendung der Clientbibliotheken verarbeiten werden. Im Lieferumfang jeder Clientbibliothek ist eine spezifische Anleitung enthalten, wie Sie Ihre Anmeldedaten in die Konfigurationsdatei aufnehmen können. Entsprechende Informationen finden Sie in der README-Datei der Clientbibliothek.

  3. Prüfen Sie, ob Sie die richtigen Anmeldedaten verwenden. In unserer Kurzanleitung erfahren Sie, wie Sie den richtigen Satz abrufen. Der folgende Antwortfehler zeigt beispielsweise, dass der Nutzer ungültige Anmeldedaten für die Authentifizierung 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 nach dem Ausführen dieser Schritte weiterhin Probleme auftreten, sollten Sie mit der Fehlerbehebung für die Google Ads API beginnen.

Problem ermitteln

Die Google Ads API meldet Fehler normalerweise als JSON-Fehlerobjekt, das eine Liste von Fehlern in der Antwort enthält. Diese Objekte liefern einen Fehlercode sowie eine Meldung, aus der hervorgeht, warum er aufgetreten ist. Sie sind Ihre ersten Anzeichen dafür, 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" }
    }
  ]
}

Alle unsere Clientbibliotheken geben Ausnahmen aus, die Fehler in der Antwort enthalten. Das Erfassen dieser Ausnahmen und das Drucken der Meldungen in einem Log oder einem Bildschirm zur Fehlerbehebung ist ein guter Anfang. Durch die Einbindung dieser Informationen in die anderen protokollierten Ereignisse in Ihrer Anwendung 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 analysieren

  1. In unserer Dokumentation zu häufigen Fehlern werden die am häufigsten auftretenden Fehler behandelt. Darin werden die Fehlermeldung, relevante API-Referenzen und Anleitungen zum Vermeiden oder Beheben des Fehlers beschrieben.

  2. Wenn der Fehler in unserer Dokumentation zu häufigen Fehlern nicht ausdrücklich erwähnt wird, sehen Sie in der Referenzdokumentation nach, um den Fehlerstring zu finden.

  3. Über unsere Supportkanäle können Sie Kontakt zu anderen Entwicklern erhalten, die ihre Erfahrungen mit der API teilen. Eine andere Person ist vielleicht mit dem Problem konfrontiert und es gelöst.

  4. Wenn Sie auf Fehler stoßen, die nicht dokumentiert sind, machen Sie uns im Forum darauf aufmerksam.

  5. Informationen zur Behebung von Problemen mit der Validierung oder mit dem Kontolimit finden Sie in der Google Ads-Hilfe. Die Google Ads API übernimmt die Regeln und Einschränkungen des Hauptprodukts von Google Ads.

  6. In Blogposts finden Sie gelegentlich ebenfalls nützliche Hinweise zur Fehlerbehebung.

Nachdem Sie den Fehler untersucht haben, sollten Sie die Ursache ermitteln.

Ursache ermitteln

Überprüfen Sie die Ausnahmemeldung, um die Ursache des Fehlers zu ermitteln. Nachdem Sie sich die Antwort angesehen haben, prüfen Sie die Anfrage auf eine mögliche Ursache. Einige Google Ads API-Fehlermeldungen enthalten fieldPathElements im Feld location des GoogleAdsError, um anzugeben, 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 der API falsche Informationen bereitstellt. Wir empfehlen dringend die Verwendung einer interaktiven Entwicklungsumgebung (Interactive Development Environment, IDE) wie Eclipse. Diese kostenlose Open-Source-IDE wird hauptsächlich zur Entwicklung von Java verwendet, verfügt jedoch über Plug-ins für andere Sprachen, die Ihnen bei der Fehlerbehebung hilft. Damit können Sie Haltepunkte setzen und Ihren Code Zeile für Zeile durchgehen.

Vergewissern Sie sich, dass die Anfrage mit den Eingaben in Ihrer Anwendung übereinstimmt. So kann es beispielsweise sein, dass der Kampagnenname nicht bei der Anfrage verwendet wird. Senden Sie unbedingt eine Feldmaske, die den gewünschten Aktualisierungen entspricht. Die Google Ads API unterstützt eine partielle Aktualisierung. Wenn in einer mutate-Anfrage ein Feld aus der Feldmaske weggelassen wird, bedeutet dies, dass es von der API ignoriert werden soll. Wenn Ihre Anwendung ein Objekt abruft, eine Änderung vornimmt und zurücksendet, schreiben Sie möglicherweise in ein Feld, das keine Aktualisierungen unterstützt. Lesen Sie in der Referenzdokumentation nach, ob es Einschränkungen dafür gibt, wann oder ob Sie das Feld aktualisieren können.

Hilfe

Es ist nicht immer möglich, das Problem selbst zu identifizieren und zu lösen. Wenn Sie eine Frage im Forum stellen, wird sie Tausenden von Entwicklern preisgegeben, die sich möglicherweise mit demselben Problem befassten.

Nehmen Sie möglichst viele Informationen in Ihre Abfragen auf. Dazu gehört beispielsweise Folgendes:

  • Bereinigte JSON-Anfrage und -Antwort. Achten Sie darauf, vertrauliche Informationen wie Ihr Entwickler-Token oder AuthToken zu entfernen.
  • Code-Snippets: Wenn Sie ein Problem in einer bestimmten Sprache haben oder Hilfe bei der Arbeit mit der API anfordern, fügen Sie ein Code-Snippet ein, um Ihre Vorgehensweise zu erklären.
  • RequestId. Dies ermöglicht Mitgliedern des Google Developer Relations-Teams, Ihre Anfrage zu finden, wenn sie in der Produktionsumgebung erstellt wurde. Wir empfehlen, in Ihren Logs die requestId, die in den Ausnahmen enthalten ist, die Antwortfehler enthalten, als Attribut enthalten ist, sowie mehr Kontext als die requestId allein.
  • Weitere Informationen wie Laufzeit-/Interpreterversion und 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).

Teilen empfohlen

Wenn Sie im Forum eine Frage zu einem Fehler gepostet haben, der dort noch nie aufgetaucht ist, und Sie die Lösung gefunden haben, sollten Sie diese dem Thread hinzufügen. Wenn ein Entwickler das nächste Mal das gleiche Problem hat, kann er es sofort lösen.

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.

Die Erstellung einer guten Reihe von Einheitentests trägt dazu bei, die Codequalität und -zuverlässigkeit erheblich zu verbessern. Außerdem wird dadurch das Testen neuer Änderungen beschleunigt, um sicherzustellen, dass sie die vorherige Funktionalität nicht beeinträchtigen. Eine gute Strategie zur Fehlerbehandlung ist auch der Schlüssel, um alle für die Fehlerbehebung erforderlichen Daten bereitzustellen.