请求开发GA4批量导出账户结构至Google Sheets的可用脚本
批量拉取GA4账户结构并导出到Google Sheets
前置操作
- 打开Google Apps Script,新建空白项目
- 启用Google Analytics Admin API:点击编辑器顶部「扩展」>「Apps Script」(若在Sheets内操作),或独立脚本编辑器中点击「资源」>「高级Google服务」,找到Google Analytics Admin API并开启;按提示跳转至Google Cloud Console完成API启用流程
- 授权脚本:首次运行时选择拥有所有GA4账户访问权限的Google账号,按步骤完成授权(需绕过「不安全的应用」提示,因脚本为自行创建)
完整脚本代码
function main() { // 绑定要写入数据的Sheet,默认用当前活动Sheet const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 设置表头 const headers = ['账户名称', '账户ID', 'Property ID', 'Property名称', 'Stream ID', 'Stream名称', 'Stream类型']; sheet.clear(); sheet.appendRow(headers); let pageToken = null; // 循环拉取所有账户(处理分页,突破50个账户上限) do { const accountRes = AnalyticsAdmin.Accounts.list({pageToken: pageToken}); const accounts = accountRes.accounts || []; accounts.forEach(account => { const accountId = account.name.split('/')[1]; const accountName = account.displayName; // 拉取当前账户下的所有Property const propertyRes = AnalyticsAdmin.Properties.list({parent: `accounts/${accountId}`}); const properties = propertyRes.properties || []; properties.forEach(property => { const propertyId = property.propertyId; const propertyName = property.displayName; // 拉取当前Property下的所有Stream const streamRes = AnalyticsAdmin.Properties.DataStreams.list({parent: property.name}); const streams = streamRes.dataStreams || []; // 写入每条Stream数据 streams.forEach(stream => { const streamId = stream.name.split('/')[3]; const streamName = stream.displayName; const streamType = stream.dataStreamType; const row = [accountName, accountId, propertyId, propertyName, streamId, streamName, streamType]; sheet.appendRow(row); }); }); }); pageToken = accountRes.nextPageToken; } while (pageToken); SpreadsheetApp.getUi().alert('数据导出完成!'); }
使用说明
- 将上述代码复制粘贴到Google Apps Script编辑器中
- 如需指定特定Sheet,将
getActiveSheet()改为getSheetByName('你的Sheet名称') - 点击编辑器工具栏运行按钮,选择
main函数执行 - 完成授权后等待脚本运行,结束时会弹出完成提示
注意事项
- API配额:Google Analytics Admin API有每日配额限制,200+账户的请求量在默认配额范围内;若遇配额错误,可次日再运行,或在Google Cloud Console申请提高配额
- 权限要求:运行脚本的账号必须拥有所有目标GA4账户的管理员权限,否则无法获取完整数据
内容的提问来源于stack exchange,提问作者Tummy
相关产品推荐
相关产品推荐

