Help center

您的问题,我们来解决!

1. 必要条件

运行环境为Android1.6(Level-4)及以上版本;

本着更方便开发者嵌入和使用SDK的原则,limei_Android_SDK在集成和使用方式上都有较大的变动,因此无论您是否是第一次使用limei_SDK,都建议您仔细的阅读以下内容。文档中的示例代码段都可以在Sample工程中找到。

2. 从力美官网获得广告位ID

如果想在APP中使用力美的广告,首先需要创建应用和获取相应广告位ID(AdUnitID),广告位ID是区分和识别不同广告类型的唯一标识,新创建的广告位只有通过审核,才会有相应的广告填充。

3. 添加力美jar库文件到项目中

下面以Eclipse为例,首先将ImmobSDK.jar拷贝到您的Android项目的libs目录下,右键点击工程根目录,选择 Properties -> Java Build Path ->Librarie,然后点击 Add External JARs... 按钮,选择指向ImmobSDK.jar的路径,点击 OK,即导入成功。如下图:

4. 配置AndroidManifest

力美广告SDK需要通过网络连接来获取广告数据,因此开发者需要在APP的“AndroidManifest.xml”中添加相应的必要权限。如果您正使用Eclipse,请按照以下步骤添加权限:

第一步,在项目窗口中选中AndroidManifest.xml文件 ;

第二步,双击或者按F3打开文件,选择AndroidManifest.xml中的标签来显示纯xml文本;

第三步,在 标签区域配置 Android 权限信息;


* 必选权限:

<!-- 这个权限是访问网络的权限,如果没有添加这个权限将不会加载广告-->

<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>

1. 必要条件

使用Xcode4.5或更高版本

运行环境为iOS4.3或更高版本

2. 从力美官网获得广告位ID

如果想在APP中使用力美的广告,首先需要创建应用和获取相应广告位ID(AdUnitID),广告位ID是区分和识别不同广告类型的唯一标识,新创建的广告位只有通过审核,才会有相应的广告填充。

3. 将SDK添加到项目中

按照以下步骤添加依赖框架(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

4. 广告视图的使用

4.1.积分墙广告使用

若在应用中添加广告墙广告,只需简单几步:

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"];

4.2. 插屏广告使用

若在应用中添加插屏广告,只需简单几步:

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 {

// 后台广告未准备好

// 直接跳转到另一程序逻辑和界面

}

5. 其他

更详细的使用方法,请参考发行文件中的Sample程序;

如还有疑问,欢迎随时发邮件到service@limei.com获得更多帮助;

其他联系方式,电话:+86 (10) 6582 0230、QQ:984584719。