【问题标题】:How to populate adwords data in specific cells of a google docs spreadsheet using AdWords Scripts?如何使用 AdWords 脚本在 google docs 电子表格的特定单元格中填充 adwords 数据?
【发布时间】:2013-04-17 20:18:08
【问题描述】:
我没有编程背景,刚开始学习 JavaScript 基础知识,因此我可以熟练地创建自定义 Google AdWords 脚本来帮助我自动生成客户报告。我花了很多时间反复试验,但还没有弄清楚这个问题(这对程序员来说可能超级容易):
我正在尝试使用帐户级别数据填充我制作的电子表格(这里是缩短的链接:http://goo.gl/wLAAx),以便计算帐户的运行率。我要做的只是运行一个每天早上运行的脚本,该脚本将在电子表格中添加一个包含昨天日期的新行,并填充其各自的数据,例如点击次数、展示次数、费用和转化次数。
提前感谢您的帮助和信息!
【问题讨论】:
标签:
google-apps-script
google-sheets
google-ads-api
【解决方案1】:
这是一个可以执行您想要的操作的脚本(它使用的电子表格略有不同,请查看)。此外,该脚本仅读取电子表格的前 365 行,因此它会在一年内中断。
将来,您可能想与https://developers.google.com/adwords/scripts 联系以获取面向脚本的资源和社区
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;
}
}
}