版本号 | 修订人 | 修订日期 | 修订内容 |
---|---|---|---|
V1.0.00 | 熊 | 2024/07/02 | 聚合SDK,提供广告基础功能接口 |
V1.0.04 | - | 2024/07/17 | 优化闪屏,激励视频广告回调触发条件 |
V1.0.07 | - | 2024/08/27 | 优化动画摇一摇效果,优化内部逻辑 |
V1.0.08 | - | 2024/09/03 | 广告添加getECPM()方法 |
V1.0.09 | - | 2024/09/12 | 添加自渲染广告类型聚合 |
V1.0.10 | - | 2024/09/14 | 闪屏onAdFailed不再调用onAdClose 优化请求广告位错误时的提示 |
V1.0.20 | - | 2024/09/25 | SDK内部逻辑优化 |
V1.0.24 | - | 2024/10/24 | 已知问题优化 优化闪屏显示样式 |
V1.0.26 | - | 2024/11/14 | 已知问题优化 优化信息流显示样式 优化插屏显示样式 |
V1.0.27 | - | 2024/11/26 | 已知问题优化 优化信息流显示样式 优化视频播放器性能 优化数据上报流程 |
V1.1.01 | - | 2024/12/23 | 已知问题优化 SDK内部结构优化 内部包名变更 新增京东SDK聚合 |
V1.2.0 | - | 2024/04/18 | 已知问题优化 新增信息流交互样式 |
V1.2.01 | - | 2024/05/26 | 合规问题优化 |
目录
1.接入前准备
1.1注册宸星开放平台帐号
请先与商务联系,确认需要接入的聚合广告平台;
由我们给开发者提供开发者平台账号
1.1.1获取AppID,AppKey
登录宸星开发者平台,创建媒体,选择对应的媒体类型,创建一个新的应用名及包名。**(所创建包名必须与接入SDK的应用一致) **
创建后并找到应用的AppID、AppKey, 一个包名对应一个AppID,请记录这些参数,接入SDK时会使用到。
2.聚合平台概况
广告平台名称 | 开屏 | 插屏 | 模版信息流 | 激励视频 | Banner | 自渲染 |
---|---|---|---|---|---|---|
宸星 | √ | √ | √ | √ | X | X |
自有ADX | √ | √ | √ | √ | √ | √ |
京东 | √ | X | √ | X | X | X |
百度 | √ | √ | √ | √ | √ | X |
注 : 因宸星SDK和趣盟SDK存在冲突 , 如已接入趣盟SDK , 请勿接入宸星SDK
3.宸星SDK资源导入
3.1配置Maven仓地址
3.1.1 7.0以下版本
打开Android Studio项目级“build.gradle”文件,添加Maven代码库
buildscript {
repositories {
google()
jcenter()
// 添加Maven仓库
maven { url "http://nexus.adbiding.cn/repository/starsads_releases/"}
// 如使用OAID包
maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }
}
}
allprojects {
repositories {
google()
jcenter()
// 添加Maven仓库
maven { url "http://nexus.adbiding.cn/repository/starsads_releases/"}
// 如使用OAID包
maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }
}
}
3.1.2 7.0版本
打开Android Studio项目级“build.gradle”文件,添加Maven代码库
buildscript {
repositories {
google()
jcenter()
// 添加Maven仓库
maven {
allowInsecureProtocol = true
url "http://nexus.adbiding.cn/repository/starsads_releases/"
}
// 如使用OAID包
maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }
}
}
打开项目级“settings.gradle”文件,配置Maven仓地址
dependencyResolutionManagement {
repositories {
google()
jcenter()
// 添加Maven仓库
maven {
allowInsecureProtocol = true
url "http://nexus.adbiding.cn/repository/starsads_releases/"
}
// 如使用OAID包
maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }
}
}
3.1.3 7.1及以上版本
打开项目级“settings.gradle”文件,配置Maven仓地址
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
// 配置聚合SDK的Maven仓地址
maven {
allowInsecureProtocol = true
url "http://nexus.adbiding.cn/repository/starsads_releases/"
}
// 如使用OAID包
maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }
}
}
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
// 配置聚合SDK的Maven仓地址
maven {
allowInsecureProtocol = true
url "http://nexus.adbiding.cn/repository/starsads_releases/"
}
// 如使用OAID包
maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }
}
}
3.2项目依赖
根据项目不同可选用本体依赖和maven远程依赖
3.2.1本地aar依赖
在 app 目录下新建 libs 文件夹,
将压缩包中的 aar 文件放入 libs 文件夹,
在 app/build.gradle 添加如下代码
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
// 基础包,必接,xxx为版本号,需开发自行替换
implementation(name: "starsads-core-xxx", ext: "aar")
implementation(name: "starsads-utils-xxx", ext: "aar")
// 宸星SDK包,选接,,xxx为版本号,需开发自行替换
implementation(name: "starsads-cx-xxx", ext: "aar")
// 自有ADX包,选接,xxx为版本号,需开发自行替换
implementation(name: "starsads-adx-xxx", ext: "aar")
// 百度包,选接,xxx为版本号,需开发自行替换
implementation(name: "starsads-bd-xxx", ext: "aar")
// 京东包,选接,xxx为版本号,需开发自行替换
implementation(name: "starsads-jd-xxx", ext: "aar")
// 如果应用内部有接入GSON包则忽略
implementation 'com.google.code.gson:gson:2.8.5'
// 如果应用内部有接入constraint-layout包则忽略
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
// OAID相关
// OAID自采集,按需导入
implementation(name: "starsads-oaid-xxx", ext: "aar")
// 华为的最新版本广告标识服务SDK,参阅 https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/identifier-service-version-change-history-0000001050066927
implementation 'com.huawei.hms:ads-identifier:3.4.62.300'
// 荣耀的最新版本广告标识服务SDK,参阅 https://developer.hihonor.com/cn/kitdoc?kitId=11030&navigation=guides&docId=intergrate.md
implementation 'com.hihonor.mcs:ads-identifier:1.0.3.300'
}
3.2.2远程Maven依赖
先按照3.1配置好Maven仓库地址
dependencies {
// 核心类,必接
implementation 'com.starsads:core:1.2.0'
implementation 'com.starsads:utils:1.0.0'
// 自有ADX,选接
implementation 'com.starsads:adx:1.2.0_120'
implementation 'com.starsads:open:1.2.0'
// 宸星SDK,选接
implementation 'com.starsads:cx:1.2.0_3469'
// 宸星SDK3.465.11.43版本,如已接入,可以不引入包
implementation 'com.starsads:cx_ext:3.469'
// 百度SDK,选接
implementation 'com.starsads:bd:1.2.0_9352'
// 百度SDK9.352版本,如已接入,可以不引入包
implementation 'com.starsads:bd_ext:9352'
// 京东SDK,选接
implementation 'com.starsads:jd:1.2.0_2614'
// 京东SDK2.6.14版本,如已接入,可以不引入包
implementation 'com.starsads:jd_ext:2614'
// 如果应用内部有接入GSON包则忽略
implementation 'com.google.code.gson:gson:2.8.5'
// 如果应用内部有接入constraint-layout包则忽略
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
// OAID相关
// OAID自采集,按需导入
implementation 'com.starsads:oaid:1.0.0'
// 华为的最新版本广告标识服务SDK,参阅 https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/identifier-service-version-change-history-0000001050066927
implementation 'com.huawei.hms:ads-identifier:3.4.62.300'
// 荣耀的最新版本广告标识服务SDK,参阅 https://developer.hihonor.com/cn/kitdoc?kitId=11030&navigation=guides&docId=intergrate.md
implementation 'com.hihonor.mcs:ads-identifier:1.0.3.300'
}
注意:为满足广告需求,SDK内部有自采集OAID,ANDROIDID,IMEI相关逻辑
必须至少选择一个广告SDK接入,只接入基础包不会有广告下发
3.3资源文件修改及配置
3.3.1AndroidManifest.xml修改
暂无需操作
3.3.2混淆设置
如果集成了oaid的库,需要加入此混淆规则
-keep interface com.starsads.oaid.IGetter
注意事项:
如果 tools.build:gradle 版本小于 4.1.0,请检查自定义混淆规则或 proguard-android-optimize,确认混淆规则中没有使用 -allowaccessmodification 属性
4.宸星SDK初始化步骤
4.1初始化SDK
注意:由于工信部对设备权限等隐私权限要求愈加严格,强烈推荐APP提前申请好权限,且用户同意隐私政策后再初始化SDK
StarsAds.init(this,new StarsAdsConfig.Builder()
.mediaId(1002)
.appId(1015)
.appSecret("4bf87efaeeab4aa7c9a360c62d7dc111")
.privacyConfig(new PrivacyConfig() {})
.logEnabled(true)
.build(), new InitCallback() {
@Override
public void onSuccess () {
Log.d("SDK", "初始化成功");
}
@Override
public void onFail (StarsAdError error){
Log.d("SDK", "初始化失败");
}
});
4.2接口说明
StarsAds.init
参数 | 含义 |
---|---|
Context | 上下文对象 |
StarsAdsConfig | 初始化参数对象 |
InitCallback | 初始化回调 |
StarsAdsConfig-SDK初始化参数对象
方法 | 含义 | 备注 |
---|---|---|
mediaId(int id) | 设置媒体ID | 必填,影响SDK初始化 |
appId(int id) | 设置应用ID | 必填,影响SDK初始化 |
appSecret(String secret) | 设置secret | 必填,影响SDK初始化 |
privacyConfig(PrivacyConfig config) | 设置隐私鉴权 | 如无隐私要求,需要传入PrivacyConfig空实现 |
logEnabled(boolean isOpen) | 是否显示日志 | 过滤"StarsAdsSDK"Tag查看日志 |
wxAppId(String id) | 设置微信APPID | 选填,如不填写,广告不会跳转到微信小程序 |
InitCallback
方法 | 含义 | 备注 |
---|---|---|
onSuccess() | 初始化成功 | |
onFail (StarsAdError error) | 初始化失败 | StarsAdError包含错误信息 |
PrivacyConfig
/**
* 是否允许SDK主动获取设备参数,如:imei
*
* @return true可以使用,false禁止使用。默认为true
*/
public boolean isCanUsePhoneState() {
return true;
}
/**
* 当isCanUsePhoneState=false时,可传入imei信息,sdk使用您传入的imei信息
*
* @return imei信息
*/
public String getDevImei() {
return "";
}
/**
* 是否允许SDK主动获取ANDROID_ID
*
* @return 默认true 允许 , false 不允许
*/
public boolean isCanUseAndroidId() {
return true;
}
/**
* isCanUseAndroidId=false时,sdk使用您传入的android_id信息,sdk使用您传入的android_id信息
*
* @return android_id信息
*/
public String getAndroidId() {
return "";
}
/**
* 媒体主动传入oaid,则优先使用媒体方的oaid,未传入oaid时通过该开关控制是否允许SDK主动获取oaid
*
* @return 默认true 允许 , false 不允许
*/
public boolean isCanUseOaid() {
return true;
}
/**
* 开发者可以传入oaid
* 信通院OAID的相关采集——如何获取OAID:
* 1. 移动安全联盟官网http://www.msa-alliance.cn/
* 2. 信通院统一SDK下载http://msa-alliance.cn/col.jsp?id=120
*
* @return oaid
*/
public String getOaid() {
return "";
}
/**
* 是否允许SDK主动获取安装列表
*
* @return 默认true 允许 , false 不允许
*/
public boolean isCanUseAppList() {
return true;
}
/**
* 当isCanUseAppList=false时,可传入applist信息,sdk使用您传入的applist信息
*
* @return true可以使用,false禁止使用。默认为true
*/
public String[] getAppList() {
return null;
}
/**
* 媒体主动传入Location,则优先使用媒体方的Location,未传入Location时通过该开关控制是否允许SDK主动获取Location
*
* @return 默认true 允许 , false 不允许
*/
public boolean isCanUseLocation() {
return true;
}
/**
* 开发者可以传入地理位置,经纬度
*
* @return
*/
public LocationBean getLocation() {
return null;
}
5.信息流广告
5.1请求广告
//初始化,注意需要时再初始化,不要复用。
StarsAdNativeExpress starsNativeExpress = new StarsAdNativeExpress(mActivity, slotId);
//推荐:核心事件监听回调
SANativeExpressListener listener = new SANativeExpressListener() {
@Override
public void onAdSucceed() {
logAndToast(mActivity, "Native广告加载成功");
}
@Override
public void onAdRenderSuccess() {
logAndToast(mActivity, "Native广告渲染成功");
}
@Override
public void onAdClose() {
logAndToast(mActivity, "Native广告关闭");
}
@Override
public void onAdExposure() {
logAndToast(mActivity, "Native广告展示");
}
@Override
public void onAdFailed(StarsAdError error) {
logAndToast(mActivity, "Native广告加载失败 code=" + error.code + " msg=" + error.msg);
}
@Override
public void onAdRenderFailed() {
logAndToast(mActivity, "Native广告渲染失败");
}
@Override
public void onAdClicked() {
logAndToast(mActivity, "Native广告点击");
}
};
starsNativeExpress.setADListener(listener);
starsNativeExpress.setAdContainer(adContainer);
//必须:请求广告
starsNativeExpress.loadOnly();
5.2展示广告
注意:container为信息流广告展示位的Layout,Layout必须为FrameLayout
container必须设置宽度,可以是match_parent或固定尺寸,不可以是wrap_content
container会根据设置的宽度和广告资源自适配高度,高度可为wrap_content
starsNativeExpress.show();
5.3接口说明
StarsAdNativeExpress-信息流广告对象
方法名 | 意义 | 备注 |
---|---|---|
StarsAdNativeExpress(Activityactivity, String starsSlotsId) | 构建广告对象 | Activity:上下文对象 StarsSlotsId:广告位ID |
loadOnly() | 加载信息流广告 | |
show() | 显示广告 | |
setAdContainer(ViewGroup container) | 绑定视图并展示 | 绑定视图必须为FrameLayout |
setADListener(SANativeExpressListener listener) | 设置广告操作回调 | SANativeExpressListener:广告操作回调 |
getECPM() | 获取广告单价 | 单位分 |
SANativeExpressListener-信息流广告加载状态回调
方法名 | 意义 | 备注 |
---|---|---|
onAdRenderFailed() | 广告渲染成功 | |
onAdRenderSuccess() | 广告渲染失败 | |
onAdSucceed() | 广告加载成功 | |
onAdExposure() | 广告曝光 | |
onAdClicked() | 广告点击 | |
onAdClose() | 广告关闭 | |
onAdFailed(StarsAdError error) | 广告显示错误 | StarsAdError:错误信息 详细错误说明请查看错误码 |
6.激励视频
6.1请求广告
//初始化,注意需要时再初始化,不要复用。
StarsAdRewardVideo starsRewardVideo = new StarsAdRewardVideo(mActivity, slotId);
//必须:核心事件监听回调
SARewardVideoListener listener = new SARewardVideoListener() {
@Override
public void onAdSucceed() {
logAndToast(mActivity, "Reward广告加载成功");
}
@Override
public void onAdExposure() {
logAndToast(mActivity, "Reward广告展示");
}
@Override
public void onAdFailed(StarsAdError error) {
logAndToast(mActivity, "Reward广告加载失败 code=" + error.code + " msg=" + error.msg);
}
@Override
public void onAdClicked() {
logAndToast(mActivity, "Reward广告点击");
}
@Override
public void onVideoCached() {
logAndToast(mActivity, "Reward广告缓存成功");
}
@Override
public void onVideoComplete() {
logAndToast(mActivity, "Reward视频播放完毕");
}
@Override
public void onVideoSkip() {
}
@Override
public void onAdClose() {
logAndToast(mActivity, "Reward广告关闭");
}
@Override
public void onAdReward() {
logAndToast(mActivity, "Reward激励发放");
}
@Override
public void onRewardServerInf(SARewardServerCallBackInf inf) {
//优量汇和穿山甲支持回调服务端激励验证信息,详见RewardServerCallBackInf中字段信息
logAndToast(mActivity, "onRewardServerInf" + inf);
}
};
starsRewardVideo.setADListener(listener);
6.2展示广告
starsRewardVideo.show();
6.3接口说明
StarsAdRewardVideo-激励视频广告对象
方法名 | 意义 | 备注 |
---|---|---|
StarsAdRewardVideo(Activity activity, String starsSlotsId) | 构建广告对象 | Activity:上下文对象 StarsSlotsId:广告位ID |
loadOnly() | 加载激励视频广告 | |
showAd() | 展示激励视频广告 | |
setADListener(SARewardVideoListener listener) | 设置广告操作回调 | |
getECPM() | 获取广告单价 | 单位分 |
SARewardVideoListener-激励视频广告加载状态回调
方法名 | 意义 | 备注 |
---|---|---|
onVideoCached() | 广告缓存成功 | |
onVideoComplete() | 广告播放完毕 | |
onVideoSkip() | 广告跳过 | |
onAdReward() | 广告激励发放 | |
onRewardServerInf(SARewardServerCallBackInf inf) | 广告激励发放服务端验证 | 详见RewardServerCallBackInf中字段信息 |
onAdSucceed() | 广告加载成功 | |
onAdExposure() | 广告曝光 | |
onAdClicked() | 广告点击 | |
onAdClose() | 广告关闭 | |
onAdFailed(StarsAdError error) | 广告加载失败 | StarsAdError:错误信息 详细错误说明请查看错误码 |
7.开屏广告
7.1请求广告
//初始化,注意需要时再初始化,不要复用
StarsAdSplash starsSplash = new StarsAdSplash(mActivity, adContainer, slotId);
//必须:设置开屏核心回调事件的监听器。
SASplashListener listener = new SASplashListener() {
@Override
public void onAdClose() {
if (callBack != null)
callBack.jumpMain();
logAndToast(mActivity, "Splash广告关闭");
}
@Override
public void onAdSucceed() {
logAndToast(mActivity, "Splash广告加载成功");
if (logoContainer != null)
logoContainer.setVisibility(View.VISIBLE);
if (starsSplash != null)
starsSplash.show();
}
@Override
public void onAdExposure() {
//设置开屏父布局背景色为白色
if (adContainer != null)
adContainer.setBackgroundColor(Color.WHITE);
logAndToast(mActivity, "Splash广告展示成功");
}
@Override
public void onAdFailed(StarsAdError error) {
logAndToast(mActivity, "Splash广告加载失败 code=" + error.code + " msg=" + error.msg);
}
@Override
public void onAdClicked() {
logAndToast(mActivity, "Splash广告点击");
}
};
starsSplash.setADListener(listener);
//注意:如果开屏页是fragment或者dialog实现,这里需要置为false。默认为true,代表开屏和首页为两个不同的activity
starsSplash.setShowInSingleActivity(singleActivity);
//必须:请求并展示广告
starsSplash.loadOnly();
7.2展示广告
starsSplash.show();
7.3接口说明
StarsAdSplash -开屏广告对象
方法名 | 意义 | 备注 |
---|---|---|
StarsAdSplash(Activity activity, ViewGroup adContainer, String starsSlotsId) | 构建广告对象 | Activity:上下文对象 ViewGroup:广告展现布局 StarsSlotsId:广告位ID |
loadOnly() | 加载开屏广告 | |
showAd() | 展示开屏广告 | |
setADListener(SASplashListener listener) | 设置广告操作回调 | |
getECPM() | 获取广告单价 | 单位分 |
SASplashListener-开屏广告加载状态回调
方法名 | 意义 | 备注 |
---|---|---|
onAdSucceed() | 广告加载成功 | |
onAdExposure() | 广告曝光 | |
onAdClicked() | 广告点击 | |
onAdClose() | 广告关闭 | |
onAdFailed(StarsAdError error) | 广告显示错误 | StarsAdError:错误信息 详细错误说明请查看错误码 |
8.插屏广告
8.1请求广告
//初始化,注意需要时再初始化,不要复用
StarsAdInterstitial starsInterstitial = new StarsAdInterstitial(mActivity, slotId);
//必须:核心事件监听回调
SAInterstitialListener listener = new SAInterstitialListener() {
@Override
public void onAdSucceed() {
logAndToast(mActivity, "Interstitial广告就绪");
}
@Override
public void onAdClose() {
logAndToast(mActivity, "Interstitial广告关闭");
}
@Override
public void onAdExposure() {
logAndToast(mActivity, "Interstitial广告展示");
}
@Override
public void onAdFailed(StarsAdError error) {
logAndToast(mActivity, "Interstitial广告加载失败 code=" + error.code + " msg=" + error.msg);
}
@Override
public void onAdClicked() {
logAndToast(mActivity, "Interstitial广告点击");
}
};
starsInterstitial.setADListener(listener);
//注意:穿山甲默认为"新插屏广告",如果要使用旧版请打开这条设置
//starsInterstitial.setCsjNew(false);
8.2展示广告
starsInterstitial.show();
8.3接口说明
StarsAdInterstitial-开屏广告对象
方法名 | 意义 | 备注 |
---|---|---|
StarsAdInterstitial(Activity activity, String starsSlotsId) | 构建广告对象 | Activity:上下文对象 StarsSlotsId:广告位ID |
loadOnly() | 加载插屏广告 | |
showAd() | 展示插屏广告 | |
setADListener(SAInterstitialListener listener) | 设置广告操作回调 | |
getECPM() | 获取广告单价 | 单位分 |
SAInterstitialListener-插屏广告加载状态回调
方法名 | 意义 | 备注 |
---|---|---|
onAdSucceed() | 广告加载成功 | |
onAdExposure() | 广告曝光 | |
onAdClicked() | 广告点击 | |
onAdClose() | 广告关闭 | |
onAdFailed(StarsAdError error) | 广告显示错误 | StarsAdError:错误信息 详细错误说明请查看错误码 |
9.Banner广告
9.1请求广告
//初始化,注意需要时再初始化,不要复用
StarsAdBanner starsAdBanner = new StarsAdBanner(mActivity, adContainer, slotId);
//必须:核心事件监听回调
SABannerListener listener = new SABannerListener() {
@Override
public void onAdClose() {
logAndToast(mActivity, "Banner广告关闭");
}
@Override
public void onAdExposure() {
logAndToast(mActivity, "Banner广告展现");
}
@Override
public void onAdFailed(StarsAdError error) {
logAndToast(mActivity, "Banner广告加载失败 code=" + error.code + " msg=" + error.msg);
}
@Override
public void onAdClicked() {
logAndToast(mActivity, "Banner广告点击");
}
@Override
public void onAdSucceed() {
starsAdBanner.show();
logAndToast(mActivity, "Banner广告加载成功");
}
};
starsAdBanner.setADListener(listener);
starsAdBanner.setRefreshInterval(30);
//如果集成穿山甲,这里必须配置,建议尺寸要和穿山甲后台中的"代码位尺寸"宽高比例一致,值单位为dp,这里示例使用的广告位宽高比为640:100。
int adWidth = ScreenUtil.px2dip(mActivity, ScreenUtil.getScreenWidth(mActivity));
int adHeight = (int) (((double) adWidth / (double) 640) * 100);
//如果高度传入0代表自适应高 度
starsAdBanner.setCsjExpressSize(adWidth, adHeight);
//必须:请求并展示广告
starsAdBanner.loadOnly();
9.2展示广告
starsAdBanner.show();
9.3接口说明
StarsAdBanner-开屏广告对象
方法名 | 意义 | 备注 |
---|---|---|
StarsAdBanner(Activity activity, ViewGroup adContainer, String starsSlotsId) | 构建广告对象 | Activity:上下文对象 ViewGroup:广告展现布局 StarsSlotsId:广告位ID |
loadOnly() | 加载Banner广告 | |
showAd() | 展示Banner广告 | |
setADListener(SABannerListener listener) | 设置广告操作回调 | |
setRefreshInterval(int refreshInterval) | 设置Banner自刷新时间 | 0为不自动刷新 取值范围30-120区间有效 单位秒 |
getECPM() | 获取广告单价 | 单位分 |
SABannerListener-Banner广告加载状态回调
方法名 | 意义 | 备注 |
---|---|---|
onAdSucceed() | 广告加载成功 | |
onAdExposure() | 广告曝光 | |
onAdClicked() | 广告点击 | |
onAdClose() | 广告关闭 | |
onAdFailed(StarsAdError error) | 广告显示错误 | StarsAdError:错误信息 详细错误说明请查看错误码 |
10.自渲染广告
10.1请求广告
//初始化,注意需要时再初始化,不要复用
StarsAdRender starsAdRender = new StarsAdRender(mActivity, slotId);
//必须:核心事件监听回调
SARenderListener listener = new SARenderListener() {
@Override
public void onAdSucceed() {
Log.d("RenderActivity", "onAdSucceed");
}
@Override
public void onAdExposure() {
Log.d("RenderActivity", "onAdExposure");
}
@Override
public void onAdClicked() {
Log.d("RenderActivity", "onAdClicked");
}
@Override
public void onAdClose() {
Log.d("RenderActivity", "onAdClose");
}
@Override
public void onAdFailed(StarsAdError starsAdError) {
Log.d("RenderActivity", "onAdFailed");
}
};
starsAdRender.setADListener(listener);
starsAdRender.loadOnly();
10.2展示广告
注:
自渲染广告由媒体自己渲染
但在曝光时需调用一次
starsAdRender.show();
并保证在曝光前绑定广告展示容器,否则影响曝光
//viewGroup不可为空,closeView可为空
starsAdRender.bindView(ViewGroup viewGroup, View closeView);
媒体不要处理广告的点击事件,否则会影响曝光
如绑定了clseView,媒体也无需处理广告关闭操作
没有绑定clseView时,在处理关闭时调用destroy()