能否在Google Apps Script中访问AdWords?已存AdWords脚本能否在此运行?
关于Google Apps Script运行AdWords脚本的问题
嘿,这个问题我刚好清楚!直接说结论:你在AdWords UI里写的这个脚本不能直接在Google Apps Script环境中运行,原因和替代方案我给你拆解下:
核心原因:两个脚本环境完全不同
- 内置服务不通用:Google Ads(原AdWords)脚本是Google Ads平台专属的运行环境,
AdWordsApp这个核心对象是该环境特有的内置服务,Google Apps Script里根本没有这个对象,直接运行会立刻报错「AdWordsApp is not defined」。 - 权限机制不一样:AdWords脚本会自动关联你当前登录的Ads账户权限,无需额外配置;但Google Apps Script要访问Ads数据,得单独配置OAuth认证,通过官方的Google Ads API来实现数据交互。
替代方案:用Google Ads API在Apps Script中实现相同功能
如果想在Google Apps Script里获取Ads账户信息和统计数据,你需要通过Google Ads API来实现,步骤大概是:
- 在Google Apps Script编辑器中,启用「Google Ads API」高级服务(在「服务」菜单里找到并启用)。
- 配置好API的认证(确保你的账户有Google Ads API的访问权限)。
- 调用API对应的端点来获取数据,比如:
- 获取账户基本信息:调用
GoogleAdsApi.CustomerService.getCustomer方法 - 获取月度统计数据:调用
GoogleAdsApi.ReportService.generateReport或者用metrics.query接口
- 获取账户基本信息:调用
举个简化的示例片段(对应你原脚本的功能):
function getAdsAccountDetails() { const customerId = '你的Ads客户ID(不带横杠)'; // 获取账户基本信息 const customer = GoogleAdsApi.CustomerService.getCustomer({customerId: customerId}); Logger.log('Customer ID: ' + customer.id + ', Currency Code: ' + customer.currencyCode + ', Timezone: ' + customer.timeZone); // 获取上月统计数据 const query = ` SELECT metrics.clicks, metrics.impressions FROM customer WHERE segments.date DURING LAST_MONTH `; const report = GoogleAdsApi.ReportService.generateReport({ customerId: customerId, query: query }); const stats = report.results[0]; Logger.log(stats.metrics.clicks + ' clicks, ' + stats.metrics.impressions + ' impressions last month'); }
总结
你原有的AdWords脚本只能在Google Ads UI的脚本编辑器里运行,要迁移到Google Apps Script必须改用Google Ads API的方式实现,不能直接复用原有代码。
内容的提问来源于stack exchange,提问作者kishore
相关产品推荐
相关产品推荐

