谷歌应用程序脚本:奇怪的"丢失的声明之前"错误

Google Apps Script: strange "Missing ; before statement." error

本文关键字:quot 声明 错误 应用程序 谷歌 脚本      更新时间:2023-09-26

我正在编写一个简单的脚本来废弃一些报告编号。我收到错误消息"声明前缺少;",这似乎不是对当前问题的准确描述。

我试着省略了一些代码,但错误消息看起来相当随机。我怀疑我使用的某些类有问题,但我没有主意。

这是我的代码:

function getStats() {
  var stats = {'id': '',
               'impressions': 0,
               'clicks': 0,
               'conversions': 0,
               'cpa': 0,
               'cost': 0},
      campaignIterator = AdWordsApp.campaigns().get(),
      campaign,
      campaignstats;
  Logger.log('Fetching stats for last 7 days.');
  while (campaignIterator.hasNext()) {
    var campaign = campaignIterator.next();
    var campaignstats = campaign.getStatsFor('LAST_7_DAYS');
    var stats['impressions'] = stats['impressions'] + campaignstats.getImpressions();
    var stats['clicks'] = stats['clicks'] + campaignstats.getClicks();
    var stats['conversions'] = stats['conversions'] + campaignstats.getConversions();
    var stats['cost'] = stats['cost'] + campaignstats.getCost();
  }
  var stats['cpa'] = stats['cost']/stats['conversion'];
}
function main() {
  getStats();
}

谢谢你的帮助!

while循环中的每一行以及之后的语句中删除var语句。

除了已经定义了所有这些变量之外(尽管重新定义同一个变量不会导致错误),还存在语法错误,因为不能在变量声明中包含方括号,如下所示:

var stats['impressions'] = ...

试试这个:

while (campaignIterator.hasNext()) {
  campaign = campaignIterator.next();
  campaignstats = campaign.getStatsFor('LAST_7_DAYS');
  stats['impressions'] += campaignstats.getImpressions();
  stats['clicks'] += campaignstats.getClicks();
  stats['conversions'] += campaignstats.getConversions();
  stats['cost'] += campaignstats.getCost();
}
stats['cpa'] = stats['cost']/stats['conversion'];

还请注意,我冒昧地介绍了+=运算符。以下两个语句是等效的,但后者不太容易键入,(可以说)更容易阅读:

x[y] = x[y] + z;
x[y] += z;