先明确:到达率到底怎么算
行业里常用的算法其实很朴素:
- 分母是你这一批提交的号码总数,比如发了 1 万个;
- 分子是这批里返回失败的号码数量;
- 失败数 ÷ 总数,就得到这一批的失败比例,反过来就是到达率。
听起来简单,坑在于「什么算失败」的口径不统一:是提交时就被接口拒掉,还是提交成功但通道回执是失败,还是压根没收到状态报告。这三种混在一起算,同一批数据能得出完全不同的结论。所以排查的第一步不是盯数字,而是先把口径对齐——只统计有明确失败状态报告的号码,没有回执的那部分单独列出来做趋势观察。
怎么造失败样本:拿停机和关机号码试
想验证「失败」长什么样,最直接的办法是主动造样本:
- 找几个已经停机或者关机的号码,直接提交发验证码;
- 看接口返回什么错误码、多久返回、状态报告里怎么描述;
- 再拿一个真实正常的号码做对照,比较两者在回执上的差别。
这样做的好处是,你能提前知道自家系统对不同失败类型是怎么落库的。以后线上再出现类似状态,一眼就知道它属于哪一类,不用再去猜。批量发送前先做一遍空号检测,把明显无效的号码筛掉,也能减少无谓的失败统计。
失败原因按链条分段查
短信从你的系统走到用户手机,中间要过好几段,排查也应该按段来:
- 号码侧:空号、停机、关机、号码格式不规范、号段异常;
- 通道侧:运营商侧限速、通道临时波动、签名或模板未报备;
- 内容侧:验证码短信里的变量填充异常、模板与报备内容不一致;
- 接入侧:调企业短信API 时并发过高、超时设置过短、参数拼装错误,都会表现为「发不出去」。
排查方法是分批次、分通道做对比:同一批号码拆成两组走不同通道,或者同一通道在不同时间段各发一批,差异出现的位置就是问题所在。
把排查做成日常动作
一次性排查解决的是当下,真正省事的是把它变成常态:给验证码短信的关键指标设阈值告警,出现异常先看最近一次变更(换签名、改模板、调并发都算),再回到上面的分段法逐段排除。日志要留全,尤其是请求时间、通道编号、状态码这三项,缺一项就只能靠猜。
四川恒世信通自研的融合通信平台同时支持网页后台批量群发和 HTTP API 对接,状态报告可查,业务覆盖短信群发、验证码短信、通知短信、营销短信、彩信、视频短信、5G 消息、空号检测以及短信系统本地化部署,累计服务超过 10 万家企业。平台只做合规业务,不接网贷、债务优化这类灰色行业;营销类短信的拒收提示按现行规范写在末尾:「拒收请回复R」。
技术咨询可拨打 18160031300,业务咨询 15982152804,办公地址在成都市武侯区剑南大道中段 1533 号时代晶座 2 栋 6 楼。挑成都短信群发平台的时候,先看对方有没有增值电信SP资质和码号资源,这类信息在工信部网站都能查到,比听口头承诺靠谱。
常见问题
问:验证码到达率一般怎么计算?
答:用这一批的失败号码数除以提交总数,得到失败比例,反过来就是到达率。前提是先统一「失败」的口径,提交失败、回执失败和没有回执要分开统计,否则算出来的数没有可比性。
问:怎么测试失败的情况?
答:找几个停机或关机的号码发过去,看接口的错误码和状态报告,再和正常号码做对比,就能看出系统是怎么标记失败的。
问:没有状态报告就等于发送失败吗?
答:不一定。没有回执通常说明状态回执在某个环节丢了,需要单独跟踪,不能直接算作失败或成功,建议把这类号码单独拉出来按批次看趋势。
问:营销短信的拒收提示怎么写?
答:现行规范写法是「拒收请回复R」,放在短信末尾,不要用「回T退订」这类旧写法。
问:四川恒世信通能提供哪些短信相关服务?
答:短信群发、验证码短信、通知短信、营销短信、彩信、视频短信、5G 消息、空号检测、短信 API 接口和短信系统本地化部署。公司持有工业和信息化部《增值电信业务经营许可证》B2-20170438,四川 106 短信码号资源为 10692013。