当前位置: 首页 > 知识库问答 >
问题:

创建并更新包含基本市场活动数据的电子表格

柯琛
2023-03-14
js prettyprint-override">function main() {
  var spreadsheet = SpreadsheetApp.create('Adwords Testing');
  var report = AdWordsApp.report(
      'SELECT CampaignName, Clicks, Conversions, Cost, Ctr, AverageCpc, Impressions ' +
      'FROM   CAMPAIGN_PERFORMANCE_REPORT ' +
      'WHERE  CampaignStatus = ENABLED ' +
      'DURING LAST_7_DAYS');

  var rows = report.rows();
  while (rows.hasNext()){
    var row = rows.next();
    var campaignName = ['CampaignName'];
    var clicks = ['Clicks'];
    var conversions = ['conversions'];
    var cost = ['Cost'];
    var avgcpc = ['AverageCpc'];
    var ctr = ['Ctr'];
    var impressions = ['Impressions'];
  }
  report.exportToSheet(spreadsheet.getActiveSheet());
  Logger.log('your sheet is available at ' + spreadsheet);
  
}

共有1个答案

苍德寿
2023-03-14

如果您对进一步编写AdWords帐户脚本感兴趣,请查看AdWords脚本,这是一个嵌入到AdWords界面中的应用程序脚本版本。

我想这就是你的错误所在:

report.exportToSheet(spreadsheet.getActiveSheet());

若要向行添加值,您将使用电子表格服务使用GetRange()GetValuesSetValues()类。

// The code below will get the values for the range C2:G8
// in the active spreadsheet. Note that this will be a javascript array.
var values = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).getValues();
Logger.log(values[0][0]);

设置值的矩形网格(必须与此范围的尺寸匹配)。

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

// The size of the two-dimensional array must match the size of the range.
var values = [
[ "2.000", "1,000,000", "$2.99" ]
];

var range = sheet.getRange("B2:D2");
range.setValues(values);

以下是Iluxa的一个片段:

function main() {
var sheet = SpreadsheetApp.openByUrl(
"https://docs.google.com/spreadsheet/ccc?key=0Aj_Bw31w9s7LdEdLMllQMnZfbW52c3BvcTh0ekVBQ3c#gid=0").getActiveSheet();
var emptyRow = findEmptyRow(sheet);

var yesterday = new Date(new Date().getTime() - (24 * 3600 * 1000));

var range = sheet.getRange(emptyRow + 1, 1, 1, 10);

var row = range.getValues();
row[0][0] = yesterday;
row[0][1] = MONTHS[yesterday.getMonth()];
row[0][2] = DAYS_OF_WEEK[yesterday.getDay()];

var stats = AdWordsApp.report("SELECT Clicks, Impressions, Cost, Conversions " +
"FROM ACCOUNT_PERFORMANCE_REPORT DURING YESTERDAY")
.rows()
.next();
row[0][3] = stats["Clicks"];
row[0][4] = stats["Impressions"];
row[0][7] = stats["Cost"];
row[0][8] = stats["Conversions"];
range.setValues(row);
}

function findEmptyRow(sheet) {
var dates = sheet.getRange(1, 1, 365, 1).getValues();
for (var emptyDate = 0; emptyDate < dates.length; emptyDate ++) {
if (dates[emptyDate][0].length == 0) {
return emptyDate;
}
}
}

希望有帮助!

 类似资料:
  • 问题内容: 我有以下实体类(在Groovy中): 和我的persistence.xml: 和脚本: 数据库 Icarus 存在,但当前没有表。我希望Hibernate基于实体类自动创建和/或更新表。我将如何完成? 问题答案: 我不知道离开前线是否会有所作为。 该参考表明,它应该是 值为将会在创建sessionFactory时创建您的表,并保持它们不变。 值为会创建您的表,然后在关闭sessionF

  • 市场活动与营销场景的关系 营销场景即为市场活动,可以理解为营销场景为市场活动的前端应用,用于活动的推广传播、报名签到、活动通知等,而后端业务流转、数据分析则在CRM业务中处理; 访问【设置】-【市场活动设置】可将活动类型映射到活动营销场景进行前端推广获客: 活动营销、直播营销、会议营销三者之间的区别 活动、直播、会议本质都是市场活动,活动营销可以理解为非线下会议、在线直播的其他线上线下活动类型均可

  • 我已经写了一个我想要发生的例子,但需要关于如何到达那里的指针 null 如果有任何帮助,我们将不胜感激,谢谢你们

  • 问题内容: 我有一个现有的MSSQL数据库,其中某些列中的值需要根据电子表格进行更新,该电子表格包含旧数据和新数据的映射。 电子表格是这样的: 其中ABCD是与数据库有关的列名,而OLD / NEW与数据有关。 因此,对于每行(约2500行) 每列中与OLD匹配的数据库值需要更改为NEW 本质上是让Excel制定替换语句列表,尽管这似乎是解决问题的令人费解的方法! 有没有一种方法可以使电子表格的每

  • 我是android studio的新手,目前正在创建一个应用程序,它将从SQLite的现有数据库中检索数据。基于我发现的是创建一个布局文件(而不是通过创建新的空活动)来设计如何显示数据。但在布局中,我想要按钮打开新的活动,但不知何故它没有,我没有找到任何解决方案,到目前为止。而影像也没有出现。这是代码: DataPoi.java ListPoiAdapter.java 游乐场.java

  • 问题内容: 我有一个如下所示的pandas数据框,并通过一列保存数据组: 现在,我想创建新的数据框(名为df_w,df_x,df_y,df_z),这些数据框仅保存其原始数据中的数据,并在一些可迭代的列表(例如列表)中进行最佳组合: 有没有使用groupby,apply和/或applymap和函数来实现此目的的智能(矢量化熊猫)方法? 我当时正在考虑对数据框进行迭代,但这似乎不是很优雅。 预先感谢您