锋友们一定都经历过这样的情况,在一些视频 App 上观看一个 5 分钟不到的视频的时候,非付费会员的用户需要忍耐 1 分钟左右的广告,没错,就是忍耐。日前,锋友“光之伤”分享了一个使用 Surge 软件屏蔽应用内广告的教程,一起来看看吧。
该锋友表示,Surge 并非专门用于屏蔽广告的应用,它是一款基于 iOS 9 的新特性 Network Extension 开发的网络调试工具,较适用于开发人员。因此,本教程的目的是为了给买了 Surge 对这款应用的其他功能不甚了解的锋友提供一些帮助。
在开始操作之前,我们先来了解一下使用 Surge 屏蔽应用内广告的思路:Surge 在打开代理的情况下会接管手机上几乎所有的网络通信。某个应用需要联网的话就必须先把网络请求发送给 Surge,然后 Surge 会判断这个请求应该如何处理,是连接还是直接丢掉。而直接丢掉请求不发送这种处理方式就可以用来屏蔽广告的网络请求。
接下来是具体的操作步骤:
1. 打开 Surge 的代理功能。
2. 打开想要屏蔽应用内广告的应用,以屏蔽优酷 HD 视频前的广告为例。我们需要随便打开一个视频,然后它就会开始播放广告。
3. 马上切换到 Surge,点击界面底部的 Analytics -- Recent Requests,然后点击右上角的刷新图标。这时我们就能看到如下的网络请求列表:
4. Surge 限制日志只能显示最近 50 条请求列表的内容,但是一些应用可能一次性发送几十条网络请求,所以我们可以看到最近的 50 条网络请求基本上带有优酷的网址,它们都是优酷 HD 发送的网络请求。
5. 我们只能一条一条地筛选,找出有可能是广告的网络请求。不过,我们只要稍加注意就能发现,大部分请求都是类似的,比如上图中的这条请求的详情。
Requests Headers (这里面包含了网络请求必须的一些请求数据)的第一条以POST/GET 开头,后面的则是完整的网址。详情中,response-time 指的是响应时间,该锋友表示,我们可以以此推测该请求与广告无关,因此,类似格式的请求都可以排除。
6. 而在详情中包含有 ad/ads(advertisement 的缩写,即广告)等字眼的请求需要屏蔽。我们需要切换到 Config -- Edit -- 当前使用的配置 -- Rules -- 右上角加号 -- 选第二个 suffix -- 在 VALUE 内填入 ad.api.3g.youku.com,并选择 REJECT(即拒绝请求),然后点击右上角的 Done -- 返回 -- 右上角 Done,重启 Surge。
7. 后台关闭优酷 HD 之后重新打开,再选择刚刚播放的视频,看看是否还会播放广告。
8. 另外如果是图片广告的话,在网络请求的日志详情里的 Response Header 的 Content-type(表示返回数据的类型)一般是 image/jpeg 或者 image/jpg 等等。
锋友“光之伤”表示,其他应用的屏蔽广告步骤跟上述操作类似。但是需要注意的是,Surge 不是专门的屏蔽应用,建议锋友们尽量少用 REJECT 规则,否则可能会出现一些不必要的问题。