Устранение неполадок

Ошибки могут быть вызваны неправильной настройкой среды, ошибкой в программном обеспечении или недопустимыми входными данными от пользователя. В любом случае вам нужно будет устранить неполадку, исправив код или добавив логику для обработки ошибки пользователя. В этом руководстве рассказывается о том, как устранять ошибки, возникающие при работе с Google Ads API.

Проверьте подключение

  1. Убедитесь, что у вас есть доступ к Google Ads API и он правильно настроен. Если в ответе есть ошибки HTTP, убедитесь, что вы правильно их устранили и что ваш код обращается к нужным сервисам.

  2. Учетные данные встраиваются в запрос, чтобы сервисы могли вас аутентифицировать. Ознакомьтесь со структурой запросов и ответов Google Ads API, особенно если вы планируете обрабатывать вызовы без использования клиентских библиотек. К каждой клиентской библиотеке прилагаются инструкции по добавлению учетных данных в файл конфигурации (см. файл README).

  3. Убедитесь, что вы используете правильные учетные данные. В нашем кратком руководстве описано, как получить нужный набор. Например, следующий ответ об ошибке указывает на то, что пользователь отправил недействительные учетные данные для аутентификации:

    {
      "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"
          }
        ]
      }
    }
    

Если вы выполнили описанные выше действия, но проблема не решена, перейдите к устранению ошибок Google Ads API.

Определите проблему

Обычно Google Ads API сообщает об ошибках в виде объекта JSON, содержащего список ошибок в ответе. Эти объекты содержат код ошибки и сообщение с подробным описанием причины ее возникновения. Они помогут вам понять, в чем может быть проблема.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 1 }
        ]
      }
    }
  ]
}

Все наши клиентские библиотеки генерируют исключения, которые содержат ошибки в ответе. Для начала можно фиксировать эти исключения и выводить сообщения в журнал или на экран устранения неполадок. Сопоставив эту информацию с другими зарегистрированными событиями в приложении, вы сможете понять, что могло вызвать проблему. После того как вы найдете ошибку в журналах, вам нужно будет выяснить, что она означает.

Изучите ошибку

  1. Ознакомьтесь с нашей документацией по распространенным ошибкам, в которой описаны наиболее часто встречающиеся ошибки. В ней описывается сообщение об ошибке, приводятся ссылки на документацию по API и рассказывается, как избежать ошибки или устранить ее.

  2. Если в документации по распространенным ошибкам нет информации о вашей проблеме, ознакомьтесь с справочной документацией и найдите строку ошибки.

  3. Поищите информацию на наших каналах поддержки. Там вы можете найти сообщения других разработчиков, которые делятся своим опытом работы с API. Возможно, кто-то уже сталкивался с вашей проблемой и нашел ее решение.

  4. Если у вас возникли проблемы с устранением неполадок проверки или лимитами в аккаунте, посетите Справочный центр Google Рекламы. В Google Ads API действуют те же правила и ограничения, что и в основном рекламном продукте Google Рекламы.

  5. Записи в блогах иногда могут быть полезны при устранении неполадок в приложении.

  6. Если вы столкнулись с ошибкой, которая не описана в документации, обратитесь в службу поддержки.

После изучения ошибки необходимо определить ее основную причину.

Определите причину

Чтобы определить причину ошибки, проверьте сообщение об исключении. Проанализировав ответ, проверьте запрос на наличие возможных причин. Некоторые сообщения об ошибках Google Ads API содержат fieldPathElements в поле location объекта GoogleAdsError, что указывает на место возникновения ошибки в запросе. Пример:

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

При устранении неполадок вы можете обнаружить, что ваше приложение передает в API неверную информацию. Мы настоятельно рекомендуем использовать отладчик интегрированной среды разработки (IDE), чтобы устанавливать точки останова, пошагово выполнять код и проверять созданные полезные нагрузки запросов до их отправки.

Убедитесь, что запрос соответствует данным, указанным в приложении (например, название кампании может не передаваться в запросе). Убедитесь, что вы отправили маску поля, соответствующую изменениям, которые вы хотите внести. Google Ads API поддерживает неполные обновления. Если поле не указано в маске полей в запросе mutate, API не будет его изменять. Если ваше приложение получает объект, вносит в него изменения и отправляет обратно, возможно, вы пытаетесь записать данные в поле, которое нельзя изменить. Проверьте описание поля в справочной документации, чтобы узнать, есть ли ограничения на то, когда или можно ли вообще изменять это поле.

Куда обратиться за помощью

Не всегда удается выявить и решить проблему самостоятельно. Вы можете обратиться за помощью в службу поддержки.

Постарайтесь указать в запросе как можно больше подробностей. Рекомендуемые товары включают:

  • Очищенный запрос и ответ JSON. Удалите конфиденциальную информацию, например токен доступа OAuth, токен обновления и идентификаторы клиентов.
  • Фрагменты кода. Если у вас возникла проблема, связанная с языком программирования, или вам нужна помощь в работе с API, приложите фрагмент кода, чтобы мы могли понять, что вы делаете.
  • request-id. Это позволит специалистам Google Developers по связям с разработчиками найти ваш запрос, если он был сделан в рабочей среде. Рекомендуем регистрировать request-id, включенные в заголовки ответов или исключения, которые содержат ошибки ответов, а также больше контекста, чем просто request-id.
  • Дополнительная информация, например версия среды выполнения или интерпретатора и платформа, также может быть полезна при устранении неполадок.

Устраните проблему

Итак, вы узнали, в чем состоит проблема и как ее решить. Теперь настало время приступить к отладке. Для этого рекомендуется использовать тестовый аккаунт, но если ошибка относится только к данным в конкретном рабочем аккаунте, можно задействовать его.

Дальнейшие действия

Даже если ошибка устранена, попробуйте изменить код так, чтобы предотвратить подобные ситуации в будущем.

Создание хорошего набора модульных тестов помогает значительно улучшить качество и надежность кода. Кроме того, это ускоряет тестирование новых изменений, чтобы убедиться, что они не нарушили работу предыдущих функций. Хорошая стратегия обработки ошибок также является ключом к получению всех необходимых данных для устранения неполадок.