使用 iAd 和 SpriteKit 制作全屏广告 (iOS)
Creating Fullscreen Ads using iAd and SpriteKit (iOS)
所以我一直在尝试将 iAd 集成到我的应用程序中。我设法让横幅广告工作得很好,但我在全屏广告方面遇到了很多麻烦。我一直在关注 this tutorial,因为它似乎是我发现的最好、信息量最大的一个,而且苹果文档并没有真正得到太多支持。
对于那些想知道的人,我正在尝试实现一种效果,即当用户玩游戏时会显示全屏广告。请记住 该应用程序也是水平的 我还想要一种退出广告的方法,因为我相信 iAds 不会随附退出按钮,或类似的东西。
问题是广告没有显示,我没有收到任何错误,它似乎没有显示在屏幕上
如果解释简短或缺乏信息,请道歉,如果您还需要我,请询问 :)
-瑞安
编辑:
对于那些无法访问超链接或只想查看我正在使用的代码的人,这里是:
@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");
}
呃,那个教程只是 my answer here 的副本,而且非常过时。
我有一个newer implementation here。虽然它仍然不完美。
@Daniel Storm 给出了很好的评价 advice.I'' 还补充说 Chartboost 和 Applovin 非常适合插页式广告。你提到你正在使用横幅(我的意思是小横幅),我不会推荐它们 - 真的会让用户感到不安。尝试插页式广告和不同类型的视频,它们的有效每千次展示费用是一种方式 higher.You 也可以使用调解使骑士着手。我坚持使用 Appodeal,因为它们有效地覆盖了众多网络并按需支付。
所以我一直在尝试将 iAd 集成到我的应用程序中。我设法让横幅广告工作得很好,但我在全屏广告方面遇到了很多麻烦。我一直在关注 this tutorial,因为它似乎是我发现的最好、信息量最大的一个,而且苹果文档并没有真正得到太多支持。
对于那些想知道的人,我正在尝试实现一种效果,即当用户玩游戏时会显示全屏广告。请记住 该应用程序也是水平的 我还想要一种退出广告的方法,因为我相信 iAds 不会随附退出按钮,或类似的东西。
问题是广告没有显示,我没有收到任何错误,它似乎没有显示在屏幕上
如果解释简短或缺乏信息,请道歉,如果您还需要我,请询问 :)
-瑞安
编辑: 对于那些无法访问超链接或只想查看我正在使用的代码的人,这里是:
@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");
}
呃,那个教程只是 my answer here 的副本,而且非常过时。
我有一个newer implementation here。虽然它仍然不完美。
@Daniel Storm 给出了很好的评价 advice.I'' 还补充说 Chartboost 和 Applovin 非常适合插页式广告。你提到你正在使用横幅(我的意思是小横幅),我不会推荐它们 - 真的会让用户感到不安。尝试插页式广告和不同类型的视频,它们的有效每千次展示费用是一种方式 higher.You 也可以使用调解使骑士着手。我坚持使用 Appodeal,因为它们有效地覆盖了众多网络并按需支付。