我正在尝试使用Heyzap SDK在iOS上购买In App后停止所有广告。
我试过了:
-(void) OnRemoveADS {
...
[self buyFeatureRemoveADS];
[HeyzapAds nil];
[HeyzapAds removeFromSuperview];
HZInterstitialAd = nil;
}
它们都会产生Xcode错误。
我知道我必须将它们从不同位置关闭,因为我的横幅广告是与插页式广告分开初始化的。
与此方法中的else语句类似:
-(id) init {
if (self = [super init]) {
g_bRemoveADS=[[NSUserDefaults standardUserDefaults] boolForKey: @"REMOVEADS"];
if(!g_bRemoveADS)
{
[[[[UIApplication sharedApplication] keyWindow] rootViewController] view];
HZBannerAdOptions *options = [[HZBannerAdOptions alloc] init];
//options.presentingViewController = self;
[HZBannerAd placeBannerInView:self.view
position:HZBannerPositionBottom
options:options
success:^(HZBannerAd *banner) {
NSLog(@"Ad Shown!");
} failure:^(NSError *error) {
NSLog(@"Error = %@",error);
}];
}
else {
// Stop banner ads here
}
在MKStoreManger中,有一些删除广告的方法:
- (void) buyFeatureRemoveADs {
[self buyFeature:featureRemoveADSId];
}
静态字符串:
static NSString *featureRemoveADSId = IAP_RemoveADS;
答案 0 :(得分:0)
我是Heyzap的iOS工程师。
在停用广告时,不显示插页式广告,视频广告或激励广告非常简单:只需在显示g_bRemoveADS
BOOL
值之前检查它们:
g_bRemoveADS = [[NSUserDefaults standardUserDefaults] boolForKey: @"REMOVEADS"];
// For HZInterstitialAd, HZVideoAd, and HZIncentivizedAd, just check the BOOL to see if an ad should be shown
if (!g_bRemoveADS) {
[HZInterstitialAd show];
}
对于HZBannerAd,有三种情况需要考虑:
我们尚未获取横幅广告,在这种情况下,如果广告被停用,请不要打扰。
仍在请求横幅广告,我们正在等待提取横幅广告。在成功块中销毁横幅。
横幅已经在屏幕上,在这种情况下,我们应该在广告被停用时将其删除。
这是横幅代码:
if (!g_bRemoveADS) { // case (1)
[HZBannerAd placeBannerInView:self.view
position:HZBannerPositionBottom
options:options
success:^(HZBannerAd *banner) {
if (g_bRemoveADS) { // case (2)
// Just discard the banner
[banner removeFromSuperview];
} else {
// Keep a reference to the current banner ad, so we can remove it from screen later if we want to disable ads.
self.currentBannerAd = banner;
}
NSLog(@"Ad Shown!");
} failure:^(NSError *error) {
NSLog(@"Error = %@",error);
}];
}
我制作了一个单独的disableAds
方法,用于设置NSUserDefaults
中的值并销毁当前横幅(如果有)。
- (void)disableAds {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"REMOVEADS"];
[currentBannerAd removeFromSuperview]; // case (3)
}
当前的HZBannerAd
界面有点复杂。我们正在开发一个更简单的界面,可以为您处理所有这些复杂性。