內購和廣告

內購——應用內購買

通過蘋果應用程序商店有三種主要賺錢的方式:

? ? ? 直接收費(與國內大部分用戶的消費習慣相悖)

? ? ? 廣告

? ? ? ? ? ? O2O->Online推廣&Offline交易,閉環

? ? ? ? ? ?不要砍功能,增加內容,而不是增加功能

? ? ? 內購:應用程序本身的增值產品,游戲裝備,應用程序中增值功能同樣可以內購

? ? ?第三方支付:跟應用程序無關的

? ? ?內購:三(蘋果)七(開發商)開

提示:

? ? 要做好游戲&應用,一定要研究心理,要研究哲學

? ?人人都是產品經理

內購的五種產品類別

非消耗品(Nonconsumable)一旦購買,終身擁有

? ? ? ? ?指的是在游戲中一次性購買并擁有永久訪問權的物品或服務。非消耗品物品可以被用戶再次下載,并 ? ? ? ? ? 且能夠在用戶的所有設備上共享

消耗品(Consumable),買了就用,用了就沒

? ? ? ? 消耗品購買不可被再次下載,根據其特點,消耗品不能在用戶的設備之間跨設備使用,除非自定義服 ? ? ? ? 務在用戶的賬號之間共享這些信息

以下三種類別在iBooks中使用,目前iBooks不支持大陸市場

ISBN:每本書的一個ID

? ? ? ?免費訂閱(Freesubscriptions)

? ? ? ?自動續費訂閱(Auto-renewingsubscriptions)

? ? ? ?非自動續費訂閱(Nonrenewingsubscriptions)

內購流程


添加StoreKit框架

要使用內購,需要導入StoreKit框架

內購的常用方法

請求有效的產品代號集合

購買指定產品

驗證購買(在購買完成之后,驗證)

恢復購買(針對非消耗品)

請求有效產品集合

//

1) 實例化產品請求

SKProductsRequest

*request = [[SKProductsRequest

alloc]initWithProductIdentifiers:identifiers];

//

2) 設置代理

[request

setDelegate:self];

//

3) 啟動請求

[request

start];

提示:

1. 實例化請求時,必須指定有效的identifiers集合,之所以如此處理,主要是為了確保提交的內購商品真的通過了蘋果的審批,處于可用狀態!

2. 要想獲取到準確的可用產品集合,需要通過代理方法實現

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

3. 越獄用戶無法測試內購,但是可以購買

購買產品

1. 內購的交易過程是通過SKPaymentTransactionObserver監控的,因此需要為IAPHelper添加交易觀察者:

// ?添加交易觀察者對象

[[SKPaymentQueuedefaultQueue]addTransactionObserver:sharedInstance];

2. 由于發起交易需要使用SKProduct對象,因此需要使用字典記錄所有可用的商品

NSMutableDictionary*_productsDict;

交易隊列回調方法

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

{

for(SKPaymentTransaction*transactionintransactions) {//購買完成

if(transaction.transactionState==SKPaymentTransactionStatePurchased)

{

NSLog(@"購買完成%@",transaction.payment.productIdentifier);

[queuefinishTransaction:transaction];

}elseif(transaction.transactionState==SKPaymentTransactionStateFailed)

{

if(transaction.error.code!=SKErrorPaymentCancelled)

{

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

}

}

}

}

恢復購買

[[SKPaymentQueuedefaultQueue]restoreCompletedTransactions];


購買數據記錄問題——系統偏好

[[NSUserDefaultsstandardUserDefaults]setBool:isPurchasedforKey:productId];

[[NSUserDefaultsstandardUserDefaults]synchronize];

廣告簡介

在蘋果的廣告市場上有兩套系統

? ? ? -展現,程序只要嵌入廣告即可

? ? ? -發布

廣告的展現

? ? ? -廣告的展現內容,是由蘋果根據應用程序的關鍵字,分類,上架地區等綜合評定后自動推送的

? ? ? -應用程序無需關心

廣告收益三七開

添加iAd.framework框架

添加ADBannerView視圖,并設置代理方法

廣告條加載完成之前最好隱藏

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

self.bannerBottomConstraint.constant=20.0;

[UIViewanimateWithDuration:0.5animations:^{

[self.viewlayoutIfNeeded];

}];

NSLog(@"加載廣告成功");

}

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

NSLog(@"加載廣告失敗%@",error);

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容