Это подборка наиболее распространенных вопросов, поднимаемых на форуме скриптов Google Ads .
Распространенные ошибки JavaScript
Скрипт завершается ошибкой «Не удается найти функцию: FUNCTION_NAME».
Обычно это является результатом неправильного написания имени функции в скрипте.
- Проверьте правильность написания имени функции и наличие в нём корректного регистра. Например, - AdsApp.keywordz()приведёт к этой ошибке, поскольку- keywordzне является допустимой функцией в классе AdsApp .- AdsApp.Keywords()также завершится ошибкой из-за неправильного регистра в функции- keywords().
- Проверьте существование функции. Например, - 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();
    }
У меня нет статистики по X
Отсутствие данных для определённого объекта или диапазона дат — распространённая ошибка, с которой вы можете столкнуться при создании отчётов или выполнении статистических запросов. Вот несколько способов, которые можно попробовать:
- Проверьте диапазон дат, для которого вы извлекаете статистику или создаете отчеты. 
- Если вы извлекаете статистику на уровне аккаунта для скрипта Ads Manager, который управляет аккаунтами в разных валютах, вы получаете стоимость в валюте аккаунта менеджера. 
- В Google Ads может ещё не быть нужных вам данных. Подробнее см. в нашем руководстве по актуальности данных . 
Как использовать функцию X?
Ознакомьтесь с нашими фрагментами кода и решениями , чтобы узнать, как использовать ту или иную функцию. Если вы не нашли подходящий фрагмент кода, отправьте запрос в Discord .
Вам все еще нужна поддержка?
Если вам нужна помощь в области, в которой мы можем помочь, посетите страницу «Получить помощь» .