移动广告平台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");
移动广告平台Android SDK接入指南相关推荐
- 数位云Android SDK接入指南
1 概述 数位场景识别Android SDK是一个提供精准室内位置的数据服务应用程序接口.该接口可提供无需额外硬件部署的室内位置识别功能,使移动设备应用快速具备获取用户室内精准位置的能力.https: ...
- 踩坑!穿山甲广告Android SDK接入
随着流量变现的兴起,越来越多的广告SDK汹涌而来,除了字节的穿山甲,还有腾讯的优量汇.百度的广告联盟,其他的例如AdView和万普世纪已经逐渐退出历史的舞台. 本篇文章将基于com.pangle.cn ...
- Unity3d Android SDK接入解析(四)通用的Android SDK接入中间件
一.前言 接入Android SDK正式告一段落,在这段时间里面,依次接入了华为.应用宝.小米.360等等大大小小十来个SDK,也算对Unity接入渠道SDK有了较为全面的理解,对各个渠道的坑也算深有 ...
- 腾讯信鸽推送Android SDK快速指南
信鸽Android SDK是一个能够提供Push服务的开发平台,提供给开发者简便.易用的API接口,方便快速接入. 目前支持Android 2.2及以上版本系统. 本文档将引导用户以最快的速度嵌入信鸽 ...
- 腾讯云直播SDK接入指南
现如今直播类的app,如映客,抖音,火山视频等APP,基本大家手里都会安装,很多公司都可能会研发自己的直播系统,在2020年疫情阶段,很多老师采用了远程直播授课的方式.在国内如果你想使用直播技术,那么 ...
- 图灵机器人SDK接入指南
图灵机器人SDK接入指南 图灵机器人:官网 注册账号 注册个账号,创建个应用,进入后台,点开机器人接入,你会看到API key和secret 下载SDK 点击下载Android SDK,解压以后会有l ...
- 极光推送服务器端文档,Android SDK 集成指南
极光统计 Android SDK 集成指南 使用提示 本文是JAnalytics Android SDK 标准的集成指南文档. 匹配的 SDK 版本为:v1.0.0及以后版本. 如果您想要快速地测试. ...
- android 360游戏sdk,360ssp sdk接入说明 360移送媒体平台Android SDK 接入说明
360ssp sdk接入说明 360移送媒体平台Android SDK 接入说明 360ssp sdk接入说明 360移送媒体平台Android SDK 接入说明: Android SDK SDK版本 ...
- Unity3d Android SDK接入解析(三)接入Android Library的理解(爱贝云支付为例)
一.前言 写这个主题的原因,出于刚入门u3d,需要接入爱贝云支付的内容,苦于爱贝支付是一个Android的Library库,看到网上漫天遍野都是Android接入的帖子,但却没有我想要的关于Libra ...
- 应用宝省流量更新sdk接入指南
转载请声明原文地址:http://blog.csdn.net/sagittarius1988/article/details/52200815 app的自动更新,是一个非常重要的功能.而要实现一套更新 ...
最新文章
- 【408预推免复习】计算机组成原理之输入输出系统
- HttpWatch截取网页数据的工具以及介绍
- 数据库视频总结三(游标和事务)
- SM50强制终结后台JOB进程
- 清华大学人工智能研究院成立智能信息获取研究中心
- 理解 Delphi 的类(十) - 深入方法[17] - 提前声明
- Windows访问Linux的Tomcat,显示无法连接
- 进BAT一线大厂,前端工程师如何做准备?
- 技术不牛如何才拿到国内IT巨头的Offer(转)
- Python自动化课之Day3篇
- SharedMaterial的一些问题
- 重磅干货!揭秘波士顿动力背后的专利技术
- manjaroLinux安装卸载oh-my-zsh
- python最全画地图,可视化数据
- 关于码率(Bitrate)、帧率(FPS)、分辨率和清晰度详解
- 这样一张手绘说明书,我竟然调试通了,SYN8086TTS模块现场评测教学
- 计算机一直进入安全模式开机,电脑启动时自动进入安全模式怎么办
- 最近整理的面试笔试区别题
- 一个P9告诉你为什么某电商怕了拼多多
- android 解决微信登录白屏样式问题