美文网首页iOS Developer
重点 (二十二) : 内购/广告

重点 (二十二) : 内购/广告

作者: JonesCxy | 来源:发表于2016-10-10 09:09 被阅读242次

内购——应用内购买

通过苹果应用程序商店有三种主要赚钱的方式:

直接收费(与国内大部分用户的消费习惯相悖)

广告

O2O -> Online推广 & Offline交易,闭环

不要砍功能,增加内容,而不是增加功能

内购:应用程序本身的增值产品,游戏装备,应用程序中增值功能同样可以内购

第三方支付:跟应用程序无关的

内购:三(苹果)七(开发商)开

提示:

要做好游戏 & 应用,一定要研究心理,要研究哲学

人人都是产品经理

内购的五种产品类别

非消耗品(Nonconsumable)一旦购买,终身拥有

指的是在游戏中一次性购买并拥有永久访问权的物品或服务。非消耗品物品可以被用户再次下载,并且能够在用户的所有设备上共享

消耗品(Consumable),买了就用,用了就没

消耗品购买不可被再次下载,根据其特点,消耗品不能在用户的设备之间跨设备使用,除非自定义服务在用户的账号之间共享这些信息

以下三种类别在iBooks中使用,目前iBooks不支持大陆市场

ISBN:每本书的一个ID

免费订阅(Free subscriptions)

自动续费订阅(Auto-renewing subscriptions)

非自动续费订阅(Nonrenewing subscriptions)

1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png

添加StoreKit框架

要使用内购,需要导入StoreKit框架

内购的常用方法

请求有效的产品代号集合

购买指定产品

验证购买(在购买完成之后,验证)

恢复购买(针对非消耗品)

请求有效产品集合

实例化产品请求

SKProductsRequest*request = [[SKProductsRequest
alloc]initWithProductIdentifiers:identifiers];

设置代理

[request setDelegate:self];

启动请求

[request start];

