2016-07-22 20 views
0

我剛開始嘗試使用Google Adwords腳本和Google電子表格。我試圖從我們的經理帳戶提取基本的廣告系列數據,並將這些數據發送到工作表。使用基本廣告系列數據創建和更新電子表格

我寫了以下內容,但每次運行腳本時,都會創建一個包含標題/列名稱但不包含實際數據的電子表格。

我哪裏出錯了?

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); 
 
    
 
}

回答

0

AdWords Scripts

如果您有興趣進一步腳本AdWords帳戶,看看AdWords指令,這是正確的嵌入Google Apps腳本的版本AdWords界面

我覺得這是你的錯誤是:

report.exportToSheet(spreadsheet.getActiveSheet()); 

增加價值來排,你會使用Spreadsheet Service使用getRange()getValues,並setValues()類。

getRange()

獲取此命名範圍引用的範圍內。

的GetValues()

返回值的矩形柵格此範圍。返回一個二維數組值,按行索引,然後按列索引。取決於單元的值,值可以是Number,Boolean,DateString類型。空單元格將由數組中的空字符串表示。請記住,儘管範圍索引從1, 1開始,JavaScript數組將從[0][0]索引。

// 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]); 

setValues方法()

設置值的矩形網格(必須匹配的該範圍的尺寸)。

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; 
} 
} 
} 

希望它能幫助!

相關問題