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

Видео : Посмотрите доклад об обработке ошибок с семинара 2019 года.

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

Обеспечьте подключение

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

  2. Ваши учетные данные внедряются в ваш запрос для аутентификации сервисами. Ознакомьтесь со структурой запросов и ответов API Google Ads, особенно если вы собираетесь обрабатывать вызовы без использования клиентских библиотек. Каждая клиентская библиотека поставляется с подробными инструкциями о том, как включить ваши учетные данные в файл конфигурации (см. 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"
          }
        ]
      }
    }
    

Если вы выполнили эти шаги, но проблемы всё ещё сохраняются, пришло время заняться устранением ошибок API Google Ads.

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

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

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

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

Найдите ошибку.

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

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

  3. Воспользуйтесь нашими каналами поддержки , чтобы найти других разработчиков, которые делятся своим опытом работы с API. Возможно, кто-то уже сталкивался с вашей проблемой и решил её.

  4. Для получения помощи в устранении неполадок, связанных с проверкой данных или ограничениями учетных записей, обратитесь в Справочный центр Google Ads — API Google Ads наследует правила и ограничения основного продукта Google Ads.

  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": {
        "operationIndex": "0",
        "fieldPathElements": [ { "fieldName": "keyword" } ]
      }
    }
  ]
}

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

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

Как получить помощь

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

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

  • Очищенные JSON-запросы и ответы. Обязательно удалите конфиденциальную информацию, такую ​​как ваш токен разработчика или AuthToken.
  • Фрагменты кода. Если у вас возникла проблема, связанная с конкретным языком программирования, или вы запрашиваете помощь в работе с API, приложите фрагмент кода, чтобы объяснить, что вы делаете.
  • RequestId. Это позволяет сотрудникам отдела по связям с разработчиками Google найти ваш запрос, если он отправлен в рабочую среду. Мы рекомендуем регистрировать в журналах requestId, который будет добавлен в качестве свойства к исключениям, содержащим ошибки ответа, а также предоставлять больше контекста, чем просто requestId.
  • Дополнительная информация, такая как версия среды выполнения или интерпретатора, а также платформа, также может быть полезна при устранении неполадок.

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

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

Следующие шаги

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

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