跳到主要内容
版本号修订人修订日期修订内容
V1.0.002024/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/25SDK内部逻辑优化
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

2.聚合平台概况

3.宸星SDK资源导入

3.1 配置Maven仓地址

3.1.1 7.0以下版本

3.1.2 7.0版本

3.1.3 7.1及以上版本

3.2 项目依赖

3.2.1 本地aar依赖

3.2.2 远程maven依赖

3.3 资源文件修改及配置

3.3.1 AndroidManifest.xml修改

3.3.2 混淆设置

4. 宸星SDK初始化步骤

4.1 初始化SDK

4.2 接口说明

5. 信息流广告

5.1 请求广告

5.2 展示广告

5.3 接口说明

6. 激励视频

6.1 请求广告

6.2 展示广告

6.3 接口说明

7. 开屏广告

7.1 请求广告

7.2 展示广告

7.3 接口说明

8. 插屏广告

8.1 请求广告

8.2 展示广告

8.3 接口说明

9. Banner广告

9.1 请求广告

9.2 展示广告

9.3 接口说明

10. 自渲染广告

10.1 请求广告

10.2 展示广告

10.3 接口说明

11. 附录

11.1 常见问题

11.2 接入问题

12. 错误码

1.接入前准备

1.1注册宸星开放平台帐号

请先与商务联系,确认需要接入的聚合广告平台;

由我们给开发者提供开发者平台账号

1.1.1获取AppID,AppKey

登录宸星开发者平台,创建媒体,选择对应的媒体类型,创建一个新的应用名及包名。**(所创建包名必须与接入SDK的应用一致) **

创建后并找到应用的AppID、AppKey, 一个包名对应一个AppID,请记录这些参数,接入SDK时会使用到。

2.聚合平台概况

广告平台名称开屏插屏模版信息流激励视频Banner自渲染
宸星XX
自有ADX
京东XXXX
百度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()

10.3接口说明

StarsAdBanner-开屏广告对象

方法名意义备注
StarsAdRender(Activity activity, String starsSlotsId)构建广告对象Activity:上下文对象
StarsSlotsId:广告位ID
loadOnly()加载Banner广告
showAd()曝光广告曝光时调用
bindView(ViewGroup viewGroup, View closeView)绑定曝光布局曝光前调用
viewGroup:广告容器布局
closeView:关闭View
getAdMaterial()获取广告资源
setADListener(SARenderListener listener)设置广告操作回调
getECPM()获取广告单价单位分
destroy()销毁广告资源

SABannerListener-Banner广告加载状态回调

方法名意义备注
onAdSucceed()广告加载成功
onAdExposure()广告曝光
onAdClicked()广告点击
onAdClose()广告关闭
onAdFailed(StarsAdError error)广告显示错误StarsAdError:错误信息
详细错误说明请查看错误码

RenderAdBean-广告资源对象

方法名意义备注
getImgList()获取图片资源List
getVideoList()获取视频资源List
getTitle()获取标题
getDesc()获取详情
getAd_app()获取APP相关信息

ImgBean-图片资源对象

方法名意义备注
getUrl()获取图片资源url
getWidth()获取图片资源宽
getHeight()获取图片资源高

VideoBean-视频资源对象

方法名意义备注
getUrl()获取视频资源url
getWidth()获取视频资源宽
getHeight()获取视频资源高
getDuration()获取视频资源时长

TitleBean-文本资源对象

方法名意义备注
getText()获取文本信息

AdAppBean-APP信息对象

方法名意义备注
getApp_name()App名称
getIcon_url()Icon图标URL
getPackage_name()包名
getComment_count()评论数
getScore()应⽤商店分数
getPackage_size()包⼤⼩字节
getPackage_md5()包md5
getApp_version()应⽤版本
getDesc_url()介绍地址
getPrivacy_url()隐私策略地址
getPermission_url()应⽤权限地址
getDeveloper()应⽤开发者
getApp_beian()app备案号
getApp_age()app适⽤年龄18表示18+

11.附录

11.1常见问题

Q1: 广告请求失败?

参考详细错误码。联系产品进行相关配置来提高填充率.

Q2: 广告栏位号如何申请?

广告栏位号要联系产品进行申请.

Q3: 初始化失败或构建请求为空?

1、检查混淆配置keep是否生效

2、版本集成是否有问题

11.2接入问题

如有接入问题请联系技术人员处理

12.错误码

codemessage
9900初始化失败异常
9901广告返回的数据为空
9902广告加载异常
9903广告展示异常
9904广告渲染异常
9905未配置SDK渠道或配置了不支持广告类型的SDK渠道
9906执行SDK渠道选择时发生异常
9907广告位ID错误异常
9908-9911聚合SDK内部异常
9912参数异常
9913无activity异常
9914-9918初始化错误