Видео: посмотрите доклад об обработке ошибок на семинаре 2019 года.
Ошибки могут быть вызваны неправильной настройкой среды, ошибкой в вашем программном обеспечении или неверным вводом пользователя. Независимо от источника, вам нужно будет устранить проблему и либо исправить код, либо добавить логику для обработки ошибки пользователя. В этом руководстве обсуждаются некоторые рекомендации по устранению ошибок Google Ads API.
Обеспечение связи
Убедитесь, что у вас есть доступ к Google Ads API и правильная настройка. Если ваш ответ возвращает какие-либо ошибки HTTP, убедитесь, что вы тщательно их исправляете и что вы получаете доступ к службам, которые собираетесь использовать, из своего кода.
Ваши учетные данные включены в ваш запрос , чтобы службы могли аутентифицировать вас. Ознакомьтесь со структурой запросов и ответов Google Ads API, особенно если вы собираетесь обрабатывать вызовы без использования клиентских библиотек. Каждая клиентская библиотека поставляется с конкретными инструкциями о том, как включить ваши учетные данные в файл конфигурации (см. README клиентской библиотеки).
Убедитесь, что вы используете правильные учетные данные. Наш быстрый старт проведет вас через процесс приобретения нужного вам набора. Например, следующий сбой ответа показывает, что пользователь отправил неверные учетные данные для аутентификации:
{ "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" } ] } }
Если вы выполнили эти действия, но проблемы по-прежнему возникают, пришло время заняться устранением ошибок API Google Рекламы.
Определение проблемы
API Google Рекламы обычно сообщает об ошибках в виде объекта ошибки JSON, содержащего список ошибок в ответе. Эти объекты предоставляют код ошибки, а также сообщение, объясняющее причину ее возникновения. Это ваши первые сигналы о том, в чем может быть проблема.
{
"errors": [
{
"errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
"message": "The field mask contained an invalid field: 'keyword/matchtype'.",
"location": { "operationIndex": "1" }
}
]
}
Все наши клиентские библиотеки выдают исключения, инкапсулирующие ошибки в ответе. Захват этих исключений и распечатка сообщений в журнале или на экране устранения неполадок — отличный способ начать. Интеграция этой информации с другими зарегистрированными событиями в вашем приложении дает хорошее представление о том, что может вызвать проблему. После того как вы обнаружите ошибку в журналах, вам нужно будет выяснить, что она означает.
Исследование ошибки
Обратитесь к нашей документации по типичным ошибкам , в которой описаны наиболее часто встречающиеся ошибки. В нем описывается сообщение об ошибке, соответствующие ссылки на API, а также способы предотвращения или устранения ошибки.
Если в нашей документации по типичным ошибкам ошибка конкретно не упоминается, обратитесь к нашей справочной документации и найдите строку ошибки.
Найдите наши каналы поддержки , чтобы получить доступ к другим разработчикам, которые делятся своим опытом использования API. Возможно, кто-то другой столкнулся с вашей проблемой и решил ее.
Если вы столкнулись с какими-либо ошибками, не задокументированными, сообщите об этом нам на форуме.
Посетите Справочный центр Google Рекламы, чтобы получить помощь в устранении неполадок с проверкой или ограничением аккаунта — API Google Рекламы наследует правила и ограничения основного продукта Google Рекламы.
Сообщения в блогах иногда могут стать хорошим подспорьем при устранении неполадок вашего приложения.
После исследования ошибки пришло время определить первопричину.
Определение причины
Проверьте сообщение об исключении, чтобы определить причину ошибки. Просмотрев ответ, проверьте запрос на предмет возможной причины. Некоторые сообщения об ошибках API Google Рекламы включают fieldPathElements
в поле location
GoogleAdsError
, указывающее, где в запросе произошла ошибка. Например:
{
"errors": [
{
"errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
"message": "Criteria type can not be targeted.",
"trigger": { "stringValue": "" },
"location": {
"operationIndex": "0",
"fieldPathElements": [ { "fieldName": "keyword" } ]
}
}
]
}
При устранении проблемы может случиться так, что ваше приложение предоставляет API неверную информацию. Мы настоятельно рекомендуем использовать интерактивную среду разработки (IDE), такую как Eclipse (бесплатную среду IDE с открытым исходным кодом, которая в основном используется для разработки Java, но имеет плагины для других языков), чтобы помочь вам в отладке. Он позволяет вам устанавливать точки останова и выполнять код построчно.
Дважды проверьте, соответствует ли запрос входным данным вашего приложения (например, название кампании может не попасть в запрос). Убедитесь, что вы отправляете маску поля , соответствующую обновлениям, которые вы хотите внести: API Google Рекламы поддерживает редкие обновления. Отсутствие поля в маске поля в запросе на изменение означает, что API следует оставить его в покое. Если ваше приложение получает объект, вносит изменения и отправляет его обратно, возможно, вы записываете в поле, которое не поддерживает обновление. Проверьте описание поля в справочной документации, чтобы узнать, существуют ли какие-либо ограничения на то, когда и можно ли обновлять поле.
Как получить помощь
Не всегда возможно выявить и решить проблему самостоятельно. Если вы зададите вопрос на форуме, ваш вопрос будет доступен тысячам разработчиков, которым, возможно, приходилось сталкиваться с той же проблемой.
Постарайтесь включить в свои запросы как можно больше информации. Рекомендуемые предметы включают в себя:
- Санированный запрос и ответ JSON. Обязательно удалите конфиденциальную информацию, такую как токен разработчика или AuthToken.
- Фрагменты кода. Если у вас возникла проблема, связанная с языком, или вам нужна помощь в работе с API, включите фрагмент кода, который поможет объяснить, что вы делаете.
- Ид запроса. Это позволит членам команды Google Developer Relations найти ваш запрос, если он сделан в производственной среде. Мы рекомендуем зарегистрировать в ваших журналах requestId, включенный в качестве свойства в исключения, которые инкапсулируют ошибки ответа, а также больше контекста, чем просто requestId.
- Дополнительная информация, такая как версия среды выполнения/интерпретатора и платформа, также может быть полезна при устранении неполадок.
Решение проблемы
Теперь, когда вы выяснили проблему и нашли решение, пришло время внести изменения и протестировать исправление на тестовой учетной записи (предпочтительно) или на рабочей учетной записи (если ошибка применима только к данным в определенной рабочей учетной записи).
Рассмотрите возможность обмена
Если вы разместили на форуме вопрос относительно ошибки, которая раньше там не встречалась, и нашли решение, рассмотрите возможность добавления его в ветку. В следующий раз, когда у разработчика возникнет такая же проблема, он сможет решить ее сразу.
Следующие шаги
Теперь, когда вы решили эту проблему, заметили ли вы какие-либо способы улучшить свой код, чтобы избежать этого?
Создание хорошего набора модульных тестов помогает значительно улучшить качество и надежность кода. Это также ускоряет процесс тестирования новых изменений, чтобы гарантировать, что они не нарушат предыдущую функциональность. Хорошая стратегия обработки ошибок также является ключом к получению всех необходимых данных для устранения неполадок.