【汇总】苹果App Store与ASO的一些最新情报

作者:AppCPU 2017-08-29 22:21:17

25b5a2dd609810048b5019246ce3664bblob.png


苹果新品发布会或将9月12日举行   

《华尔街日报》援引知情人士的消息称,苹果公司将于9月12日召开秋季新品发布会。知情人士称,苹果此次将发布三款iPhone,分别为iPhone 7s、iPhone 7s Plus和iPhone 8。此外,苹果还将发布内置LTE模块的Apple Watch智能手表(支持独'立通话)和4K Apple TV机顶盒。

苹果App Store继支付宝后本周将上线微信支付

据知情人士透露,App Store将于本周内开始支持微信支付。苹果App Store是在去年11月正式接入支付宝。在接入支付宝这样的本土移动支付方式后,用户出现了迅速增长。苹果首席财务官Luca Maestri曾在今年8月初对外表示,过去90天,App Store付费服务用户数达到1.85亿,增长了12%。

目前,大中华区已经成为App store第一大市场。在本月初Apple发布的2017第三季度的财报显示,服务类营收在中国收获颇丰,第三季度收入72亿美金,同比增长22%。

苹果App Store账号双重认证对机刷带来威胁

IOS11最新beta版上线Apple ID 额外安全防护,登录设备时,需要使用另一台设备或电话号码验证身份。这将对真机刷切换账号带来巨大的挑战。肉刷团队也将受到较大影响。

1

苹果App Store经历多个算法调整期,ASO效果不稳定

从8月19日开始,苹果再一次小范围,调整测试榜单和关键词排名算法,具体特点就是锁定了关键词,查看榜单的变动情况。

8.18:关键词效果给力
8.19:关键词效果不好
8.20:关键词效果不好,榜单效果上升
8.21:关键词效果不好,榜单效果给力
8.22:关键词效果给力,榜单效果回落
8.23:关键词效果给力,榜单效果回落
… …

波波分析这里可能是苹果在单独调试榜单算法,锁定关键词的目的是排除其他干扰因素。调整的维度据观察,付费榜变动较大,推测是增加了新增的权重,同时加入了新增收益的权重。之后板单算法又恢复到之前的状态,陆续出现了一些短时间的锁词。

目前词的方面,诸如:彩票、理财等热词处于锁词状态,没有大浮动的排名变动,个别小词也有类似现象,请大家在投放过程中注意观察和测试,避免不必要的损失。

整个ASO大环境,逐渐有暴力优化在向适度优化过渡,CP们逐渐从短期利益的追逐向长期稳定效果的保障转化。积分墙和优质权重未来将会越来越重要。

2

App Store评论点赞的正确姿势

在更新后的App Store里(需要更新到iOS 10.3.3 ),进入某一款应用的评论页面,长按其中一条评论(功能属于半隐藏状态),会弹出一个小弹窗,小框包括以下三个选项:

3

点击有帮助后,

会出现一个提示图。

4

App Store还提示玩家如果只是

“很差或没有帮助”,

请不要举报。

5

这个功能是自从上半年初,

增加开发者回复功能后,

App Store推出的另一个改善应用商店体验的功能。

很多大赞这个功能:

对于CP:可以搜集用户的普遍的诉求,作出产品优化的优先级,同时用户也能帮助CP剔除一部者恶意的评论。

对于用户: 可以优先看到“有用”的评论,在一定程度上,防止被刷评误导。

但是,这个功能真的会按照App Store所期待的方式和谐的运行么?其实很多人早早就发现了此功能,并将其纳入ASO的优化范畴,进行评论排名和效果的优化测试了。最简单的测试手段就是,直接放给积分墙用户,去做优化操作,前期做任务的人上传图片,后台人工审核就可以。这里iMoney积分墙随时欢迎大家来测试具体效果。

iOS 10.3 以后,请求应用商店评分的正确姿势

作者:张嘉夫
链接:http://www.jianshu.com/p/adee28dcfe09

6

App 开发者的最主要目标之一就是获得更多曝光,并且从用户那里接收反馈从而改进 app,以便鼓励其他用户尝试使用。多年以来,开发者都在使用第三方方法来建议用户去商店打分,大部分是基于用户使用 app 的时长和频率。但使用这些第三方方法会导致体验不够理想。通常用户会被送到 AppStore app 来撰写评价,甚至用户还要手动选择“评论”标签页才能开始写评价。

在 iOS 10.3 的更新里,Apple 在 iOS 平台上做了几个重要改动,最受开发者欢迎的就是向用户询问评分的官方方式。所以从 10.3 开始,我们可以用 StoreKit 来询问用户评分,并且 StoreKit 会替我们处理剩下的工作。可以看这里的文档。理论上来说,开发者只要加一行代码即可请求评分,但还有几点值得注意。 

根据文档所述,请求评分函数使用了私有方法来分析当前是否是向用户询问评分的好时机,所以 Apple 强烈建议开发者不要在相应用户行为时调用此方法。例如,如果你把请求评分放在按钮触摸的回调函数里,但此时 iOS 可能决定不显示评分,所以用户就会认为 app 的功能出现了问题。另一方面,也不要太早让用户评分,最好等 app 运行几次之后再询问评分。尽管我们并不了解 Apple 的算法,但我们知道此方法的行为模式,所以最好在确定用户处于合适的时间时再进行询问。

注意:在开发时,所有评分请求都会通过,也就是说每次请求评分,评分对话框都会显示,但无法提交评分。在 Testflight 中,请求都不会被通过,所以如果 Testflight 测试时评分对话框没有正确显示,不要慌张。app 上架后,就会使用 Apple 方法在合适的时间显示对话框了。

不多说了,下面是用 Swift 实现请求评分的方式。
1. 首先,import StoreKit
import StoreKit
2. 现在就可以如下询问评分了
SKStoreReviewController.requestReview()
就这么简单!比想象中容易多了吧!
如果你想支持老的 iOS 版本,最好这么做:
if #available(iOS 10.3, *) {
    SKStoreReviewController.requestReview()           
} else {
    // 退回老的版本
    // 尝试手写或用第三方方法。
}
一步步来
在我看来,实现 RequestReview 的正确姿势是:
在项目里创建新的 Swift 文件
导入所需框架
import Foundation
import StoreKit
定义设置变量
let runIncrementerSetting = "numberOfRuns"  // 用于存储运行次数的 UserDefauls 字典键
let minimumRunCount = 5 // 询问评分的最少运行次数       
然后写一个运行计数器,功能就是在 UserDefaults 存储运行次数。此计数器需要两个函数。一个从 UserDefaults 里读取,另一个将其加一并存回 UserDefaults。
func incrementAppRuns() {                   // app 运行次数计数器。可以在 App Delegate 中调用此方法
    
    let usD = UserDefaults()
    let runs = getRunCounts() + 1
    usD.setValuesForKeys([runIncrementerSetting: runs])
    usD.synchronize()
    
}

