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

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

Первый этап: определите, в чем заключается проблема

Первый шаг на пути к решению проблемы – сбор информации. В отчетах API AdWords обычно выводятся сообщения об ошибках по протоколу SOAP (за исключением случаев, когда XML не производит проверку на соответствие WSDL). Их описание содержит элемент faultstring, а также подробное объяснение причин проблемы. Начните с анализа этой информации.

<soap:Fault>
 <faultcode>soap:Server</faultcode>
 <faultstring>
  [EntityNotFound.INVALID_ID @ operations[0].operand.campaignId; trigger:'CampaignId: 123']
 </faultstring>
 <detail>
  <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/v201802">
   <message>
    [EntityNotFound.INVALID_ID @ operations[0].operand.campaignId; trigger:'CampaignId: 123']
   </message>
   <ApplicationException.Type>ApiException</ApplicationException.Type>
   <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="EntityNotFound">
    <fieldPath>operations[0].operand.campaignId</fieldPath>
    <fieldPathElements>
      <field>operations</field>
      <index>0</index>
    </fieldPathElements>
    <fieldPathElements>
      <field>operand</field>
    </fieldPathElements>
    <fieldPathElements>
      <field>campaignId</field>
    </fieldPathElements>
    <trigger>CampaignId: 123</trigger>
    <errorString>EntityNotFound.INVALID_ID</errorString>
    <ApiError.Type>EntityNotFound</ApiError.Type>
    <reason>INVALID_ID</reason>
   </errors>
  </ApiExceptionFault>
 </detail>
</soap:Fault>

Многие клиентские библиотеки генерируют исключение, содержащее ошибку SOAP. Наборы инструментов SOAP в основном действуют одинаково. Подобные исключения обычно заносятся в журналы приложения, которые в дальнейшем можно изучить. Рекомендуем начинать отладку с этого шага. В масштабных приложениях (особенно если используются клиентские библиотеки) журнал может содержать более подробную информацию, которая поможет решить проблему. В наших клиентских библиотеках поддерживается сохранение записей о SOAP-запросах. Подробнее об этом читайте в файле README нужной библиотеки.

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

Второй этап: изучите справочную информацию об ошибке

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

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

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

Информация в нашем блоге также может помочь при отладке приложений. В статьях Справочного центра вы найдете полезные сведения в случае проблем с проверкой или ограничениями аккаунтов: в отношении API действуют те же правила, что и в веб-интерфейсе AdWords.

После того как вы получили подробные сведения о ошибке, необходимо установить ее причину.

Третий этап: выявите причину ошибки

Снова обратитесь к журналам – они помогут вам понять, что вызвало ошибку. Многие библиотеки сохраняют полезную информацию на уровне отладки или справки. Наши клиентские библиотеки поддерживают сохранение отправленных и принятых SOAP-сообщений. Просмотрев SOAP-отклик, проверьте SOAP-запрос – зачастую это помогает узнать, что произошло. Некоторые сообщения об ошибках API содержат элемент fieldPath, который показывает, в каком месте запроса возник сбой.

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

Ещё раз проверьте, соответствует ли SOAP-запрос входным данным приложения (возможно, например, что в запросе отсутствует название кампании). Попробуйте добавить поля в запрос или удалить их – API AdWords поддерживает частичные обновления. Если значение поля не указано, API проигнорирует это поле. Если приложение извлекает объект, изменяет и возвращает его, возможно, вы сделали запись в поле, которое не поддерживает обновлений. Сверьтесь со справочной документацией: поля, помеченные как ReadOnly, нельзя отправлять в запросах.

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

Не все проблемы удается выявить и решить самостоятельно. Если вы зададите вопрос на форуме, его увидят тысячи разработчиков. Возможно, некоторые из них уже сталкивались с подобными неполадками и помогут вам советом.

Опишите проблему как можно подробнее. Рекомендуется указать:

  • Очищенные запрос и отклик SOAP XML. Удалите всю конфиденциальную информацию, в частности ваш идентификатор разработчика или AuthToken. Представьте структуру запроса и отклика: это пригодится при устранении неполадок.
  • Фрагменты кода. Если неполадка связана с конкретным языком программирования или вам требуется помощь в работе с API, фрагмент кода поможет вам более четко описать ситуацию.
  • RequestId – этот элемент поможет представителям Google оперативно отследить ваш запрос, если он был сделан за последние 8 дней. Мы рекомендуем по возможности включать в запрос журналы SOAP XML, поскольку они содержат не только идентификатор requestId, но и дополнительные данные. Наконец, могут пригодиться и такие сведения, как платформа, а также версия интерпретатора или среды выполнения.

Четвертый этап: устраните ошибку

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

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

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

Оставить отзыв о...

Текущей странице
Нужна помощь? Обратитесь в службу поддержки.