Распространенные проблемы

В этой статье вы найдете ответы на наиболее частые вопросы участников группы AdWords Scripts Forum.

Наиболее распространенные ошибки JavaScript

Сбой скрипта с ошибкой "Не удается обнаружить функцию FUNCTION_NAME"

Как правило, этот сбой является следствием ошибки в имени функции скрипта. 1. Убедитесь, что имя функции написано верно и не содержит ошибок регистра. Например, AdWordsApp.keywordz() приведет к сбою, поскольку keywordz не является допустимой функцией в классе AdWordsApp. AdWordsApp.Keywords() также приведет с ошибке скрипта вследствие несоблюдения регистра в имени функции keywords(). 2. Убедитесь, что функция существует. Например, значение AdWordsApp.keywords().next() приведет к сбою, поскольку функция AdWordsApp.keywords() возвращает селектор KeywordSelector, а next() является методом для итератора KeywordIterators. Правильно написанный код должен выглядеть так: AdWordsApp.keywords().get().next().

Скрипт запускается, но не выполняет никаких действий

Наиболее распространенная причина этой проблемы – использование функции, выполняющей операцию, без ее вызова из метода main(). Обычно такая ошибка появляется после копирования фрагмента кода из документации для разработчиков.

Метод кодирования Фрагмент кода
Вариант 2 (нерабочий)
function main() {
  // Call to getAllCampaigns is missing, so this script does nothing.
}

function getAllCampaigns() {
  // AdWordsApp.campaigns() will return all campaigns that are not
  // removed by default.
  var campaignIterator = AdWordsApp.campaigns().get();
  Logger.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    Logger.log(campaign.getName());
  }
}
Вариант 2 (нерабочий)
function main() {
  // Call to getAllCampaigns is missing, so this script does nothing.

  function getAllCampaigns() {
    // AdWordsApp.campaigns() will return all campaigns that are not
    // removed by default.
    var campaignIterator = AdWordsApp.campaigns().get();
    Logger.log('Total campaigns found : ' +
        campaignIterator.totalNumEntities());
    while (campaignIterator.hasNext()) {
      var campaign = campaignIterator.next();
      Logger.log(campaign.getName());
    }
  }
}
Вариант 3 (рабочий)
function main() {
  getAllCampaigns();
}

function getAllCampaigns() {
  // AdWordsApp.campaigns() will return all campaigns that are not removed
  // by default.
  var campaignIterator = AdWordsApp.campaigns().get();
  Logger.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    Logger.log(campaign.getName());
  }
}

Ошибка "Не удалось найти функцию getFinalUrl" при обновлении скрипта

Вы можете столкнуться с этой ошибкой при изменении скрипта для работы с обновленными URL. Ошибка появляется вследствие замены вызовов к ad.getDestinationUrl() на вызовы к ad.getFinalUrl(). Поскольку getFinalUrl() является частью класса AdUrls, в коде нужно использовать переменную ad.urls().getFinalUrl().

function main() {
  // Incorrect snippet. getFinalUrl is not a member of the Ad class.
  var ad = AdWordsApp.ads().get().next();
  var url = ad.getFinalUrl();

  // Correct snippet.
  var ad = AdWordsApp.ads().get().next();
  var url = ad.urls().getFinalUrl();
}

Ошибка вывода статистики

Недоступность данных для определенного объекта или диапазона дат – распространенная ошибка, которая появляется при создании отчетов или отправке статистических запросов. Есть вы столкнулись с ней, попробуйте сделать следующее:

  1. Проверьте диапазон дат, для которого вы запрашиваете статистику или создаете отчет.
  2. Убедитесь, что вы запрашиваете существующие столбцы или параметры. Список всех поддерживаемых отчетов и столбцов можно найти на странице справки по отчетам. Если вы не знаете, как сопоставлять столбцы в интерфейсе AdWords со столбцами в отчетах API, воспользуйтесь этим руководством.
  3. Обратите внимание, что если вы запросили статистику на уровне аккаунта для скрипта Центра клиентов, управляющего аккаунтами с различными валютами, то полученные данные будут пересчитаны в валюту аккаунта Центра клиентов.
  4. Данные, которые вы ищете, могут быть ещё недоступны в AdWords из-за задержки в поступлении информации. Более подробную информацию об этом можно узнать в справочной статье Актуальность данных.

Ошибка при запросе столбца отчета

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

  1. Столбец, который вы запрашиваете, недоступен для данного типа отчета. Чтобы проверить, так ли это, прочитайте справочную статью.
  2. Несоблюдение регистра в названиях столбцов (они должны точно соответствовать значениям, приведенным в справочной статье о типах отчетов). Например, вы не получите информацию о количестве кликов, если вместо столбца "Clicks" запросите столбец "clicks", "click" или "CLICK".
  3. Поддержка столбца, который вы запрашиваете, прекращена в новой версии API, или же запрашиваемый столбец используется только в последней версии API. Столбцы, перечисленные в справочной статье о типах отчетов, всегда соответствуют последней версии API. Однако код может не иметь доступа к последней версии по одной из следующих причин:

    1. Скрипт AdWords ещё не поддерживает последнюю версию отчета API. Чтобы получать информацию о поддержке новых версий отчетов, подпишитесь на обновления группы AdWords Scripts Forum, где регулярно публикуется информация о новых функциях отчетов.
    2. Код обращается к конкретной версии отчета (подробнее об этом читайте в нашем руководстве по отчетам). Чтобы устранить проблему, используйте номер версии, поддерживающей столбец, данные которого вы хотите получить.
  4. Слишком много столбцов сегментации в запрашиваемом отчете. Каждый дополнительный столбец сегментации в запросе увеличивает количество строк в отчете в геометрической прогрессии. Чем больше столбцов сегментации вы запрашиваете, тем выше вероятность получения ошибки по этому запросу. Рекомендуем использовать не более 7 столбцов сегментации.

  5. Некоторые столбцы в отчете могут быть несовместимы с другими. Подробнее об этом можно узнать в справочной статье о типах отчетов.

Запросы на добавление функций

Как узнать, доступна ли функция?

Сверьтесь со списком всех поддерживаемых объектов AdWords.

Когда будет доступна та или иная функция?

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

  1. Убедитесь, что этой функции ещё нет в списке поддерживаемых объектов.
  2. Затем ознакомьтесь с содержанием группы AdWords Scripts Forum и проверьте, не была ли эта функция запрошена кем-либо ранее. Если да, поддержите обсуждение в теме, где был сделан запрос: например, отметьте пост звездочкой или добавьте к нему комментарий о том, как именно вы хотели бы использовать функцию.
  3. Если функцию ещё никто не запрашивал, создайте новую тему для ее обсуждения в группе. Обязательно добавьте пример использования, иллюстрирующий применение функции. Если возможно, добавьте ссылку на статью Справочного центра, пост в блоге AdWords API или руководство, в котором описана эта функция. Так другим разработчикам будет легче найти вашу тему и повысить ее рейтинг (это важно, поскольку мы принимаем решения о разработке функции на основе популярности темы в форуме).
  4. Добавьте в запись блока тег "Feature Request", чтобы мы (а также участники группы) смогли быстрее найти ваш запрос на разработку новой функции.

Как использовать ту или иную функцию?

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

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

Текущей странице
Скрипты AdWords
Скрипты AdWords