func getRunCounts () -> Int {               // 从 UserDefaults 里读取运行次数并返回。
    
    let usD = UserDefaults()
    let savedRuns = usD.value(forKey: runIncrementerSetting)
    
    var runs = 0
    if (savedRuns != nil) {
        
        runs = savedRuns as! Int
    }    
    print("已运行\(runs)次")
    return runs    
}
下一步是用于请求评分的函数。我们需要在此函数里考虑两个因素。首先,是否有足够的运行次数来询问评分。其次,检查是否是 iOS10.3 及以上版本,这样我们才能调用此函数。
func showReview() {    
    let runs = getRunCounts()
    print("显示评分")    
    if (runs > minimumRunCount) {        
        if #available(iOS 10.3, *) {
            print("已请求评分")
            SKStoreReviewController.requestReview()            
        } else {
            // 回到老版本
        }        
    } else {        
        print("请求评分所需的运行次数不足!")        
    }    
}
下一步就是从 App Delegate 里调用运行计数器。所以在 app 的 didFinishLaunchingWithOptions 函数里添加如下内容:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        incrementAppRuns()
        return true
 }
最后一步是在合适的时间里调用 showReview()。我的建议是在用户完成 app 中某项主要工作后调用此函数。例如你在开发游戏,向用户展示分数时就可以调用此函数。记住如果要把它放在按钮回调里,就要和其它任务一起才行。例如,在 Shuffle 里面,我把 showReview() 函数放在壁纸的下载按钮中。所以用户下载完壁纸后,如果 requestReview 决定显示评分,就会显示在下载完成的壁纸上。这样就可以确保按钮总是能够正确工作,同时还能确保用户在 app 中完成主要任务时可以显示请求评分页面。
showReview()
好啦!现在可以运行你的 app 来看看效果。


转自:爱盈利 

作者:波波



4c7388f3d53f77221e1304a4a03c5050小微ASO业务推广-文末-新.jpg