понедельник, 1 декабря 2008 г.

Общие ошибки, приводящие к отказам SOAP (Часть IV)

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

Отказы проверки

В этом случае Вы получаете сообщение об ошибке «Один или несколько переданных элементов не прошли проверку» («One or more input elements failed validation») – код ошибки 122. В этом случае в ответе детализируются поля, содержащие последовательность элементов ApiError с элементами найденных ошибок. Могут быть приведены следующие поля:
  • index: указывается индекс элемента в исходном массиве, который вызвал ошибку;
  • code: указывается тип ошибки;
  • field: имя поля исходного элемента, которое содержит ошибку;
  • trigger: строка с описанием ошибки;
  • isExemptable: булева переменная, которая показывает возможность освободиться от ошибки. По умолчанию – «false»;
  • textIndex: место в тексте, вызвавшее ошибку;
  • textLength: длина строки, которая привела к ошибке;
  • detail: описание ошибки.
Общая ошибка, которая попадают в эту категорию, это ошибка нарушения Политики объявлений. Вы получите сообщение «Указанный текст нарушает политику Google» («The text specified for this Creative violates Google policy») – код ошибки 21, при попытке добавить объявление, не соответствующее Политике объявлений Google. Чтобы избежать этой ошибки, проверяйте объявления, используя checkAds(), на их соответствие Политике объявлений Google, и, только потом, добавляйте, используя addAd(). Если объявление нарушает политику, то checkAds() должна возвратить последовательность объектов ApiError, которые описывают нарушения политики. Вы можете, таким образом, проверить поля, которые вызвали нарушения политики. Кроме того, некоторые нарушения могут освобождаться, если флаг isExemptable установлен в «true». В этом случае Вы можете запросить освобождение от политики и добавить свое объявление.

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


Автор: Anash Oommen

Общие ошибки, приводящие к отказам SOAP (Часть III)

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

Операция не существует

Также разработчики могут получать сообщение об ошибке «Тело запроса не содержит оператора или указанного оператора не существует» («The request body did not contain an operation or the specified operation does not exist») – код ошибки 116.
  • Наиболее очевидной ошибкой является то, что вызываемый метод не существует. Это может произойти из-за опечатки в имени метода в запросе к SOAP, например GetAccountInfo вместо getAccountInfo. Это также может произойти, если Ваш запрос к SOAP обращается к несуществующей веб-службе.
  • Вы можете также получить эту ошибку, если неправильно указали пространство имен для Вашего метода. Например, указанно ниже обращение к https://adwords.google.com/api/adwords/v12/AccountService вызовет ошибку:
<soap:Body>
    <getAccountInfo xmlns="https://adwords.google.com/api/adwords/v11"/>
  </soap:Body>

AdWords API будет игнорировать все идентификаторы, которые не входят в пространство имен, и сообщит об ошибке.

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


Автор: Команда AdWords API