上周有一个活动整个空着回来,屏幕上没有任何东西说明原因。顺着这条线追下去,翻出了一个难对付的网站在 Aiter 里要走的那条路上的三个各自独立的问题。这条更新把三个都收了尾。
以前会把我们挡回去的网站
不少大品牌都跑着反机器人防护,凡是从数据中心过来的一律拦下,而我们的扫描看上去正是那个样子。一旦碰上,我们没有第二步棋,而这件事在竞品分析里最疼,因为你最想读的那些站,防得也最严。
现在有了一道阶梯。普通请求被挡回去之后,Aiter 会换一条看起来像普通访客的路再试,然后用更简单的方式读这个页面,然后走品牌自己的入口页,再然后换一个完全不同的来源。第一级台阶和我们以前做的逐字节一致,所以昨天能跑通的网站,今天的表现和昨天一模一样。
Aiter 现在也分得清一个页面和一次礼貌的拒绝。有的网站会完全正常地回应你,递过来的却是一张写着 Access Denied 的页面。这种东西我们以前当成内容归档,还在上面搭简报。现在它算作拦截,直接走下一级台阶。
整道阶梯有时间上限,所以一个没希望的网址会在合理的时间内失败,而不是一直挂着。
简报送到才扣费,不是开跑就扣
以前只要一次运行开始,积分就从你的余额里出去了。如果这次运行随后中途死掉,本该有一次退款把它放回来——这套办法一直管用,直到某次运行死的方式根本走不到退款那一步。
现在扣费发生在简报交到你手上的那一刻。不在开始时,不在重试时,也不为一个读不出来的来源扣。什么都没到,就是什么都没扣,而这一点现在成立是因为它就是这么造的,不是因为我们记得去撤销。被我们自己平台掐掉的运行,是免费的。
运行现在还会自己重试一次,对你不收费,因为连接中断本来就是活动最后空着收场的常见原因。
真的失败时,它会讲出来
旧版本的失败是以最难受的方式沉默:活动就那么杵在那里,看上去像是生成从来没开始过。现在它会出声失败,点名那个把我们挡回去的网站,并且指向那个你可以自己描述业务的输入框。
被拦截和被忽略给的是不同的解释,因为它们要求你做的事不一样。这些文案是用每种语言分别写的,不是翻译过去的。
手机上的可点区域更大了
我们按手机宽度量了每一个公开页面,数出有多少按钮和链接小到没法稳稳点中。首页有 19 个,价格页 10 个,博客 15 个。现在一个都不剩。
有八个表单输入框小到会让 iPhone 在聚焦时放大,而且再也不缩回去。这种事只有轮到自己在火车上遇上时才会注意到。这些也修好了,还有一处博客排版,它把页面撑得比屏幕略宽。
用你正在阅读的语言生成活动
从营销页面发起的活动,以前无论页面是什么语言,出来的一律是英文。产品内部那个窗口做对了,进来路上的那些按钮没有。现在它们口径一致了,而且原本在那份清单里完全缺席的三种语言,也不再退回英文。
→ 从任意解决方案页面发起一个,它会用你的语言回来。