移动广告平台Android SDK接入指南

在应用开发中为了提高应用的收入,一般项目中都会引入广告,而我在开发中用的较多的就是讯飞移动广告平台的接入,下面将介绍讯飞移动广告平台是如何完成接入的。

1.集成说明

1.1申请appid

             在http://www.voiceads.cn/网站中注册成为开发者并创建一款应用,您将获得一个appid,用于标识您的应用。

1.2导入SDK

           1.下载最新版SDK的zip包,将其中的libs 文件夹下jar文件复制到本地工程libs子目录下。

           2.Eclipse用户右键点击工程根目录,选择Properties-> Java Build Path -> Libraries,然后点击Add External JARs... 选择指向jar的路径,点击OK,即导入成功。

1.3 配置Androidmanifest文件

        打开AndroidManifest.xml文件,增加如下权限:

权限

用途

INTERNET

允许程序联网和发送统计数据的权限

ACCESS_NETWORK_STATE

允许应用检测网络连接状态

READ_PHONE_STATE

允许应用以只读的方式访问手机设备的信息,通过获取的信息来唯一标识用户

ACCESS_WIFI_STATE

允许程序访问Wi-Fi网络状态信息

WRITE_EXTERNAL_STORAGE

写sd卡的权限,用于缓存广告所用到的图片,节省流量,并可获得更好的用户体验

READ_EXTERNAL_STORAGE

读sd 卡的权限,意义同WRITE_EXTERNAL_STORAGE

ACCESS_ FINE_LOCATION

获取设备的上传数据时的位置信息,提高统计精准度

GET_TASKS

获取当前应用的运行信息

WAKE_LOCK

唤醒手机,保证广告正常下载

meta-data

用途

IFLYTEK_APPKEY_AD

用来唯一标识您的应用,请将以下示例代码中your_appid替换为您在讯飞移动广告平台申请的应用appid。


代码示例;

<manifest……>
<application ……>
<activity ……/>
<!--请注意添加单引号-->
<meta-data  android:name="IFLYTEK_APPKEY_AD" android:value="'your_appid'"/>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
</manifest>

1.4组件申明

<manifest……>
<application ……>
<service
android:name="com.iflytek.voiceads.update.DownloadService"/>
</application>
</manifest>

1.5添加旗帜广告

          旗帜广告,即Banner 广告,可以将该广告视图放于任何可以容纳的位置(容纳的容器或位置必须在屏幕内并且尺寸等于或大于广告视图,推荐放在界面的顶部或底部)。旗帜广告具备轮播功能,默认15秒轮播一次。

         为了提高应用体验效果,开发者可以为放置广告的Layout自定义背景色或背景图片。

//创建旗帜广告:adId:开发者在广告平台(http://www.voiceads.cn/)申请的广告位ID
IFLYBannerAd bannerAd = IFLYBannerAd.createBannerAd(Activity.this, adId); 
//设置广告尺寸
bannerAd.setAdSize(IFLYAdSize.BANNER); 
//设置为调试模式
bannerAd.setParameter(AdKeys.DEBUG_MODE, "true");
//下载广告前,弹窗提示
bannerAd.setParameter(AdKeys.DOWNLOAD_ALERT, "true");
//请求广告,添加监听器
bannerAd.loadAd(mAdListener); 
LinearLayout layout_ads = (LinearLayout)findViewById(R.id.layout_adview); 
layout_ads.removeAllViews();
layout_ads.addView(bannerAd);

IFLYAdListener mAdListener = new IFLYAdListener(){ 
@Override 
public void onAdReceive() { 
//成功接收广告,调用广告展示接口。注意:该接口在回调中才能生效
bannerAd.showAd();
} 
@Override 
public void onAdFailed(AdError error) { 
// 广告请求失败
// error.getErrorCode():错误码, error.getErrorDescription():错误描述
} 
@Override 
public void onAdClick() { 
// 广告被点击
} 
@Override 
public void onAdClose() { 
// 广告被关闭
} 
};

1.6添加插屏广告

          插屏广告,是一种开发者可以在界面过场时请求并根据需要进行展示的间质性广告形式。用户通过点击插屏广告右上角的叉号图片,将广告取消。目前,插屏广告不支持横屏模式。

//创建插屏广告:adId:开发者在广告平台(http://www.voiceads.cn/)申请的广告位ID
IFLYInterstitialAd interstitialAd = IFLYInterstitialAd.createInterstitialAd(Activity.this, adId); 
//设置广告尺寸
interstitialAd.setAdSize(IFLYAdSize.INTERSTITIAL); 
//点击手机后退键,是否销毁广告:"true":销毁,"false":不销毁,默认销毁
interstitialAd.setParameter(AdKeys.BACK_KEY_ENABLE, "true");
//添加监听器,请求广告 
interstitialAd.loadAd(mAdListener); 

IFLYAdListener mAdListener = new IFLYAdListener(){ 
@Override 
public void onAdReceive() { 
//成功接收广告,调用广告展示接口。注意:该接口在回调中才能生效
interstitialAd.showAd();
} 
@Override 
public void onAdFailed(AdError error) { 
// 广告请求失败
// error.getErrorCode():错误码,error.getErrorDescription():错误描述
} 
@Override 
public void onAdClick() { 
// 广告被点击
} 
@Override 
public void onAdClose() { 
// 关闭广告
} 
}; 

