求助:如何通过SendGrid API(curl)获取动态模板统计?参数被忽略
解决SendGrid动态模板统计数据拉取问题
核心问题说明
SendGrid的/v3/stats接口本身不支持通过动态模板的version_id或subject_id过滤统计数据,仅支持使用主模板ID进行过滤。你遇到参数被忽略的情况,大概率是参数传递错误或使用了非主模板ID。
可行解决方案
1. 正确使用主模板ID调用stats接口
首先确认你使用的是动态模板的主ID(从/v3/templates?generations=dynamic返回的模板对象中的id字段,而非versions数组里的子ID),然后按正确格式传递参数:
curl -X GET "https://api.sendgrid.com/v3/stats?start_date=2022-05-01&template_id=YOUR_MAIN_TEMPLATE_UUID" \ -H "Authorization: Bearer YOUR_SENDGRID_API_KEY"
注意:
- 确保API密钥拥有
Stats相关权限 - 如果仍无结果,检查时间范围是否有对应模板的发送记录
2. 通过事件Webhook实现细分维度统计
如果需要按模板version_id或subject_id细分统计,SendGrid原生stats接口无法满足,需通过事件Webhook收集原始发送数据后自行聚合:
- 配置SendGrid事件Webhook,接收
processed、delivered、opened等核心事件 - 每个事件的payload会包含
template_id(主ID)、template_version_id、template_subject_id字段 - 将这些事件存储到数据库(如PostgreSQL、MongoDB),按需编写查询语句按version/subject维度统计发送、打开、点击等数据
3. 关联营销活动实现间接统计
若你的动态模板用于营销邮件,可在发送时关联SendGrid营销活动ID,然后通过/v3/marketing/stats/campaigns接口拉取对应活动的统计数据,间接实现模板维度的统计。
内容的提问来源于stack exchange,提问作者GAKoelling
相关产品推荐
相关产品推荐

