运行环境为Android1.6(Level-4)及以上版本;
本着更方便开发者嵌入和使用SDK的原则,limei_Android_SDK在集成和使用方式上都有较大的变动,因此无论您是否是第一次使用limei_SDK,都建议您仔细的阅读以下内容。文档中的示例代码段都可以在Sample工程中找到。
如果想在APP中使用力美的广告,首先需要创建应用和获取相应广告位ID(AdUnitID),广告位ID是区分和识别不同广告类型的唯一标识,新创建的广告位只有通过审核,才会有相应的广告填充。
下面以Eclipse为例,首先将ImmobSDK.jar拷贝到您的Android项目的libs目录下,右键点击工程根目录,选择 Properties -> Java Build Path ->Librarie,然后点击 Add External JARs... 按钮,选择指向ImmobSDK.jar的路径,点击 OK,即导入成功。如下图:
力美广告SDK需要通过网络连接来获取广告数据,因此开发者需要在APP的“AndroidManifest.xml”中添加相应的必要权限。如果您正使用Eclipse,请按照以下步骤添加权限:
第一步,在项目窗口中选中AndroidManifest.xml文件 ;
第二步,双击或者按F3打开文件,选择AndroidManifest.xml中的标签来显示纯xml文本;
第三步,在
* 必选权限:
<!-- 这个权限是访问网络的权限,如果没有添加这个权限将不会加载广告-->
<uses-permissionandroid:name="android.permission.INTERNET"/>
<!-- 读取手机状态的权限,如果没有添加这个权限将影响到你的收入 -->
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />
<!-- 操作SD卡的权限,如果没有添加这个权限有可能会影响广告展示,以及影响积分墙广告收入 -->
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 读取网络状态的权限,如果没有这个权限广告将不能正常加载 -->
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- 读取wifi网络状态的权限,加载广告时优先使用wifi状态下的网络 -->
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
* 可选权限
<!-- 位置权限将使设备可以接收地理位置相关的广告 -- >
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- 地图权限允许用户快速定位和查看目标地图 -- >
<uses-permissionandroid:name="android.permission.WRITE_GSERVICES"/>
<!-- 电话和短信权限是让用户可以直接拨打广告中的电话和发送短信 -- >
<uses-permissionandroid:name="android.permission.SEND_SMS"/>
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
<!-- 日程表权限可以方便用户记录和参与相关广告活动 -- >
<uses-permissionandroid:name="android.permission.WRITE_CALENDAR"/>
<!-- 震动感应权限是互动广告的重要组成部分 -- >
<uses-permissionandroid:name="android.permission.VIBRATE"/>
* 注意:为了使SDK正常工作,开发者需要在AndroidManifest.xml的<application>标签内加入如下声明。
<activityandroid:name="cn.immob.sdk.BrowserActivity"></activity>
<!-- 如果不添加这个service, sdk将无法正常加载广告 -->
<serviceandroid:name="cn.immob.sdk.net.DownloadService"></service>
<activityandroid:name="cn.immob.sdk.util.LMActionHandler"></activity>
<!-- 如果不添加这个广播, 会影响积分墙广告收入 -->
<receiverandroid:name="cn.immob.sdk.brocastreceiver.AppChangeBrocastreceiver">
<intent-filter>
<actionandroid:name="android.intent.action.BOOT_COMPLETED" />
<actionandroid:name="android.intent.action.PACKAGE_ADDED"/>
<dataandroid:scheme="package"/>
</intent-filter>
</receiver>
使用Xcode4.5或更高版本
运行环境为iOS4.3或更高版本
如果想在APP中使用力美的广告,首先需要创建应用和获取相应广告位ID(AdUnitID),广告位ID是区分和识别不同广告类型的唯一标识,新创建的广告位只有通过审核,才会有相应的广告填充。
按照以下步骤添加依赖框架(framework)
第一步,将immobSDK.framework添加到Xcode项目中。在添加过程中,Xcode会询问开发者使用哪种方式来添加文件。我们建议开发者使用拷贝模式,如下图:
第二步,添加SDK的所依赖的类库,缺少这些类库会影响SDK的正常运行。
点击工程,选择 Targets->Build Phases->Link Binary With Libraries->Add Items“+”,选择以下 framework->Add;
类库清单:
AudioToolbox.framework
CFNetwork.framework
CoreLocation.framework
CoreTelephony.framework
EventKit.framework
EventKitUI.framework
MapKit.framework
MediaPlayer.framework
MessageUI.framework
MobileCoreServices.framework
QuartzCore.framework
Security.framework
StoreKit.framework
AdSupport.framework
SystemConfiguration.framework
libz.1.2.5.dylib
若在应用中添加广告墙广告,只需简单几步:
a) 导入头文件 #import <immobSDK/immobView.h>
b) 实例化immobView对象,使用您从力美官网获得广告位ID作为参数传入;
c) 添加immobView的Delegate来监听广告接收状态;
d) 添加userAccount属性,此属性针对多账户应用所使用,用于区分不同账户下的积分(可选);
e) 加载广告(即:immobViewRequest),将immobView添加到界面后,调用immobViewDisplay显示广告列表;
f) 设置必需的ViewController,如果此方法的返回值为空,会导致广告无法正常运行。
通过下面代码创建广告墙广告:
#import <immobSDK/immobView.h>
// 在头文件中声明immobView并添加immobViewDelegate来监听广告接收状态
@interface ViewController :UIViewController<immobViewDelegate>
@property (nonatomic, retain)immobView *adView_adWall;
-(void)enterAdWall;
-(void)QueryScore;
-(void)ReduceScore;
@end
@implementationViewController
@synthesizeadView_adWall;
// 进入积分墙
-(void)enterAdWall{
// 实例化immobView对象,在此处替换在力美广告平台申请到的广告位ID;
self.adView_adWall=[[immobViewalloc] initWithAdUnitID:@"d2b0c4296dc009ddc00d10da9c4cf83e"];
//添加immobView的Delegate;
self.adView_adWall.delegate=self;
//添加userAccount属性,此属性针对多账户应用所使用,用于区分不同账户下的积分(可选)。
[self.adView_adWall.UserAttributesetObject:@" 当前APP的用户登陆账号Lily" forKey:@"accountname"];
//开始加载广告。,
[self.adView_adWallimmobViewRequest];
}
// 设置必需的UIViewController, 此方法的返回值如果为空,会导致广告展示不正常。
- (UIViewController *)immobViewController{
returnself;
}
[- (void) immobViewDidReceiveAd:(immobView*)immobView {
//将immobView添加到界面上。
[[self.viewaddSubview:adView_adWall];
//将immobView添加到界面后,调用immobViewDisplay。
[[self.adView_adWallimmobViewDisplay];
}
积分操作方法:
// 查询积分
-(void)QueryScore{
[self.adView_adWall
immobViewQueryScoreWithAdUnitID:@"d2b0c4296dc009ddc00d10da9c4cf83e"WithAccountID:@" 当前APP的用户登陆账号Lily"];
}
// 查询积分回调
-(void)immobViewQueryScore:(NSUInteger)score WithMessage:(NSString *)message{
UIAlertView *uA=[[UIAlertViewalloc] initWithTitle:@"积分查询" message: ![message isEqualToString:@""]?[NSStringstringWithFormat:@"%@",message]:[NSStringstringWithFormat:@"当前积分为:%i",score] delegate:selfcancelButtonTitle:@"YES"otherButtonTitles:nil, nil];
[uA show];
[uA release];
}
//减少积分
-(void)ReduceScore{
[self.adView_adWall immobViewReduceScore:99WithAdUnitID:@"d2b0c4296dc009ddc00d10da9c4cf83e"WithAccountID:@" 当前APP的用户登陆账号Lily"];
}
// 减少积分回调
-(void) immobViewReduceScore:(BOOL)status WithMessage:(NSString *)message{
UIAlertView *uA=[[UIAlertViewalloc] initWithTitle:status?@"积分减少成功":@"积分减少失败" message: status?@"":[NSStringstringWithFormat:@"%@",message] delegate:selfcancelButtonTitle:@"YES"otherButtonTitles:nil, nil];
[uA show];
[uA release];
}
广告事件的回调方法:
@optional
//当广告被点击,将要返回返回主程序见面时被调用。
- (void) onDismissScreen:(immobView *)immobView;
// 当广告调用一个新的页面并且会导致离开目前运行程序时被调用。如:调用本地地图程序。
- (void) onLeaveApplication:(immobView *)immobView;
// 当广告页面被创建并且显示在覆盖在屏幕上面时调用本方法。
- (void) onPresentScreen:(immobView *)immobView;
//当广告加载出现异常时会回调本方法。
- (void) immobView: (immobView*) immobViewdidFailReceiveimmobViewWithError: (NSInteger) errorCode;
//email账号未设置。
- (void) emailNotSetupForAd:(immobView *)immobView;
用户相关信息设置:
注意:此属性需要在immobViewRequest方法调用前设置。此外,网络游戏账号绑定或是多账户应用程序(绑定后,力美积分会反馈到相应的网游账号下)也可以通过以下方式来设置当前用户账号
// 通过以下方式向服务器传输有效信息
adView.UserAttributesetObject:@"当前APP的用户登陆账号"forKey:@"accountname"];
//是否禁用应用内部弹出AppStore
[adView.UserAttributesetObject:@"YES"forKey:@"disableStoreKit"];
若在应用中添加插屏广告,只需简单几步:
a) 导入头文件 #import
b) 实例化immobView对象,使用您从力美官网获得广告位ID作为参数传入;
c) 添加immobView的Delegate监听广告状态;
d) 加载广告(即:immobViewRequest)并将immobView添加到界面;
e) 后续展示调用immobViewDisplay显示广告,在调用此方法时,请保证immobView在最上层;
f) 设置必需的ViewController,如果此方法的返回值为空,会导致广告无法正常运行
通过下面代码创建插屏广告:
#import<immobSDK/immobView.h>
@interfaceViewController ()<immobViewDelegate>,
@property (nonatomic,retain) immobView *ad;
@end
@implementationViewController
@synthesize ad;
- (void)viewDidLoad
{
[superviewDidLoad];
if (!ad) {
// 实例化immobView对象,在此处替换在力美广告平台申请到的广告位Id;
immobView *tmpAd=[[immobViewalloc] initWithAdUnitID:@" d1ce616d93d301f4c23991f273242723"];
self.ad=tmpAd;
//添加immobView的Delegate;
self.ad.delegate=self;
//开始加载广告。
[adimmobViewRequest];
//添加广告到界面
[self.viewaddSubview:ad];
} }
// 设置必需的ViewController, 此方法的返回值如果为空,会导致广告展示不正常。
- (UIViewController *)immobViewController{
return self;
}
//展示插屏广告
- (IBAction)open:(id)sender{
if (ad.isAdReady) {
[adimmobViewDisplay];
}else{
NSLog(@"广告未加载成功.广告不可展示");
}
}
广告事件的回调方法:
@optional
//当广告被点击,将要返回返回主程序见面时被调用。
- (void) onDismissScreen:(immobView *)immobView;
// 当广告调用一个新的页面并且会导致离开目前运行程序时被调用。如:调用本地地图程序。
- (void) onLeaveApplication:(immobView *)immobView;
// 当广告页面被创建并且显示在覆盖在屏幕上面时调用本方法。
- (void) onPresentScreen:(immobView *)immobView;
//当广告加载出现异常时会回调本方法。
- (void) immobView: (immobView*) immobViewdidFailReceiveimmobViewWithError: (NSInteger) errorCode;
//email账号未设置。
- (void) emailNotSetupForAd:(immobView *)immobView;
广告状态查询:
除了事件通知机制以外,开发者可以调用immobView类中的isAdReady属性来查询并获得广告加载状态。对于需要即时判断跳转场景的需求可以使用以下方式。
adView=[[immobViewalloc] initWithAdUnitID:@"d2b0c4296dc009ddc00d10da9c4cf83e"];
adView.delegate=self;
if (adView.isAdReady) {
// 广告位已经就绪,可以被展示
} else {
// 后台广告未准备好
// 直接跳转到另一程序逻辑和界面
}
更详细的使用方法,请参考发行文件中的Sample程序;
如还有疑问,欢迎随时发邮件到service@limei.com获得更多帮助;
其他联系方式,电话:+86 (10) 6582 0230、QQ:984584719。