1.7添加全屏广告

         全屏广告,一种覆盖整个屏幕进行广告展示的广告类型。广告展示一定时间后退出展示,展示时间可设置。

         全屏广告的全屏显示可以通过移除标题栏和状态栏实现,代码参考Demo。

//创建全屏广告:adId:开发者在广告平台(http://www.voiceads.cn/)申请的广告位ID
IFLYFullScreenAd fullScreenAd = IFLYFullScreenAd.createFullScreenAd(Activity.this, adId); 
//设置广告尺寸
fullScreenAd.setAdSize(IFLYAdSize.FULLSCREEN); 
//设置全屏广告展示时间,单位为ms。默认广告展示5000ms后消失
fullScreenAd.setParameter(AdKeys.SHOW_TIME_FULLSCREEN, "6000");
//添加监听器,请求广告 
fullScreenAd.loadAd(mAdListener); 

IFLYAdListener mAdListener = new IFLYAdListener(){ 
@Override 
public void onAdReceive() { 
//成功接收广告,调用广告展示接口。注意:该接口在回调中才能生效
fullScreenAd.showAd();
} 
@Override 
public void onAdFailed(AdError error) { 
// 广告请求失败
// error.getErrorCode():错误码,error.getErrorDescription():错误描述
} 
@Override 
public void onAdClick() { 
// 广告被点击
} 
@Override 
public void onAdClose() { 
// 关闭广告

1.8接口说明

     1.8.1错误码

      列举了广告请求失败的错误原因,在onAdFailed (AdError error)中返回。

 

描述

70200

广告请求成功

70204

请求成功,但是无广告内容

70400

无效的广告位ID

70403

当日广告请求次数达到上限

70500

服务错误

71001

未知错误

71002

无效的广告请求,比如:请求频率过快

71003

网络错误

71004

Permission未设置

71005

Appid为空

71006

无效的Appid

71007

广告位ID为空

71008

广告页面加载超时

71009

广告页面加载异常

71010

手机无浏览器

   1.8.2广告尺寸

        IFLYAdSize表示请求的广告尺寸,具有width和height两个属性,单位为dip。须使用SDK提供的尺寸类型:IFLYAdSize.BANNER,IFLYAdSize.INTERSTITIAL, IFLYAdSize.FULLSCREEN。

   1.8.3对外接口

      

(1)     public void setAdSize (IFLYAdSizeadSize)

设置要请求的广告大小(在第一次请求广告前设置)。

(2)    publicvoid setParameter (String key, String value)

广告参数设置,请参考2.8.4

(3)     public void loadAd (IFLYAdListenerlistener)

请求广告。

(4)     public void showAd ()

展示广告。

1.8.4广告可设置参数

参数

说明

适用范围

APPID

广告应用ID

旗帜、插屏、全屏

DEBUG_MODE

设置是否调试模式,调试模式下可查看log,默认调试模式

旗帜、插屏、全屏

BACK_KEY_ENABLE

点击手机后退键是否销毁插屏广告,默认销毁广告

插屏

SHOW_TIME_FULLSCREEN

全屏广告展示时间,范围5000~10000,默认5000;如果设为-1,则使用叉号方式退出全屏广告

全屏

DOWNLOAD_ALERT

弹出下载广告提示框,默认不弹提示框

旗帜、插屏、全屏


使用示例:

bannerAd.setParameter(AdKeys.APPID, "544e2c99");
		bannerAd.setParameter(AdKeys.DEBUG_MODE, "true");
		interstitialAd.setParameter(AdKeys.BACK_KEY_ENABLE, "true");
		fullScreenAd.setParameter(AdKeys.SHOW_TIME_FULLSCREEN, "6000");
	bannerAd.setParameter(AdKeys.DOWNLOAD_ALERT, "true");

1.8.5事件监听

添加广告时,可以通过一些监听事件接收广告当前状态。广告监听事件类IFLYAdListener定义的具体事件函数如下表:

监听事件

事件描述

onAdReceive

广告请求成功

onAdFailed

广告请求失败,同时返回错误码及描述

onAdClick

广告被点击

onAdClose

广告被关闭

 

2.混淆代码

      工程混淆设置:如需打包或者生成Apk的时候进行混淆,在proguard.cfg中添加如下代码:-keep class com.iflytek.voiceads.**{*;}


3.常见问题

1.       Q: adUnitId 是什么?

A: adUnitId,即广告位ID,是讯飞移动广告平台为每个广告位分配的唯一标识符。

2.       Q: 可以自己设置广告的请求地址吗?

A: 请求地址封装于SDK内部,不允许用户自行设置。

3.       Q: SDK 都支持哪些android版本?

A:要求采用android 2.3或更高版本。

4.      Q: 如何查看广告SDK版本?

A: 利用Version.getVersion()可获得广告SDK版本号。


4.sdk2.0集成注意事项

1.       AndroidManifest.xml中请勿漏写权限声明,请参考2.3。

2.      AndroidManifest.xml中需添加DownloadService请参考2.4。

3.      新增设置选项,请参考2.8.4

1)  广告下载前,可以设置弹出下载提示框,旗帜、插屏、全屏广告设置方式相同。

如:bannerAd.setParameter(AdKeys.DOWNLOAD_ALERT,"true");

2)  全屏广告展示时间设置,有效设置范围为5000~10000-1。设为-1时,通过点击全屏广告右上角的叉号控件退出广告。

如:fullScreenAd.setParameter(AdKeys.SHOW_TIME_FULLSCREEN,"6000");





























  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值