2013-03-13 43 views

回答

3

使用这样的事情

集布尔关键isPurchase是在NSUserDefaults的,当你购买应用程序

if(![userDefaults boolForKey:@"isPurchase"]) 
     { 
      NSLog(@"Enter add start "); 

      [[Chartboost sharedChartboost] showInterstitial]; 
     } 
     [userDefaults synchronize]; 

    } 
2

最简单的方法是保存在用户的默认设置的信息,如上面的帖子,但这韩元提到不安全,因为用户默认可以很容易地被许多软件访问,并且可以编辑/添加你的密钥,除非它是一个大的和秘密的,或者没有机构将它作为一个黑客发布。

最好的办法是将此信息存储在服务器(如果有的话)或将此信息存储在密钥链中,因为它是安全的。

如何做到这一点很容易与钥匙串按照以下后

iOS: How to store username/password within an app?

2

Chartboost提供委托方法-(BOOL) shouldDisplayInterstitial:(NSString*)location

返回“假”的,这种方法会阻止广告展示;如果您想要展示广告,请记得返回“真实”。只需比较本地存储的布尔值以跟踪他们是否购买了IAP。

原因推荐这种方法,而不是硬编码是因为您可能想要留下几个特定于跨促销活动的位置,以宣传您自己的应用程序,这些应用程序仍将能够在未来展示广告。

通过这种方式,当您发布新应用程序时,您可以运行有限促销,并确保购买无广告IAP的最忠实粉丝仍然可以在您的新游戏中看到跨促销广告 - 这是一种很好的方式将您最高质量的用户集中到您的新应用程序中!如果你把广告艺术做对了,他们甚至不会知道这是一个广告,你可以做到这一点,所以他们只看到一次。

然后,您可以在需要显示此内容的位置添加showInterstitial:@"cross-promo",并针对该位置停用所有发布广告系列。然后,将来当您有新应用时,请在该位置添加一个新的交叉促销活动,宣传您的新应用,并且每个人都会看到它 - 即使是购买IAP的人!

这个实现的示例:

-(BOOL) shouldDisplayInterstitial:(NSString*) location { 
    if(_userBoughtNoAdsIAP && location != @"cross_promo"){ 
     return FALSE; 
    } 
    return TRUE; 
} 

而且不要忘记设置[Chartboost sharedChartboost].delegate = self;,以确保委托方法正常工作!

完全披露:我为Chartboost工作