跳到主要内容
版本号修订人修订日期修订内容
V1.0.0熊俊杰2024/07/02聚合SDK,提供广告基础功能接口
V1.0.04-2024/07/17优化闪屏,激励视频广告回调触发条件
V1.0.07-2024/08/27优化动画摇一摇效果,优化内部逻辑
V1.0.08-2024/09/03广告添加getECPM()方法

目录

1.接入前准备

1.1 注册宸星开放平台帐号

1.1.1 获取AppID,AppKey

2.聚合平台概况

3.宸星SDK资源导入

3.1 本地aar依赖

3.2 资源文件修改及配置

3.2.1 AndroidManifest.xml修改

3.2.2 混淆设置

4. 宸星SDK初始化步骤

4.1 初始化SDK

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 接入问题

11. 错误码

1.接入前准备

1.1注册宸星开放平台帐号

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

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

1.1.1获取AppID,AppKey

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

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

2.聚合平台概况

广告平台名称开屏插屏模版信息流激励视频Banner
宸星X
自有ADX

注 : 因宸星SDK和趣盟SDK存在冲突 , 如已接入趣盟SDK , 请勿接入宸星SDK

3.宸星SDK资源导入

3.1本地aar依赖

在 app 目录下新建 libs 文件夹,

将压缩包中的 aar 文件放入 libs 文件夹,

在 app/build.gradle 添加如下代码

repositories {
flatDir {
dirs 'libs'
}
}

dependencies {
// 基础包,必接,xxx为版本号,需开发自行替换
implementation(name: "starsads-core-xxx", ext: "aar")
// 宸星SDK包,选接,,xxx为版本号,需开发自行替换
implementation(name: "starsads-cx- xxx", ext: "aar")
// 自有ADX包,选接,xxx为版本号,需开发自行替换
implementation(name: "starsads-adx- xxx", ext: "aar")
// 如果应用内部有接入GSON包则忽略
implementation('com.google.code.gson:gson:2.8.5')
}

注意:为满足广告需求,SDK内部有自采集OAID,ANDROIDID,IMEI相关逻辑

必须至少选择一个广告SDK接入,只接入基础包不会有广告下发

3.2资源文件修改及配置

3.2.1AndroidManifest.xml修改

暂无需操作

3.2.2混淆设置

注意事项:

如果 tools.build:gradle 版本小于 4.1.0,请检查自定义混淆规则或 proguard-android-optimize,确认混淆规则中没有使用 -allowaccessmodification 属性

4.宸星SDK初始化步骤

4.1初始化SDK

注意:由于工信部对设备权限等隐私权限要求愈加严格,强烈推荐APP提前申请好权限,且用户同意隐私政策后再初始化SDK

StarsAds.init(this,AppID, AppKey, new StarsAds.InitListener() {
@Override
public void onSuccess () {
Log.d("SDK", "初始化成功");
}

@Override
public void onFail (StarsAdError error){
Log.d("SDK", "初始化失败");
}
});

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

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);
baseAD =starsInterstitial;
//必须:核心事件监听回调
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);
return starsInterstitial;

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

baseAD =starsAdBanner;
//如果集成穿山甲,这里必须配置,建议尺寸要和穿山甲后台中的"代码位尺寸"宽高比例一致,值单位为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();
return starsAdBanner;

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常见问题

Q1: 广告请求失败?

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

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

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

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

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

2、版本集成是否有问题

10.2接入问题

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

11.错误码

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