iad admob整合代码

本文探讨了如何在iOS应用中集成广告系统,包括iAd和AdMob的使用方法、关键方法实现及其交互逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



#pragma mark iAd

- (void)addIAdBanner {

// if place the banner on the bottom

// adView = [[ADBannerView alloc] initWithFrame:CGRectZero];



adView = [[ADBannerView alloc] initWithFrame:CGRectMake(320 - (32 / 2) - 480 / 2, 480 / 2 - (50 - (32 / 2)), 0, 0)];



adView.frame = CGRectOffset(adView.frame, 32, 0); // hide



adView.delegate = self;

adView.requiredContentSizeIdentifiers = [NSSet setWithObjects:ADBannerContentSizeIdentifier320x50, ADBannerContentSizeIdentifier480x32, nil];

adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifier480x32;

[[[CCDirector sharedDirector] openGLView] addSubview:adView];



// Transform iAd

adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));



iAdBannerIsVisible = NO;

}


- (void)removeIAdBanner {

// clear iAd

adView.delegate = nil;

[adView removeFromSuperview];

[adView release];

adView = nil;



iAdBannerIsVisible = NO;

}


- (void)bannerViewDidLoadAd:(ADBannerView *)banner {

NSLog(@"[iAd]: Ad did load.");



if (!iAdBannerIsVisible) {

adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));



adView.frame = CGRectOffset(adView.frame, -32, 0);



adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));



iAdBannerIsVisible = YES;

}



if (admobBannerIsVisible) {

// hide it

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));

adMobAd.frame = CGRectMake(140 + 48, 215, 320, 48);

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));

}

}


- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error {

NSLog(@"[iAd]: Faild to load the banner: %@", error);



if (iAdBannerIsVisible) {

adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));

adView.frame = CGRectOffset(adView.frame, 32, 0);

adView.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));



iAdBannerIsVisible = NO;

}



if (admobBannerIsVisible) {

// show it

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));

adMobAd.frame = CGRectMake(140, 215, 320, 48);

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));

}

}


- (BOOL)bannerViewActionShouldBegin:(ADBannerView *)banner willLeaveApplication:(BOOL)willLeave {

NSLog(@"[iAd]: An action was started from the banner. Application will quit: %d", willLeave);



return YES;

}


- (void)bannerViewActionDidFinish:(ADBannerView *)banner {

NSLog(@"[iAd]: Action finished.");

}

#pragma mark AdMobDelegate methods


- (NSString *)publisherIdForAd:(AdMobView *)adView {

return @"a14c561cd7cbb82"; // this should be prefilled; if not, get it from www.admob.com

}


- (UIViewController *)currentViewControllerForAd:(AdMobView *)adView {

return controller;

}


- (UIColor *)adBackgroundColorForAd:(AdMobView *)adView {

return [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; // this should be prefilled; if not, provide a UIColor

}


- (UIColor *)primaryTextColorForAd:(AdMobView *)adView {

return [UIColor colorWithRed:1 green:1 blue:1 alpha:1]; // this should be prefilled; if not, provide a UIColor

}


- (UIColor *)secondaryTextColorForAd:(AdMobView *)adView {

return [UIColor colorWithRed:1 green:1 blue:1 alpha:1]; // this should be prefilled; if not, provide a UIColor

}


// Sent when an ad request loaded an ad; this is a good opportunity to attach

// the ad view to the hierachy.

- (void)didReceiveAd:(AdMobView *)adView {

NSLog(@"AdMob: Did receive ad");



adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));

adMobAd.frame = CGRectMake(140, 215, 320, 48);

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));



if (iAdBannerIsVisible) {

// if iAdBannerIsVisible, hide admob banner

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0));

adMobAd.frame = CGRectMake(140 + 48, 215, 320, 48);

adMobAd.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(90));

}



[[[CCDirector sharedDirector] openGLView] addSubview:adMobAd];



[refreshTimer invalidate];

refreshTimer = [NSTimer scheduledTimerWithTimeInterval:AD_REFRESH_PERIOD target:self selector:@selector(refreshAd:) userInfo:nil repeats:YES];



admobBannerIsVisible = YES;

}


// Sent when an ad request failed to load an ad

- (void)didFailToReceiveAd:(AdMobView *)adView {

NSLog(@"field receive admob.");



[adMobAd removeFromSuperview];



[self performSelector:@selector(requestAd) withObject:nil afterDelay:2.0];



admobBannerIsVisible = NO;

}


- (void)refreshAd:(ccTime)dt {

NSLog(@"refresh admob.");



[adMobAd requestFreshAd];

}


- (void)requestAd {

adMobAd = [AdMobView requestAdWithDelegate:self];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值