通过Apps Script实现多份Offline DCM报告自动填充至G-Sheet多标签页
多Offline DCM报告自动填充Google表格通用脚本
配置说明
先在脚本开头定义你的报告配置数组,每个元素对应一份报告的参数:
// 配置多份DCM报告,可按需添加/修改 const REPORT_CONFIGS = [ { reportId: 'REPORT_ID_1', // 替换为你的Offline DCM报告ID sheetName: '报告1数据', // 要写入的Google表格标签页名称 clearSheetBeforeWrite: true // 是否清空标签页旧数据 }, { reportId: 'REPORT_ID_2', sheetName: '报告2数据', clearSheetBeforeWrite: false } // 可继续添加更多报告配置 ];
完整脚本
function importMultipleDCMReports() { // 遍历所有报告配置 REPORT_CONFIGS.forEach(config => { try { // 获取DCM报告数据 const reportData = getDCMReportData(config.reportId); if (!reportData || reportData.length === 0) { console.log(`报告ID ${config.reportId} 无数据,跳过`); return; } // 定位目标工作表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(config.sheetName); if (!sheet) { console.log(`未找到标签页 ${config.sheetName},跳过`); return; } // 清空旧数据(如果配置开启) if (config.clearSheetBeforeWrite) { sheet.clearContents(); } // 写入数据(从A1单元格开始) const range = sheet.getRange(1, 1, reportData.length, reportData[0].length); range.setValues(reportData); console.log(`报告ID ${config.reportId} 已成功写入标签页 ${config.sheetName}`); } catch (error) { console.error(`处理报告ID ${config.reportId} 时出错: ${error.message}`); } }); } function getDCMReportData(reportId) { // 调用DCM API获取离线报告 const report = DoubleClickCampaignManager.Reports.get(reportId); // 检查报告状态,确保已生成 if (report.status !== 'REPORT_AVAILABLE') { throw new Error(`报告 ${reportId} 状态异常: ${report.status}`); } // 获取报告文件数据 const fileId = report.files[0].url.split('/').pop(); const csvContent = DriveApp.getFileById(fileId).getBlob().getDataAsString(); // 解析CSV为二维数组 return Utilities.parseCsv(csvContent); }
使用步骤
- 打开目标Google表格,点击「扩展程序」→「Apps脚本」进入脚本编辑器
- 替换脚本中的
REPORT_CONFIGS数组内容,填入你的报告ID和对应标签页名称 - 启用DoubleClick Campaign Manager API:
- 在脚本编辑器左侧点击「服务」→「添加服务」
- 找到「DoubleClick Campaign Manager API」,点击添加
- 运行
importMultipleDCMReports函数,首次运行会要求授权,按提示完成权限验证 - (可选)设置时间驱动触发器,实现定期自动同步数据
注意事项
- 确保你的Google账号有权限访问目标DCM报告
- 离线报告需处于「REPORT_AVAILABLE」状态才能获取数据
- 如果报告数据量过大,需注意Google Apps脚本的执行时间限制(最长6分钟)
内容的提问来源于stack exchange,提问作者Billy Lucas
相关产品推荐
相关产品推荐

