当前位置: 首页 > 工具软件 > AdWhirl > 使用案例 >

AdWhirl 介绍及加入方法 Android

穆睿才
2023-12-01
AdWhirl 介绍及加入方法 Android
2011年03月07日 星期一 上午 11:32

AdWhirl是一个为iPhone应用程序开发人员服务的、在应用程序中内嵌广告的手机广告服务商,目标是提供最好的iPhone广告解决方案。通过AdWhirl,程序开发人员可以自由转换各个广告平台(包括Admob、Videoegg、Mobclix等广告服务平台),并且可以自动为你选择和转换到CPM值最高的手机广告平台,让自己的收益最大化。
Adwhirl本身提供了一个示例程序,但对于cocos2d项目,找了很多资料,都没有完整的介绍,现把自己的摸索给大家来分享一下,欢迎批评指正。
[    post]
adwhirl网站上的设定,很简单,直接上adwhirl中设置即可,adwhirl可以看作是一个容器,可以选择多个广告商。
1、在adwhirl SDK中adwhirl目录拖入项目,拖入时选择复制文件到本地。
2、把TouchJSON拖入到项目中,此步可以省略,因为在cocos2d中已经包含此项目,如果拖入,将会出现重复定义错误。
3、增加framework,选择性地添加,不能按adwhirl sdk readme中全部添加,会出现编译错误,添加的framework有:
    CFNetwork,
    AVFoundation,
    CoreLocation,
    MediaPlayer,
    SystemConfiguration,
    MessageUI
4、添加广告商SDK。
    如AdMob,Google AdSense等,直接把SDK拖入到项目即可,为使结构明了,可以在项目中建立一个组,如:AdNetworkLibs,把SDK放到此节点下。拖入时,需要复制到本地目录。
5、取消AdWhirl\adapters下不用的项,每个广告商有一个.h文件和一个.m文件,点击进入adapters后,在不使用的广告商的.m文件后,取消打勾。
6、实现AdWhirlDelegate的两个必须的协议:adWhirlApplicationKey和viewControllerForPresentingModalView,这两个必须要实现,adWhirlApplicationKey返回的是你在adwhirl上的id,viewControllerForPresentingModalView返回一个UIViewController,用于显示广告,在cocos2d中,由于没有明显的viewcontroller,与readme中不同,不能使用readme中的方法。
    这两个方法在同一场景(scene)中实现,如在HelloWorld中实现。
    修改HelloWorldScene.h
    a.添加:
    #import "AdWhirlView.h"
    #import "AdWhirlDelegateProtocol.h"
    @class AdWhirlView;
    b.指定此类实现AdWhirlDelegate的协议
    @interface HelloWorld : CCLayer <AdWhirlDelegate>
    c.在类中添加变量
    AdWhirlView *awView;
    UIViewController *viewController;
    d.设定类型
    @property (nonatomic,retain) AdWhirlView *awView;

    修改HelloWorldScene.m
    a.同步对象
    @synthesize awView;
    b.增加如下代码
复制代码     - (void) onEnter { 
        viewController = [[UIViewController alloc] init];    //设置viewController,用于显示广告,如果这个设置错误,则广告不能正常显示,也不能打开窗口显示广告。 
        viewController.view = [[CCDirector sharedDirector] openGLView]; 
        awView = [AdWhirlView requestAdWhirlViewWithDelegate:self]; 
     
        CGAffineTransform cgCTM = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(-270)); 
        cgCTM = CGAffineTransformTranslate(cgCTM,0,0); 
        [awView setTransform:cgCTM];    //由于设备是横向,需要旋转一定角度。 
        awView.hidden=YES;        //开始时隐藏,以免影响主界面上的鼠标响应 
        awView.center=ccp(0,0); 
        [viewController.view addSubview:awView]; 
        [super onEnter]; 
    } 

    - (NSString *) adWhirlApplicationKey { 
        return @"cc8c386cdc184d468201d16792686774";    //返回你在adwhirl上的key 
    } 

    - (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView { 
        if (YES == awView.hidden) { 
            awView.hidden=NO; 
        } 
        [self adjustAdSize]; 
    } 

    - (void)adjustAdSize { 
        [UIView beginAnimations:@"AdResize" context:nil]; 
        [UIView setAnimationDuration:0.7]; 
        CGSize adSize = [awView actualAdSize]; 
        CGRect newFrame = awView.frame; 
        newFrame.size.height = adSize.width; //由于旋转了90度,需要调换高度和宽度 
        newFrame.size.width = adSize.height; 
        newFrame.origin = ccp(0,80);//这个坐标是正立时的坐标,以左上角为(0,0) 
        awView.frame = newFrame; 
        [UIView commitAnimations];     
    } 

    - (BOOL)adWhirlTestMode { 
        return NO; 
    }
这个是游戏中加入广告的代码。只是参考

 类似资料: