Google Apps脚本:奇怪的“丢失;在声明之前”。错误

时间:2013-07-12 09:32:04

标签: javascript google-apps-script google-adwords

我正在编写一个简单的脚本来废弃一些报告数字。我收到错误消息“Missing; before statement。”,这似乎不是对手头问题的准确描述。

我已经尝试省略了代码片段,但错误消息似乎相当随机。我怀疑我正在使用的一些课程存在一些问题,但我没有想法。

这是我的代码:

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();
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

除了已经定义了所有这些变量的事实(虽然重新声明相同的变量不会导致错误),你会遇到语法错误,因为你不能在这样的变量声明中包含方括号:< / p>

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'];

另请注意,我冒昧地介绍了+= operator。以下两个陈述是等价的,但后者的类型较少,(可以说)更容易阅读:

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