Fehlerbehebung

Wenn Sie Software für den Zugriff auf die AdWords API schreiben, werden Sie früher oder später auf eine Fehlermeldung stoßen. Diese könnte durch einen Fehler in Ihrem Programm oder eine ungültige Eingabe von einem Nutzer ausgelöst werden. Unabhängig von der Ursache müssen Sie den Fehler beheben und entweder Ihren Code korrigieren oder eine Logik hinzufügen, durch die der Nutzerfehler behandelt wird. In diesem Leitfaden stellen wir einige Best Practices für die Fehlerbehebung im Zusammenhang mit der AdWords API vor.

Erster Schritt: Bestimmen Sie, was genau das Problem ist

Der erste Schritt zur Fehlerbehebung besteht darin, mehr Informationen über das Problem zu sammeln. Die AdWords API gibt normalerweise SOAP-Fehlermeldungen aus – es sei denn, die XML wird nicht gemäß WSDL validiert. Die Meldungen enthalten einen faultstring sowie Details dazu, weshalb der Fehler aufgetreten ist. Diese Angaben sind Ihr erster Hinweis darauf, worin das Problem besteht.

<soap:Fault>
 <faultcode>soap:Server</faultcode>
 <faultstring>
  [EntityNotFound.INVALID_ID @ operations[0].operand.campaignId; trigger:'CampaignId: 123']
 </faultstring>
 <detail>
  <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/v201802">
   <message>
    [EntityNotFound.INVALID_ID @ operations[0].operand.campaignId; trigger:'CampaignId: 123']
   </message>
   <ApplicationException.Type>ApiException</ApplicationException.Type>
   <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="EntityNotFound">
    <fieldPath>operations[0].operand.campaignId</fieldPath>
    <fieldPathElements>
      <field>operations</field>
      <index>0</index>
    </fieldPathElements>
    <fieldPathElements>
      <field>operand</field>
    </fieldPathElements>
    <fieldPathElements>
      <field>campaignId</field>
    </fieldPathElements>
    <trigger>CampaignId: 123</trigger>
    <errorString>EntityNotFound.INVALID_ID</errorString>
    <ApiError.Type>EntityNotFound</ApiError.Type>
    <reason>INVALID_ID</reason>
   </errors>
  </ApiExceptionFault>
 </detail>
</soap:Fault>

Die meisten unserer Clientbibliotheken geben eine Ausnahme zurück, in der der SOAP-Fehler eingekapselt wird. Ähnlich verhalten sich die meisten SOAP-Toolkits. Diese Ausnahmen führen normalerweise zu Anwendungsprotokollen, die Sie sich später ansehen können. Ein Blick auf diese Protokolle ist ein guter Einstieg in die Fehlerbehebung. Von vielen größeren Anwendungen – vor allem solchen mit Drittanbieterbibliotheken – können auch zusätzliche Informationen protokolliert werden, die Ihnen später bei der Lösung dieses Problems von Nutzen sein können. Unsere Clientbibliotheken unterstützen die Protokollierung von SOAP-Anfragen. Weitere Informationen dazu finden Sie in der Infodatei Ihrer Bibliothek.

Sobald Sie wissen, was genau geschehen ist, müssen Sie herausfinden, was der Fehler bedeutet.

Zweiter Schritt: Untersuchen Sie den Fehler

Beim Untersuchen der Fehler sollten Sie immer zuerst unsere Dokumentation zu häufigen Fehlern lesen. In diesem Dokument wird ein Großteil der Fehler behandelt, die unsere Entwickler häufig beschäftigen. Es enthält eine Beschreibung der Fehlermeldung, relevante API-Referenzen und Informationen dazu, wie der Fehler vermieden oder behoben werden kann.

Wenn ein Fehler in dieser Dokumentation nicht aufgeführt ist, sollten Sie in unseren Versionshinweisen nach dem Fehlerstring suchen.

Neben der Dokumentation und den Versionshinweisen stehen weitere nützliche Informationsquellen zur Verfügung. In unseren Foren tauschen sich viele AdWords API-Entwickler über ihre Erfahrungen mit der API aus. Dort nachzusehen, ist immer eine gute Idee, wenn Sie ein Problem mit Ihrer Anwendung beheben möchten. Denn möglicherweise hat ein anderer bereits eine entsprechende Lösung gefunden. Wenn Sie auf Fehlern stoßen, die nicht dokumentiert sind, machen Sie uns im Forum darauf aufmerksam. Als letzte Möglichkeit können Sie eine Internetsuche zur Fehlermeldung durchführen.

