如何监控App下架

1,789 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

最近收到了一个需求,需要完成一个下架监控系统,就是当app下架时能够及早发现并发送通知。 下架基本上就是说你的用户流失完了,损失很严重,因此能够今早发现app下架,就能早做处理。

什么是下架

下架就是你这个app在市场内无法搜索了,无法安装。 但是对于之前安装的用户,除了原生支付,其他一般功能不会受到影响。

为什么下架

这个原因太多了,具体官方会给你发邮件。

监控iOS下架

我们随便在美区里找一个下架的app,apps.apple.com/us/app/id15… 其中id后面的部分就是苹果的appId,每次新建app后都会产生。

这里有一个苹果官方的API,https://itunes.apple.com/lookup?id=${appId}

{
 "resultCount":1,
 "results": [{}]
}

其中的resultCount就是这个产品是否在线,如果等于1就是在线,反之就是下架。

需要注意的一点是,这个接口默认是文件下载,因此需要指定一返回值类型:json.

由于这个接口配置了cors,所以需要通过node去请求。这里我采用axios 基本代码如下

const axios = require('axios')

axios.get('https://itunes.apple.com/lookup',{
    responseType:'json',
    params:{
        id:1595794091
    }
})
.then(res=>console.log(res.data))

监控安卓下架

很奇怪的事,安卓并没有什么好用的接口,但是经过我的仔细琢磨,还是发现了如何监控。 我们打开Google play,随便选择一个app,可以发现他的链接是如下格式https://play.google.com/store/apps/details?id=com.netflix.mediaclient

很明显的是,id后面是app的包名,也就是bundleId.

现在我们随便编一个包名,并打开F12-->network-->all image.png

很明显,当这个app不存在时,这个网址会返回404.因此,我们可以通过http状态码判断app是否在线

基本代码如下

const axios = require('axios')

axios.get('https://play.google.com/store/apps/details',{
    params:{
        id:'com.test.test'
    }
})
.then(res=>console.log(res.status))

下期预告

在下架监控系统中,我选择了json文件作为数据库,所以我选择了本文的主角lowdb.