我正在编写一个简单的脚本来废弃一些报告数字。我收到错误消息“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();
}
感谢您的帮助!
答案 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;