如何使用google-ads-api Node.js包实现搜索词分页查询?
使用google-ads-api Node.js包实现搜索词数据分页查询
Google Ads API原生支持分页查询,google-ads-api这个npm包封装了底层API,你可以通过pageSize和pageToken参数实现每次获取100条数据的分页功能,具体实现如下:
核心实现代码
const { GoogleAdsApi } = require('google-ads-api'); // 初始化客户端(替换为你的实际配置) const client = new GoogleAdsApi({ client_id: '你的客户端ID', client_secret: '你的客户端密钥', developer_token: '你的开发者令牌', }); const customer = client.Customer({ customer_id: '你的客户ID', refresh_token: '你的刷新令牌', }); async function getSearchTermsByPage() { let pageToken = null; const pageSize = 100; // 每页返回100条数据 // 若不需要全量数据,可移除allResults,直接在循环内处理单页数据 let allResults = []; do { // 发起分页查询 const searchResponse = await customer.search(` SELECT search_term_view.search_term, metrics.clicks, metrics.impressions, metrics.cost_micros FROM search_term_view WHERE segments.date DURING LAST_30_DAYS `, { pageSize, pageToken, }); // 处理当前页数据,示例为打印条数,可替换为你的业务逻辑 console.log(`当前页返回数据:${searchResponse.results.length}条`); // processPageData(searchResponse.results); // 自定义处理函数 allResults.push(...searchResponse.results); // 更新分页令牌,用于下一次请求 pageToken = searchResponse.nextPageToken; } while (pageToken); // 直到没有下一页令牌为止 console.log(`总计获取数据:${allResults.length}条`); } // 执行分页查询 getSearchTermsByPage().catch(err => console.error('查询失败:', err));
关键说明
- pageSize参数:在
customer.search的第二个配置对象中设置,指定每页最大返回条数(Google Ads API允许的上限为1000,这里设为100即可) - pageToken参数:每次请求返回的
nextPageToken会作为下一次请求的pageToken,当nextPageToken为null时,说明所有数据已查询完毕 - 内存优化:如果不需要全量存储所有数据,可以直接在循环内处理当前页的结果,避免大数组占用过多内存
注意事项
- 确保查询语句符合Google Ads API的字段选择规则,避免因字段错误导致请求失败
- 若遇到API调用频率限制,可在循环中添加适当延迟(如
await new Promise(resolve => setTimeout(resolve, 1000))) - 该分页逻辑基于Google Ads API原生机制,npm包仅做参数传递,因此文档未单独说明时可直接使用这些参数
内容的提问来源于stack exchange,提问作者Bipasha Roy
相关产品推荐
相关产品推荐

