簡體   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