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

В этой статье собраны распространенные проблемы, с которыми сталкиваются разработчики скриптов Google Рекламы.

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

Ниже приведены некоторые распространенные ошибки JavaScript.

Скрипт не выполняется, появляется сообщение "Не удается найти функцию: FUNCTION_NAME"

Как правило, этот сбой является следствием ошибки в имени функции скрипта.

  1. Проверьте, правильно ли написано название функции и соблюден ли регистр. Например, AdsApp.keywordz() приведет к ошибке, потому что keywordz – недопустимая функция в классе AdsApp. AdsApp.Keywords() также не сработает из-за неправильного регистра в функции keywords().

  2. Убедитесь, что функция существует. Например, AdsApp.keywords().next() не сработает, потому что AdsApp.keywords() возвращает KeywordSelector, а next() – это метод для объекта KeywordIterator. Правильный код – AdsApp.keywords().get().next().

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

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

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

function getCampaigns() {
  // AdsApp.campaigns() will return all Search and Display campaigns
  // that are not removed by default.
  let campaignIterator = AdsApp.campaigns().get();
  console.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    let campaign = campaignIterator.next();
    console.log(campaign.getName());
  }
}
Версия 2 (не работает)
function main() {
  // Call to getCampaigns is missing, so this script does nothing.

  function getCampaigns() {
    // AdsApp.campaigns() will return all Search and Display campaigns
    // that are not removed by default.
    let campaignIterator = AdsApp.campaigns().get();
    console.log('Total campaigns found : ' +
        campaignIterator.totalNumEntities());
    while (campaignIterator.hasNext()) {
      let campaign = campaignIterator.next();
      console.log(campaign.getName());
    }
  }
}
Версия 3 (работает)
function main() {
  getCampaigns();
}

function getCampaigns() {
  // AdsApp.campaigns() will return all Search and Display campaigns
  // that are not removed by default.
  let campaignIterator = AdsApp.campaigns().get();
  console.log('Total campaigns found : ' +
      campaignIterator.totalNumEntities());
  while (campaignIterator.hasNext()) {
    let 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.
  let ad = AdsApp.ads().get().next();
  let url = ad.getFinalUrl();

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

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

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

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

  2. Если вы получаете статистику на уровне аккаунта для скрипта Менеджера рекламы, который управляет аккаунтами с разными валютами, вы получите стоимость в валюте управляющего аккаунта.

  3. Данные, которые вы ищете, могут быть ещё недоступны в Google Реклама из-за задержки в поступлении информации. Подробнее об актуальности данных…

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

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

Нужна помощь?

Если вам нужна помощь, посетите страницу Получить помощь.