常见问题

这里汇总了 Google Ads 脚本论坛上提出的最常见问题。

常见的 JavaScript 错误

脚本运行失败,提示为“无法找到函数:FUNCTION_NAME”

这通常是因为脚本中的函数名称拼写错误。

  1. 检查函数名称是否拼写正确,并且大小写正确;例如,AdsApp.keywordz() 会导致此错误,因为 keywordz 不是 AdsApp 类中的有效函数。 如果 keywords() 函数的大小写错误,AdsApp.Keywords() 也会失败。

  2. 检查函数是否存在;例如,AdsApp.keywords().next() 将失败,因为 AdsApp.keywords() 会返回 KeywordSelector,而 next()KeywordIterator 对象的一个方法。正确的代码是 AdsApp.keywords().get().next()

脚本运行了,但没有完成任何操作

出现此问题的最常见原因是,您有一个会执行操作的函数,但您并未从 main() 方法中调用该函数。当您从我们的文档中复制并粘贴代码段时,通常就会发生这种情况。

编码方案 代码段
版本 1(无效)
function main() {
  // Call to getAllCampaigns is missing, so this script does nothing.
}

function getAllCampaigns() {
  // AdsApp.campaigns() will return all 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 getAllCampaigns is missing, so this script does nothing.

  function getAllCampaigns() {
    // AdsApp.campaigns() will return all 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() {
  getAllCampaigns();
}

function getAllCampaigns() {
  // AdsApp.campaigns() will return all 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”错误

更改脚本以使用升级版网址时,您可能会遇到此错误。当您将对 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 的任何统计信息

在运行报告或调用统计信息时,您可能会遇到的一个常见错误是,无法获得有关某个特定实体或日期范围的数据。您可以尝试以下几种操作:

  1. 检查您要提取统计信息或运行报告的日期范围。

  2. 如果检索广告管理工具脚本(用于管理不同币种的账号)的账号级统计信息,则获取以经理账号所用币种为单位的费用。

  3. Google Ads 可能还没有您要寻找的数据。如需了解详情,请参阅我们的数据新鲜度指南

功能请求

“X”功能是否可用?

请参阅我们的参考文档

“X”功能何时可用?

我们尽量优先提供最常被请求的功能。如果您希望看到某项功能,请按以下步骤操作:

  1. 首先,请查看参考文档,确认该功能在 Google Ads 脚本中是否受支持。

  2. 如果不受支持,搜索 Google Ads 脚本论坛,查看之前是否曾有过请求。如果是,请赞成该讨论帖;如果您想分享更多详细信息(例如用例),请发表评论。

  3. 如果此功能尚未被请求,则发出功能请求,方法是在 Google Ads 脚本论坛上发布一个新帖。请务必提供此功能将解决的用例。尽可能提供指向帮助中心指南或介绍此功能的 AdWords API 博文 / 指南的链接。这有助于其他开发者顶功能请求。我们会根据热门程度确定功能请求的优先级。

  4. 将帖子标记为“功能请求”,以方便我们(以及用户)快速检查功能请求。

我如何使用“X”功能?

如需查看有关如何使用特定功能的示例,请参阅我们的代码段解决方案。如果没有找到合适的代码段,请随时在论坛上提出请求。