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

Ошибки могут быть вызваны неправильной настройкой среды, ошибкой в программном обеспечении или недопустимыми входными данными от пользователя. В любом случае вам нужно будет устранить неполадку и либо исправить код, либо добавить логику для обработки ошибки пользователя. В этом руководстве приведены рекомендации по устранению ошибок 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 Developer Relations найти ваш запрос, если он был сделан в рабочей среде. Рекомендуем регистрировать значение request-id, которое содержится в заголовках ответов или исключениях, связанных с ошибками ответов, а также дополнительную информацию, помимо request-id.
  • Дополнительная информация, например версия среды выполнения или интерпретатора и платформа, также может быть полезна при устранении неполадок.

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

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

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

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

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