Film: obejrzyj prezentację na temat obsługi błędów z warsztatów w 2019 r.
Błędy mogą być spowodowane nieprawidłową konfiguracją środowiska, błędem w oprogramowaniu lub nieprawidłowym działaniem użytkownika. Niezależnie od źródła musisz rozwiązać problem i naprawić kod lub dodać logikę obsługi błędu użytkownika. W tym przewodniku omawiamy sprawdzone metody rozwiązywania problemów z błędami w interfejsie Google Ads API.
Sprawdź połączenie
Sprawdź, czy masz dostęp do interfejsu Google Ads API i czy jest on prawidłowo skonfigurowany. Jeśli w odpowiedzi wystąpią błędy HTTP, dokładnie je sprawdź i upewnij się, że kod uzyskuje dostęp do usług, z których chcesz korzystać.
Twoje dane logowania są osadzone w prośbie, aby usługi mogły Cię uwierzytelnić. Zapoznaj się ze strukturą żądań i odpowiedzi interfejsu Google Ads API, zwłaszcza jeśli zamierzasz obsługiwać wywołania bez używania bibliotek klienta. Każda biblioteka klienta jest dostarczana z konkretnymi instrukcjami dotyczącymi umieszczania danych logowania w pliku konfiguracyjnym (zapoznaj się z plikiem README biblioteki klienta).
Sprawdź, czy używasz prawidłowych danych logowania. Nasz szybki przewodnik przeprowadzi Cię przez proces uzyskiwania odpowiedniego zestawu. Na przykład poniższa odpowiedź o niepowodzeniu pokazuje, że użytkownik wysłał nieprawidłowe dane uwierzytelniające:
{ "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" } ] } }
Jeśli po wykonaniu tych czynności nadal występują problemy, czas zająć się rozwiązywaniem błędów interfejsu Google Ads API.
Określanie problemu
Interfejs Google Ads API zwykle zgłasza błędy jako obiekt błędu JSON zawierający listę błędów w odpowiedzi. Obiekty te zawierają kod błędu oraz komunikat wyjaśniający, dlaczego wystąpił. Są to pierwsze sygnały, które mogą wskazywać na problem.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
Wszystkie nasze biblioteki klienta zgłaszają wyjątki, które zawierają błędy w odpowiedzi. Rejestrowanie tych wyjątków i wyświetlanie komunikatów w dzienniku lub na ekranie rozwiązywania problemów to świetny sposób na rozpoczęcie. Zintegrowanie tych informacji z innymi zdarzeniami rejestrowanymi w aplikacji daje dobry wgląd w to, co może powodować problem. Po zidentyfikowaniu błędu w dziennikach musisz ustalić, co on oznacza.
Sprawdź błąd
Zapoznaj się z naszą dokumentacją Typowe błędy, w której znajdziesz informacje o najczęstszych błędach. Zawiera on opis komunikatu o błędzie, odpowiednie odniesienia do interfejsu API oraz informacje o tym, jak uniknąć błędu lub go obsłużyć.
Jeśli w naszej dokumentacji dotyczącej typowych błędów nie ma informacji o danym błędzie, zapoznaj się z naszą dokumentacją referencyjną i poszukaj ciągu znaków błędu.
Skorzystaj z naszych kanałów pomocy, aby uzyskać dostęp do innych deweloperów, którzy dzielą się swoimi doświadczeniami związanymi z interfejsem API. Ktoś inny mógł już napotkać i rozwiązać problem, który występuje u Ciebie.
Aby uzyskać pomoc w rozwiązywaniu problemów z weryfikacją lub limitami kont, odwiedź Centrum pomocy Google Ads. Interfejs Google Ads API dziedziczy reguły i ograniczenia podstawowej usługi Google Ads.
Posty na blogu mogą czasami być dobrym źródłem informacji podczas rozwiązywania problemów z aplikacją.
Jeśli napotkasz błędy, których nie ma w dokumentacji, skontaktuj się z zespołem pomocy.
Po zbadaniu błędu czas ustalić jego główną przyczynę.
Znajdź przyczynę
Sprawdź komunikat o wyjątku, aby określić przyczynę błędu. Po zapoznaniu się z odpowiedzią sprawdź żądanie, aby znaleźć możliwą przyczynę. Niektóre komunikaty o błędach interfejsu Google Ads API zawierają w polu location element fieldPathElements w GoogleAdsError, który wskazuje, gdzie w żądaniu wystąpił błąd. Na przykład:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
Podczas rozwiązywania problemu możesz zauważyć, że aplikacja przekazuje do interfejsu API nieprawidłowe informacje. Zdecydowanie zalecamy korzystanie z interaktywnego środowiska programistycznego (IDE), takiego jak Eclipse (bezpłatne środowisko IDE o otwartym kodzie źródłowym, które jest używane głównie do tworzenia aplikacji w języku Java, ale ma wtyczki do innych języków), aby ułatwić sobie debugowanie. Umożliwia ustawianie punktów przerwania i przechodzenie przez kod wiersz po wierszu.
Sprawdź, czy żądanie jest zgodne z danymi wejściowymi aplikacji (np. nazwa kampanii może nie być uwzględniona w żądaniu). Pamiętaj, aby wysłać maskę pola, która odpowiada zmianom, jakie chcesz wprowadzić – interfejs Google Ads API obsługuje aktualizacje rzadkie. Pominięcie pola w masce pola w żądaniu zmiany oznacza, że interfejs API powinien pozostawić to pole bez zmian. Jeśli aplikacja pobiera obiekt, wprowadza w nim zmiany i odsyła go z powrotem, może zapisywać dane w polu, które nie obsługuje aktualizacji. Sprawdź opis pola w dokumentacji referencyjnej, aby dowiedzieć się, czy istnieją ograniczenia dotyczące tego, kiedy lub czy możesz zaktualizować to pole.
Jak uzyskać pomoc
Nie zawsze można samodzielnie zidentyfikować i rozwiązać problem. Aby uzyskać pomoc, możesz skontaktować się z zespołem pomocy.
W zapytaniach podawaj jak najwięcej informacji. Polecane produkty:
- Oczyszczone żądanie i odpowiedź w formacie JSON. Pamiętaj, aby usunąć informacje poufne, takie jak token dewelopera lub token autoryzacji.
- Fragmenty kodu. Jeśli masz problem związany z konkretnym językiem lub potrzebujesz pomocy w korzystaniu z interfejsu API, dołącz fragment kodu, aby wyjaśnić, co robisz.
- RequestId. Dzięki temu członkowie zespołu ds. relacji z deweloperami Google będą mogli znaleźć Twoje zgłoszenie, jeśli zostało ono przesłane w środowisku produkcyjnym. Zalecamy rejestrowanie w logach identyfikatora żądania (requestId) dołączonego jako właściwość w wyjątkach, które obejmują błędy odpowiedzi, a także większej ilości kontekstu niż sam identyfikator żądania.
- Dodatkowe informacje, takie jak czas działania lub wersja interpretera i platforma, mogą być przydatne podczas rozwiązywania problemów.
Rozwiąż problem
Gdy już zidentyfikujesz problem i znajdziesz rozwiązanie, możesz wprowadzić zmianę i przetestować poprawkę na koncie testowym (zalecane) lub na koncie produkcyjnym (jeśli błąd dotyczy tylko danych na określonym koncie produkcyjnym).
Następne kroki
Skoro udało Ci się rozwiązać ten problem, czy widzisz jakieś sposoby na ulepszenie kodu, aby uniknąć go w przyszłości?
Stworzenie dobrego zestawu testów jednostkowych znacznie poprawia jakość i niezawodność kodu. Przyspiesza też proces testowania nowych zmian, aby mieć pewność, że nie wpłynęły one negatywnie na dotychczasowe funkcje. Dobra strategia obsługi błędów jest też kluczowa w udostępnianiu wszystkich danych niezbędnych do rozwiązywania problemów.