常见问题

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

常见的 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 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. 如果您为 Google Ads 经理脚本(该脚本管理不同币种的帐号)检索帐号级统计信息,您将获得采用经理帐号币种的费用。

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

功能请求

“X”功能是否可用?

请查看我们的参考文档

“X”功能何时可用?

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

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

  2. 如果不受支持,搜索 Google Ads 脚本论坛,查看先前是否已有用户请求该功能。如果是,请顶该线程;如果您想分享更多详细信息(例如用例),请发表评论。

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

  4. 将帖子标记为“功能请求”,以便我们(和用户)更轻松地快速查看功能请求。

我如何使用“X”功能?

如需查看有关如何使用特定功能的示例,请参阅我们的代码段解决方案。如果您未找到合适的代码段,请随时在论坛中发帖咨询。