繁体   English   中英

通过google-app-script创建DCM报告

[英]creating DCM report through google-app-script

我是Google App Scripts的新手。 我需要使用Google-app-script功能在Spreadsheet中构建报告。 我知道如何从DCM / DFM报告摘要报告到电子表格。

但是,如果没有从DCM / DFM下载现有报告,我就无法创建新的内部电子表格。 可能吗? 可能有人有样品(我还没找到)? 或者我错过了这个概念,将数据提取到电子表格的唯一方法是首先在DCM / DCF报表生成器中创建报表?

这是我正在使用的代码。

 function generateReport() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Reports'); var profileId = 2623334 var httpOptions = { 'headers': {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()} } var resource = { 'kind': 'dfareporting#report', 'accountId': '34405', 'type': 'STANDARD', 'name': 'Simple Report', 'criteria': { 'dateRange': { 'kind': 'dfareporting#dateRange', 'startDate': '2016-09-01', 'endDate': '2017-01-22', }, 'dimensions': [ { 'kind': 'dfareporting#sortedDimension', 'name': 'dfa:date', } ], 'metricNames': [ 'dfa:clicks', 'dfa:impressions' ], } } var url = DoubleClickCampaigns.Reports.insert(resource, profileId); var report = UrlFetchApp.fetch(url.urls.apiUrl, httpOptions); for (var i=0; i<report.length; i++) { var row = report[i]; sheet.getRange('A' + String(i+2)).setValue(row[0]); sheet.getRange('B' + String(i+2)).setValue(row[1]); sheet.getRange('C' + String(i+2)).setValue(row[2]); } } 

错误出现在这里:

var report =  UrlFetchApp.fetch(url.urls.apiUrl, httpOptions); 

错误消息:

无法读取未定义对象的属性“apiUrl”。

我的最后一个脚本是:

 function generateReport() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Reports'); var startDate = Browser.inputBox("Enter a start date (format: 'yyyy-mm-dd')"); var endDate = Browser.inputBox("Enter an end date (format: 'yyyy-mm-dd')"); var ReportName = Browser.inputBox("Enter your future report name"); var profileId = 2623334; var resource = { 'kind': 'dfareporting#report', 'accountId': '34405', 'type': 'STANDARD', 'name': ReportName, 'criteria': { 'dateRange': { 'kind': 'dfareporting#dateRange', 'startDate': startDate, 'endDate': endDate, }, 'dimensions': [ { 'kind': 'fareporting#sortedDimension', 'name': 'dfa:date' } ], 'metricNames': [ 'dfa:clicks', 'dfa:impressions' ], }, }; var httpOptions = { 'headers': {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()} } var url = DoubleClickCampaigns.Reports.insert(resource, profileId); //create Report inside DCM var newReportId = Number(url.id); //get id of new Report var additionalParameters = { 'synchronous': 'true' }; var newReportRun = DoubleClickCampaigns.Reports.run(profileId, newReportId, additionalParameters); // run new Report in DCM var newReportFileId = Number(newReportRun.id); //get id of New File var newReportFile = DoubleClickCampaigns.Files.get(newReportId, newReportFileId); if(newReportFile.urls) { var httpOptions = { 'headers': {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()} } var contents = UrlFetchApp.fetch(newReportFile.urls.apiUrl, httpOptions); //Makes a request to fetch (получать) a URL using optional advanced parameters if(newReportFile.format == 'CSV') { var rows = Utilities.parseCsv(contents.getContentText()); if(rows && rows.length) { var fileName = "DCM_test_work5"; var spreadSheet = SpreadsheetApp.create(fileName); var sheet = spreadSheet.getActiveSheet(); rows.map(function(r) { sheet.appendRow(r); }); } } else { // Store the Excel file directly Logger.log('not CSV!'); DocsList.createFile(contents.getBlob()).rename(newReportFile.fileName) } } } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM