使用iAd和SpriteKit创建全屏广告(iOS)

时间:2015-10-28 08:22:42

标签: ios fullscreen iad

所以我一直在尝试将iAd集成到我的应用中。我设法让横幅工作得很好,但我在全屏广告上遇到了很多麻烦。我一直关注this tutorial,因为它似乎是我发现的最好和最有益的信息,苹果文档并没有真正得到很多支持。

对于那些想要了解的人,我正在努力实现一种效果,即当用户通过全屏广告获得游戏时。请记住 应用程序也是水平的 ,我还想要一种退出广告的方法,因为我认为iAds没有提供退出按钮,或类似的东西。

问题是广告没有显示,我没有收到任何错误,它似乎没有显示在屏幕上

如果解释很简短或缺乏信息,请道歉,如果您需要我的任何其他信息,请随时询问:)

-Ryan

编辑: 对于那些无法访问超链接或只是想看到我使用的代码的人,这里是:

@implementation GameViewController {
    UIView *_adView;
    ADInterstitialAd* _interstitial;
    BOOL _requestingAd;
}

-(void)showFullScreenAd {
if (_requestingAd == NO) {
    _interstitial = [[ADInterstitialAd alloc] init];
    _interstitial.delegate = self;
    NSLog(@"Ad Request");
    _requestingAd = YES;
}

}

-(void)interstitialAd:(ADInterstitialAd *)interstitialAd                              didFailWithError:(NSError *)error {
    _requestingAd = NO;
    NSLog(@"Ad didFailWithERROR");
    NSLog(@"%@", error);
}

-(void)interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd {
    NSLog(@"Ad DidLOAD");
    if (interstitialAd.loaded) {

    CGRect interstitialFrame = self.view.bounds;
    interstitialFrame.origin = CGPointMake(0, 0);
    _adView = [[UIView alloc] initWithFrame:interstitialFrame];
    [self.view addSubview:_adView];

    [_interstitial presentInView:_adView];

    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button addTarget:self action:@selector(closeAd:) forControlEvents:UIControlEventTouchDown];
    button.backgroundColor = [UIColor clearColor];
    [button setBackgroundImage:[UIImage imageNamed:@"close-button.png"] forState:UIControlStateNormal];
    button.frame = CGRectMake(0, 0, 30, 30);
    [_adView addSubview:button];

    [UIView beginAnimations:@"animateAdBannerOn" context:nil];
    [UIView setAnimationDuration:1];
    [_adView setAlpha:1];
    [UIView commitAnimations];

}
}

-(void)closeAd:(id)sender {
    [UIView beginAnimations:@"animateAdBannerOff" context:nil];
    [UIView setAnimationDuration:1];
    [_adView setAlpha:0];
    [UIView commitAnimations];

_adView=nil;
_requestingAd = NO;
}

-(void)interstitialAdDidUnload:(ADInterstitialAd *)interstitialAd {
    _requestingAd = NO;
    NSLog(@"Ad DidUNLOAD");
}

-(void)interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd {
    _requestingAd = NO;
    NSLog(@"Ad DidFINISH");
}

2 个答案:

答案 0 :(得分:2)

嗯,该教程只是my answer here的副本,并且非常过时。

我有newer implementation here。但它仍然不完美。

就个人而言,我建议您使用AdMobFacebook进行插页式广告。 iAd的插页式广告执行不力。

答案 1 :(得分:1)

@Daniel Storm提出了一个很好的建议。我还要补充一点,Chartboost和Applovin对插页式广告很有用。你提到你正在使用横​​幅(我的意思是小横幅),我不推荐它们 - 真的让用户感到不安。尝试使用插页式广告和不同类型的视频,他们的有效每千次展示费用更高。您还可以使用中介来制定骑士的行动。我坚持Appodeal因为他们有效地覆盖了许多网络并按需支付。