2013-03-13 71 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工作