提示:

  1. 实例化请求时,必须指定有效的identifiers集合,之所以如此处理,主要是为了确保提交的内购商品真的通过了苹果的审批,处于可用状态!

  2. 要想获取到准确的可用产品集合,需要通过代理方法实现

  • (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
  1. 越狱用户无法测试内购,但是可以购买

购买产品

  1. 内购的交易过程是通过SKPaymentTransactionObserver监控的,因此需要为IAPHelper添加交易观察者:

添加交易观察者对象

[[SKPaymentQueue
defaultQueue]addTransactionObserver:sharedInstance];

  1. 由于发起交易需要使用SKProduct对象,因此需要使用字典记录所有可用的商品

NSMutableDictionary
*_productsDict;

交易队列回调方法

  • (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions

{

for (SKPaymentTransaction *transactionin transactions) {

        购买完成

if
(transaction.transactionState== SKPaymentTransactionStatePurchased) {

        NSLog(@"购买完成%@", transaction.payment.productIdentifier);



        [queuefinishTransaction:transaction];

    } else

if (transaction.transactionState ==SKPaymentTransactionStateFailed) {

       if (transaction.error.code != SKErrorPaymentCancelled)

{

NSLog(@"交易失败:%@", transaction.error.localizedDescription);

        }

    }

}

}

恢复购买

[[SKPaymentQueue

defaultQueue]restoreCompletedTransactions];

购买数据记录问题——系统偏好

[[NSUserDefaults standardUserDefaults]setBool:isPurchased
forKey:productId];

[[NSUserDefaults
standardUserDefaults]synchronize];

广告简介

在苹果的广告市场上有两套系统

-展现,程序只要嵌入广告即可

-发布

广告的展现

-广告的展现内容,是由苹果根据应用程序的关键字,分类,上架地区等综合评定后自动推送的

-应用程序无需关心

广告

广告收益三七开

添加 iAd.framework 框架

添加 ADBannerView 视图,并设置代理方法

广告条加载完成之前最好隐藏

  • (void)bannerViewDidLoadAd:(ADBannerView *)banner {

    self.bannerBottomConstraint.constant = 20.0;

    [UIView animateWithDuration:0.5 animations:^{

      [self.view layoutIfNeeded];
    

    }];

    NSLog(@"加载广告成功");

}

  • (void)bannerView:(ADBannerView *)banner
    didFailToReceiveAdWithError:(NSError *)error
    {

    NSLog(@"加载广告失败 %@", error);

}

**********************笔记********************


内购和广告:

  1. 什么是内购?

内购就是指,在APP内购买某些产品

如果你在App中销售的商品,跟App有关(例如植物大战僵尸中的道具,需要开启关卡,拥有某种技能等等).那么,苹果规定,必须通过内购方式购买.

内购分成:
3 : 7

  1. 为什么做内购?

  2. 开发者创收的一种模式: free + 内购

  3. 某些业务必须使用内购

  1. 内购的产品类型?

1.非消耗品(Nonconsumable)

买了就一直有,不会消耗,例如开启关卡

一般指的是在游戏中一次性购买并拥有永久访问权的物品或服务。非消耗品物品可以被用户再次下载,并且能够在用户的所有设备上使用

2.消耗品(Consumable)

买了就用,用了就没

专为支持可消耗的物品或服务设计的,消耗品购买不可被再次下载,根据其特点,消耗品不能在用户的设备之间跨设备使用,除非自定义服务在用户的账号之间共享这些信息

3.其他类型

以下三种类别在iBooks中使用,目前iBooks不支持大陆市场

免费订阅(Free
subscriptions)

自动续费订阅(Auto-renewing
subscriptions)

非自动续费订阅(Nonrenewing
subscriptions)

4.内购演练

  1. 在App管理中心,创建一个App,并填写App信息

注意: 此处创建的App时,填写套装ID,时,必须选择可以内购的套装ID

  1. 创建内购商品,并添加到App,指定此App,可以销售哪些商品

注意: 创建内购商品的前提,是你已经填写了税务/银行信息,否则的话,无法创建

  1. 添加用于测试内购的测试账号
  1. 创建App项目,开始开发
  1. 代码实现内购流程

(1) 从APP服务器请求数据列表, 并行苹果服务器请求可以销售的商品列表

[XMGDataTool
getGoodsWithResult:^(NSArray *goods) {

NSArray *ids = [goods valueForKeyPath:@"goodID"];

请求哪些商品可以卖

NSSet *idSet = [NSSet setWithArray:ids];

SKProductsRequest *request = [[SKProductsRequest alloc]
initWithProductIdentifiers:idSet];

request.delegate = self;

[request start];

}];

(2) 在代理方法中获取并显示可销售列表

  • (void)productsRequest:(SKProductsRequest *)request
    didReceiveResponse:(SKProductsResponse *)response

{

self.products = response.products;

}

(3) 用户购买商品, 并监听商品交易状态

取出商品

SKProduct
*product = self.products[indexPath.row];

购买商品

SKPayment
*payMent = [SKPayment paymentWithProduct:product];

把凭证加入到队列,
等待用户付款

[[SKPaymentQueue
defaultQueue] addPayment:payMent];

设置监听者,
监听整个交易状态

[[SKPaymentQueue
defaultQueue] addTransactionObserver:self];

(4) 实现监听交易状态方法

交易状态发生变化时调用

  • (void)paymentQueue:(SKPaymentQueue *)queue
    updatedTransactions:(NSArray<SKPaymentTransaction *> *)transactions

{

[transactions enumerateObjectsUsingBlock:^(SKPaymentTransaction *_Nonnull obj, NSUInteger idx,BOOL * _Nonnull
stop)

{

     SKPayment *payment , 小票, 包含商品

     SKPaymentTransactionState

transactionState 交易状态

  switch

(obj.transactionState) {

      case 

SKPaymentTransactionStatePurchasing:

NSLog(@"正在付款");


          break;


           


      case 

SKPaymentTransactionStatePurchased:

      {

        
NSLog(@"付款结束");


          [queue finishTransaction:obj];


          break;


      }


      case 

SKPaymentTransactionStateFailed:

      {

        
NSLog(@"交易失败");


          [queue finishTransaction:obj];


          break;


      }


      case 

SKPaymentTransactionStateRestored:

NSLog(@"恢复购买");


          break;


      case

SKPaymentTransactionStateDeferred:

NSLog(@"推迟付款");


          break;


           


      default:


          break;


  }

}];

}

具体步骤, 请参照步骤截图详解

  1. 广告

1.广告的作用?

属于创收的一种方式, 你在App内展示广告,苹果会付费给你,分成从原来的4:6 到3:7

2.如何展示广告

  • 导入框架: iAd.framework

  • 添加控件: ADBannerView

  • 实现代理ADBannerViewDelegate,优化用户体验

相关文章

  • 重点 (二十二) : 内购/广告

    内购——应用内购买 通过苹果应用程序商店有三种主要赚钱的方式: 直接收费(与国内大部分用户的消费习惯相悖) 广告 ...

  • 内购和广告

    内购和广告 1. 什么是内购? 2. 为什么做内购? 3. 内购的产品类型? 非消耗品(Nonconsumable...

  • 内购和广告

    内购——应用内购买 通过苹果应用程序商店有三种主要赚钱的方式: 直接收费(与国内大部分用户的消费习惯相悖) ...

  • 内购

    内购__应用内购买__storeKit AppleStore有三种主要赚钱的方式: - 直接 收费 - 广告 ...

  • 苹果内购

    重点总结: 1.获取内购列表(从App内读取或从自己服务器读取) 2.App Store请求可用的内购列表 3.向...

  • 苹果内购流程,看我就足够了

    重点总结: 1.获取内购列表(从App内读取或从自己服务器读取)2.App Store请求可用的内购列表3.向用户...

  • iOS开发支付篇——内购(IAP)详解

    1内购所需要的资料整理总结 思维导图 重点总结: 1.获取内购列表(从App内读取或从自己服务器读取) 2.App...

  • 六. 内嵌广告

    广告也属于App创收的一种方式, 你在App内展示广告, 苹果会付一些广告费给你, 并且还会减少一些对你App内购...

  • 内购流程

    内购流程 1.构建内购的设置,需要设置内购商品,填写银行卡信息 进入苹果官方后台配置需要内购商品的信息(包括内购的...

  • 推荐一款手机PDF阅读器、编辑器-xodo docs安卓版

    手机版WPS,打开PDF太慢了, 而且广告满天飞!! 有没有一款, 打开快速 没有广告 免费无内购 手机版的PDF...

网友评论

    本文标题:重点 (二十二) : 内购/广告

    本文链接:https://www.haomeiwen.com/subject/javmyttx.html