Google Ads 脚本 - 将 Logger.log 内容发送到电子邮件?

问题描述

我有一个脚本,可以显示 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"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...