Google Ads API Node.js MCC配置:customer.report报TypeError读取get属性未定义
使用google-ads-api v21.0.1通过MCC账号获取客户广告系列数据时遇到TypeError错误
我正在Node.js环境中使用google-ads-api库(v21.0.1),试图通过自己新建的MCC(管理器)账号获取Google Ads客户账号的广告系列数据。目前已完成以下操作:
- 创建了个人MCC账号;
- 接收并接受了客户的账号访问邀请,获得该账号的只读权限;
- 确认客户账号已在Google Ads UI中显示于我的MCC账号名下;
- 成功获取OAuth刷新令牌(流程无异常);
- 开发者令牌已获批标准访问权限;
- 使用的客户ID和MCC ID均已去除短横线。
运行代码
const { GoogleAdsApi, enums } = require('google-ads-api'); const client = new GoogleAdsApi({ client_id: '...', client_secret: '...', developer_token: '...', }); const customer = client.Customer({ customer_id: 'xxxxxxxxxx', // 客户账号ID(无短横线) login_customer_id: 'yyyyyyyyyy', // 我的MCC账号ID(无短横线) refresh_token: '...', }); async function fetchCampaigns() { try { const campaigns = await customer.report({ entity: 'campaign', attributes: ['campaign.id', 'campaign.name'], metrics: ['metrics.impressions', 'metrics.clicks'], limit: 10, constraints: { 'campaign.status': enums.CampaignStatus.ENABLED, }, }); if (!campaigns || campaigns.length === 0) { console.log('No campaigns found'); return; } campaigns.forEach(campaign => { console.log(`ID: ${campaign['campaign.id']}, Name: ${campaign['campaign.name']}`); }); } catch (error) { console.error('Error fetching campaigns:', error); } } fetchCampaigns();
错误信息
每次运行代码都会抛出以下错误:
No data type found for reason No data type found for domain No data type found for metadata.service No data type found for metadata.method Error fetching campaigns: TypeError: Cannot read properties of undefined (reading 'get') at Customer.getGoogleAdsError (.../google-ads-api/build/src/service.js:102:49)
已排查内容
- 客户ID和MCC ID均正确,且已确认拥有账号访问权限(客户账号在MCC UI中可见);
- 开发者令牌、OAuth凭据及权限均处于有效状态;
- 已确保ID中无短横线;
- 尝试过添加/移除
login_customer_id参数; - 使用Node.js 20+版本及最新版google-ads-api包。
疑问
- 该错误是由账号权限、API配置还是库的Bug导致的?
- 接受客户账号邀请后,是否需要执行额外操作?
- 拥有只读权限的MCC账号能否正常通过API访问客户账号,还是需要更高权限?
- 有没有人解决过google-ads-api的report方法中出现的这个"undefined get"错误?
内容的提问来源于stack exchange,提问作者Ritik
相关产品推荐
相关产品推荐

