cocos2d iOS添加广告

1、广告不是必须的,如果存在,就必须设计合理。iOS并没有禁止添加广告,但使用某些广告可能会导致审核无法通过。这里介绍iAd,adMob。

2、关于iAd,直接导入iAd库就可以了,iAd广告很多,横幅、插屏、视频广告都有,但我这里测试只有横幅是正常的,其他都没加载出来,可能是网速原因,也可能是本人过菜。

所以,iAd只采用横幅广告。(从官网下载的插屏广告demo也时常不能显示出广告来,故放弃之)

(1)添加iAd.framework

(2)在AppController.h,

#import <iAd/iAd.h>

@interface AppController : NSObject <UIAccelerometerDelegate,...,ADBannerViewDelegate>

(3)在@end前添加一个属性

@property (nonatomic,strong)ADBannerView *iadBanner;

(4)实现某些方法

-(void)bannerViewWillLoadAd:(ADBannerView *)banner
{
    
}
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
    
}
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    
}
-(void)showIADBanner
{
    self.iadBanner=[[ADBannerView alloc]initWithFrame:CGRectMake(0,320,50)];//
    self.iadBanner.requiredContentSizeIdentifiers=[NSSet setWithObjects:ADBannerContentSizeIdentifierPortrait,nil];
    self.iadBanner.currentContentSizeIdentifier=ADBannerContentSizeIdentifierPortrait;
    self.iadBanner.delegate=self;
    [viewController.view addSubview:self.iadBanner];
}
(5)在

didFinishLaunchingWithOptions函数的return YES前调用[self showIADBanner];


3、使用adMob的横幅广告

(1)下载广告库,下载后目录如下:



(2)将GoogleMobileAds.framework拖进项目中,另外,再添加一些其他库,具体要哪些,不清楚。给个参考,可以用的。如下


(3)同样的,#import <GoogleMobileAds/GADBannerView.h>
在AppController.h添加协议<GADBannerViewDelegate>

添加属性

@property(nonatomic,strong)GADBannerView *gadBanner;

(4)在AppController.mm中添加方法

- (GADRequest*)createGADRequest
{
    GADRequest*request=[GADRequest request];
    //下面是开启测试模式,上线后注释掉
    request.testDevices=@[@"c85d7e50958ce70a91506be9c576882a",];//后面可以添加更多设备
    return request;
}
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView
{
    NSLog(@"ads");
}
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error
{
    NSLog(@"Fail ads:%@",[error localizedFailureReason]);
}
-(void)showAdmobBanner
{
    CGPoint origin=CGPointMake(0.0,viewController.view.frame.size.height-kGADAdSizeBanner.size.height);
    self.gadBanner=[[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner origin:origin];
    
    self.gadBanner.adUnitID=@"ca-app-pub-6686321446344812/4987791289";
    self.gadBanner.delegate=self;
    self.gadBanner.rootViewController=viewController;
    [viewController.view addSubview:self.gadBanner];
    [self.gadBanner loadRequest:[self createGADRequest]];
}
(5)直接调用 [self showAdmobBanner ];


4、使用adMob插屏广告

(1)AppController.h,

#import <GoogleMobileAds/GADInterstitial.h>

添加< GADInterstitialDelegate >,

添加属性

)GADInterstitial *gadInterstitial;

(2)实现方法
-(void)interstitial:(GADInterstitial *)ad didFailToReceiveAdWithError:(GADRequestError *)error
{
    NSLog(@"Fail ads:%@",[error localizedFailureReason]);
}
-(void)interstitialDidReceiveAd:(GADInterstitial *)ad
{
    [self.gadInterstitial presentFromRootViewController:viewController];
}
-(void)interstitialWillDismissScreen:(GADInterstitial *)ad
{
    
}
-(void)showAdmobInterstitial
{
    if(self.gadInterstitial.isReady)
    {
        [self.gadInterstitial presentFromRootViewController:viewController];
    }else{
        self.gadInterstitial=[[[GADInterstitial alloc]initWithAdUnitID:@"ca-app-pub-6686321446344812/3511058088"]autorelease];
        self.gadInterstitial.delegate=self;
        [self.gadInterstitial loadRequest:[self createGADRequest]];
    }
}
(3)直接调用[self showAdmobInterstitial];

效果如下

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...