iOS 内购项目的App Store推广

iOS 11以后的用户可以在App Store内的下载页面内直接购买应用的内购商品,这项功能苹果称作做Promoting In-App Purchases,如果你的App需要在App Store推广自己的内购商品,则需要在App Store推广里上传推广用的图像,另外苹果也在iOS11 SDK里面新增了从App Store购买内购项目跳转到App的新方法

  1. 选择推广App内购买项目的好处
  • 提高展示促销机会,在产品页面上,开发者可一次性推广多达20个App内购买项目
  • 提高下载量,App内购买项目的推广还能促进App的下载量。如果用户尚未安装App,在点击购买App内购项目时,会引导其先下载
  1. 如何推广App内购买项目
  • App Store Connect中为准备推广的App内购买项目上传宣传图像。该图像不但会显示在App Store产品页面,也可能显示在搜索结果中。如果入选精品推荐,它更可能显示在Today、游戏今日亮点、App今日亮点中。当App内购买项目显示在App Store产品页面以外的地方(如搜索结果中),App图标会显示在外框的左下方,所以要确保设计的宣传图像不会被外框遮盖,注意重要细节不要放在左下角,不建议在图像上叠加文字

  • App Store后台内购项目的配置,默认情况下,推广的App内购买项目将面向所有设备显示,即使它们没有安装App。①在工具栏中,点按功能,然后在左列中点按App 内购买项目。②点需要修改的App内购买项目,然后前往App Store 推广部分。③配置面向所有 App Store 用户显示,即使是没有安装该 App 的用户复选框设置。④点按存储。⑤在左列中点按App Store 推广,勾选需要推广的项目

  1. 开发者需注意
  • iOS11以上用户可见,所以产品需要针对iOS11以上系统兼容
  • 开发者显示App内购买项目推广后,不一定被显示在苹果搜索结果中,只是可能
  • 苹果明确规定只有除消耗型 App 内购买项目会显示在搜索结果中
  • 产品提供订阅获取收益十分可观,从而苹果针对自动续期订阅也十分看重,并且为其提供了相关设置方法及运营手段的介绍,所以开发者们可重点尝试App内购买项目中自动续期订阅形式展示,能够得到苹果更多认可及展示
  • 游戏开发者可考虑利用关卡设置App 内购买项目的形式吸引苹果关注,不同关卡有不同的App 内购买项目(非消耗型)或完整体验需付费的形式,类似这类App苹果是给予鼓励的
  • 用户直接在App下载页面购买内购商品,这就涉及到从App Store跳转到自己App,所以苹果在SKPaymentTransactionObserver新增了一个代理方法:
    - (BOOL)paymentQueue:(SKPaymentQueue *)queue shouldAddStorePayment:(SKPayment *)payment forProduct:(SKProduct *)product
    这个代理函数是在App Store发起购买的时候会有回调,用户如果在App下载页面点击购买你推广的内购商品,如果用户已经安装过你的App则会直接跳转你的App并调用上述代理方法;如果用户还没有安装你的App那么就会去下载你的App,下载完成之后系统会推送一个通知,如果用户点击该通知就会跳转到你的App并且调用上面的代理方法
    上面的代理方法返回YES则表示跳转到你的AppIAP继续完成交易,如果返回NO则表示推迟或者取消购买,实际开发中因为可能还需要用户登录自己的账号、生成订单等,一般都是返回NO,之后自己手动把代理方法里面返回的SKPayment加入支付队列,然后在按照自己的支付、验证逻辑完成支付
  1. 测试
    苹果提了测试方法,就是修改下面的链接地址,然后在safari浏览器打开,就可以测试从App Store发起购买了。其中链接中的bundleId修改为你自己应用的bundleIdproductId修改为你创建的商品的id,如:itms-services://?action=purchaseIntent&bundleId=bundleId&productIdentifier=productId

附:iOS 内购总结
附:[官方文档] What’s New in StoreKit
附:[官方文档] App Store Connect 帮助
附:[官方文档] 推广您的 App 内购买项目
附:[官方文档] Testing Promoted In-App Purchases
附:Promoting-In-App-PurchasesDemo

-------------本文结束感谢您的阅读-------------
最近的文章

iOS 正则匹配常用方法

验证手机号123456// 验证手机号+ (BOOL)isValidatePhone:(NSString *)phone{ NSString *phoneRegex = @"^1([358][0-9]|4[579]|66|7[0135678] …

继续阅读
更早的文章

iOS block原理详解

block本质 block底层就是一个struct __main_block_impl_0类型的结构体,这个结构体中包含一个isa指针,本质上是一个OC对象 block是封装了函数调用以及函数调用环境的OC对象 block底层结构block底层结构就是__main_block_impl_0 …

继续阅读