问题描述
我有一个脚本,可以显示 10 个点击率最高的关键字、它们的平均每次点击费用和转化次数。在预览脚本时它工作正常。但是当我将它发送到我的电子邮件时,只有 10 行中的最后一行显示。这里有什么问题?
function main() {
var keywords = AdsApp.keywords()
.orderBy("Clicks DESC")
// .orderBy("Impressions DESC")
.forDaterange("THIS_MONTH")
.withLimit(10)
.get();
Logger.log("10 most clicked keywords");
while (keywords.hasNext()) {
var keyword = keywords.next();
content = keyword.getText() + " | Clicks: " + keyword.getStatsFor("THIS_MONTH").getClicks() + " | CPC: " + keyword.getStatsFor("THIS_MONTH").getAverageCpc().toFixed(2) +
" | Conversions: " + keyword.getStatsFor("THIS_MONTH").getConversions();
}
MailApp.sendEmail({
to: 'myemail@myemail.com',subject: "10 most clicked keywords",htmlBody: content
});
}
解决方法
在我看来,您在每次 while 循环中都覆盖了内容变量。我认为您需要在 while 循环之外声明内容,然后将其添加到您的内容 = 字符串中,例如
var content = "";
while (keywords.hasNext()) {
var keyword = keywords.next();
content = content + keyword.getText() + " | Clicks: " + keyword.getStatsFor("THIS_MONTH").getClicks() + " | CPC: " + keyword.getStatsFor("THIS_MONTH").getAverageCpc().toFixed(2) +
" | Conversions: " + keyword.getStatsFor("THIS_MONTH").getConversions();
}
我怀疑您可能还想在串联的末尾添加一个换行符 + "\n"
。