这是我的 GADRewardedInterstitialAd 代码:
-(void)loadRewardedInterstitial
{
[GADRewardedInterstitialAd
loadWithAdUnitID:ADMOB_REWARDED_INTERSTITIAL
request:[GADRequest request]
completionHandler:^(
GADRewardedInterstitialAd *_Nullable rewardedInterstitialAd,
NSError *_Nullable error) {
if (!error) {
self.rewardedInterstitialAd = rewardedInterstitialAd;
self.rewardedInterstitialAd.fullScreenContentDelegate = self;
}
}];
}
-(void)playRewardedInterstitial
{
[self.rewardedInterstitialAd presentFromRootViewController:self.viewController
userDidEarnRewardHandler:^{
[self rewardInterstitialDoneRewardUser];
[self loadRewardedInterstitial];
}];
}
如何每天只展示 3 个广告?
答案 0 :(得分:0)
我找到了解决方案:
-(void)playRewardedInterstitial
{
if([self allowRewardedInterstitial])
{
[self.rewardedInterstitialAd presentFromRootViewController:self.viewController
userDidEarnRewardHandler:^{
[self rewardInterstitialDoneRewardUser];
[self loadRewardedInterstitial];
}];
}
else
{
UIAlertView* alert= [[UIAlertView alloc] initWithTitle:@"Today Already Watched!" message: @"Checkout tomorrow for Free Coins!"
delegate: NULL cancelButtonTitle: @"OK" otherButtonTitles: NULL];
[alert show];
}
}
-(bool)allowRewardedInterstitial
{
bool allow_rewarded_ads = false;
NSDate *currentDate = [NSDate date];
//http://stackoverflow.com/questions/9769190/create-a-nsdate-from-a-string
if([[NSUserDefaults standardUserDefaults] objectForKey:@"Rewarded_Date"] != nil)
{
NSDate *prefData = [[NSUserDefaults standardUserDefaults] objectForKey:@"Rewarded_Date"];
NSDateComponents *components1 = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:prefData];
NSDateComponents *components2 = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]];
NSTimeInterval distanceBetweenDates = [currentDate timeIntervalSinceDate:prefData];
double secondsInAnHour = 3600;
NSInteger hoursBetweenDates = distanceBetweenDates / secondsInAnHour;
//NSLog(@"hoursBetweenDates: %d", hoursBetweenDates);
if( [components2 day] != [components1 day] )
{
allow_rewarded_ads = true;
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"Reward_Play_count"];
}
else
{
if([[NSUserDefaults standardUserDefaults] objectForKey:@"Reward_Play_count"])
{
int count = [[[NSUserDefaults standardUserDefaults] objectForKey:@"Reward_Play_count"] intValue];
count++;
[[NSUserDefaults standardUserDefaults] setInteger:count forKey:@"Reward_Play_count"];
[[NSUserDefaults standardUserDefaults] synchronize];
if(count <=3)
allow_rewarded_ads = true;
else
allow_rewarded_ads = false;
}
else
{
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"Reward_Play_count"];
[[NSUserDefaults standardUserDefaults] synchronize];
allow_rewarded_ads = true;
}
}
}
else
{
allow_rewarded_ads = true;
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"Reward_Play_count"];
}
if(allow_rewarded_ads)
{
[[NSUserDefaults standardUserDefaults] setObject:currentDate forKey:@"Rewarded_Date"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
return allow_rewarded_ads;
}