In Blogposts finden Sie gelegentlich ebenfalls nützliche Hinweise zur Fehlerbehebung. Und bei Problemen mit der Validierung oder dem Kontolimit ist die AdWords-Hilfe eine gute Informationsquelle. Denn für die AdWords API gelten die Regeln und Beschränkungen des AdWords-Hauptprodukts.

Sobald Sie Näheres über den Fehler wissen, können Sie sich an die Ursachenforschung machen.

Dritter Schritt: Versuchen Sie herauszufinden, was genau die Fehlermeldung verursacht hat

Sehen Sie sich die Protokolle an, um die Fehlerursache zu ermitteln. Viele Bibliotheken zeichnen nützliche Informationen zur Fehlerbehebung auf. In unseren Clientbibliotheken können Sie die gesendete und die empfangene SOAP-Nachricht protokollieren. Überprüfen Sie nach der SOAP-Antwort die SOAP-Anfrage auf eine mögliche Ursache. Einige API-Fehlermeldungen enthalten auch einen "fieldPath", der angibt, wo in der Anfrage der Fehler aufgetreten ist.

Es ist möglich, dass Ihre Anwendung bei der Fehlersuche die falschen Informationen an die API sendet. Wir empfehlen daher ausdrücklich, eine interaktive Entwicklungsumgebung (Interactive Development Environment, IDE) wie etwa Eclipse zu verwenden. Eclipse ist eine kostenlose Open-Source-IDE, die hauptsächlich zur Entwicklung von Java verwendet wird, aber auch über Plug-ins für andere Programmiersprachen verfügt. Damit können Sie Programmstopps setzen und Ihren Code Zeile für Zeile durchgehen.

Überprüfen Sie genau, ob die SOAP-Anforderung zu den Eingaben Ihrer Anwendung passt. Es kann z. B. sein, dass der Name der Kampagne nicht in die Anforderung aufgenommen wird. Sie könnten auch versuchen, Felder aus der Anfrage zu entfernen oder zu dieser hinzuzufügen – die AdWords API unterstützt eine partielle Aktualisierung. Wird ein Feld ausgelassen, bedeutet dies, dass es von der API ignoriert werden soll. Wenn Ihre Anwendung ein Objekt abruft, es verändert und zurücksendet, ist es möglich, dass Sie in ein Feld schreiben, das keine Aktualisierungen unterstützt. Lesen Sie unsere Versionshinweise. Felder, die als ReadOnly gekennzeichnet sind, sollten nicht in einer Anfrage gesendet werden.

So erhalten Sie Hilfe

Es ist nicht immer möglich, ein Problem ganz alleine zu identifizieren und zu lösen. Wenn Sie eine Frage im Forum stellen, wird sie von Tausenden Entwicklern gelesen, die sich eventuell bereits mit diesem Problem befasst haben und Ihnen daher nützliche Tipps geben können.

Wenn Sie Hilfe im Forum suchen, sollte Ihre Anfrage so viele Informationen wie möglich enthalten. Dazu gehört beispielsweise Folgendes:

  • Bereinigte SOAP-XML-Anfrage und -Antwort: Achten Sie darauf, vertrauliche Informationen wie Ihr Entwickler-Token oder AuthToken zu entfernen. Die Angabe der Struktur Ihrer Anfrage/Antwort ist für alle nützlich, die nach Fehlerursachen suchen.
  • Code-Snippets: Wenn Sie ein Problem haben, das spezifisch für die jeweilige Programmiersprache ist, oder um Hilfe bei der Arbeit mit der API bitten, kann das Einfügen eines Code-Snippets Aufschluss über Ihre Aktionen geben.
  • RequestId: Diese Information hilft Mitgliedern des Google Developer Relations-Teams, Ihre Anfrage zu finden, wenn sie in den letzten acht Tagen in der Produktionsumgebung erstellt wurde. Sie sollten auch die SOAP-XML-Protokolle einbeziehen, weil diese die requestId und mehr Kontext als die RequestId alleine enthalten. Zusätzliche Informationen, etwa zur Laufzeit-/Interpreter-Version und zur Plattform, können bei der Fehlersuche ebenfalls hilfreich sein.

Vierter Schritt: Beheben Sie das Problem

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).

Weitere Vorgehensweise

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. Wir schreiben Modultests für unsere eigenen Clientbibliotheken und empfehlen Ihnen, dies ebenfalls zu tun. Vorbeugen ist besser als Korrigieren: Warten Sie nicht erst auf Fehlerberichte, sondern schreiben Sie Tests. So lassen sich Programmfehler schneller finden und beheben.

Feedback geben zu...