2016-07-22 2 views
0

Ich habe gerade mit Google Adwords Scripts und Google Spreadsheet experimentiert. Ich versuche, grundlegende Kampagnendaten aus unserem Verwaltungskonto abzurufen und diese Daten an ein Blatt zu senden.Erstellen und aktualisieren Sie eine Tabelle mit grundlegenden Kampagnendaten

Ich habe Folgendes geschrieben, aber jedes Mal, wenn ich das Skript ausführe, wird eine Tabelle erstellt, die die Header-/Spaltennamen, aber nicht die eigentlichen Daten enthält.

Wo bin ich falsch gelaufen?

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

Antwort

0

AdWords Scripts

Wenn Sie an weiteren scripting Ihre AdWords-Konten interessiert sind, werfen Sie einen Blick auf AdWords Scripts, eine Version von Apps Script, das direkt in die eingebettet ist AdWords-Benutzeroberfläche.

Ich denke, das ist, wo Ihr Fehler ist:

report.exportToSheet(spreadsheet.getActiveSheet()); 

Wert hinzufügen Zeile werden Sie getRange(), verwenden getValues und setValues() Klassen Spreadsheet Service verwenden.

getRange()

Ruft den von diesem benannten Bereich verwiesen Bereich.

getValues ​​()

das rechteckige Raster der Werte für diesen Bereich ist. Gibt ein zweidimensionales Array von Werten zurück, indiziert nach Zeile und dann nach Spalte. Die Werte können vom Typ Number, , Date oder String sein, abhängig vom Wert der Zelle. Leere Zellen werden durch eine leere Zeichenfolge im Array dargestellt. Denken Sie daran, dass der JavaScript-Array bei 1, 1 beginnend mit [0][0] indexiert wird.

// 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 ​​()

ein rechteckiges Gitter von Werten Sets (müssen Abmessungen dieses Bereichs übereinstimmen).

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

Hier ist ein Ausschnitt aus 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; 
} 
} 
} 

Hoffe, es hilft!

Verwandte Themen