云步广告SDK集成文档_Android(v4.0.2)
1. 集成准备
1.1 接入前准备
接入zeus_ads_xxx SDK前必须先接入基础的zeus_base_xxx SDK,基础SDK必须接入才能使用广告SDK!!!
1.2 获取SDK
1.3 Android Studio集成(集成方式一)
1.3.1 添加SDK
a. 将aar文件拷贝到应用级app下的libs文件夹中
b. 打开应用级app下的build.gradle文件添加以下代码
//依赖aar需要添加下面代码
repositories {
flatDir {
dirs 'libs'
}
}
c. 在“dependencies”中添加如下编译依赖
//添加云步zeus ad sdk implementation(name: 'zeus_ads_api_v4.0.2', ext: 'aar') //添加其他需要的依赖库,此依赖库必须添加,且不能低于此版本,如果有版本冲突的问题,请反馈我们 implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1'
1.4 Eclipse集成(集成方式二)
1.4.1 添加SDK
a. 将"Eclipse/libs"文件夹下所有文件复制到工程的libs文件夹下;
b. 将"Eclipse/res"文件夹下所有文件复制到工程的res文件夹下;
c. 将"Eclipse/AndroidManifest.xml"文件里的内容复制到工程的AndroidManifest.xml文件。
2. 接口调用
2.1 广告SDK初始化
-
初始化接口必须调用,否则SDK无法正常工作!!!
-
在Activity的onCreate()方法中调用初始化。
ZeusAds.getInstance().init(Activity activity);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 游戏的Activity |
2.2 开屏广告
-
开屏广告无需游戏集成,通过打包工具二次打包时添加。
-
当有特殊场景需要展示开屏时,可调用以下接口展示,接入此接口需要与我们运营人员核实,否则不需要接入此接口。
ZeusSplashAd.getInstance().show(Activity activity, String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
2.3 banner广告
2.3.1 设置banner广告事件回调监听器
- 在调用Banner广告的其他接口前,可设置广告事件回调的监听器,用来获取广告的事件回调,如不需要知道广告事件回调,则可以不设置监听。
ZeusBannerAd.getInstance().setAdListener(IBannerAdListener listener);
监听器说明:
| 回调方法 | 说明 |
|---|---|
| onAdLoaded() | 表示Banner广告已加载成功 |
| onAdShow(AdPlatform adPlatform, String scene) | 表示Banner广告展示成功,返回广告平台adPlatform和广告场景scene |
| onAdClick(AdPlatform adPlatform, String scene) | 表示Banner广告被点击,返回广告平台adPlatform和广告场景scene |
| onAdError(int code, String msg) | 表示Banner广告加载失败,返回错误码和错误信息 |
| onAdClose(AdPlatform adPlatform, String scene() | 表示Banner广告被关闭,返回广告平台adPlatform和广告场景scene |
2.3.2 加载并展示banner广告
- 加载并展示banner广告,SDK内部会请求banner广告并展示,接入时,只需调用此接口即可实现banner广告的展示。
ZeusBannerAd.getInstance().show(Activity activity,BannerGravity gravity, String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| gravity | BannerGravity | 必须 | 展示位置,目前只支持传顶部和底部 BannerGravity.BOTTOM:底部 BannerGravity.TOP:顶部 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
2.3.3 隐藏banner广告
-
如果需要主动隐藏banner广告,可以调用hide接口。
-
如果需要再次展示广告,重新调用show方法即可。
ZeusBannerAd.getInstance().hide();
2.3.4 销毁banenr广告
- 在Activity的onDestroy()函数调用此方法。
@Override
protected void onDestroy() {
super.onDestroy();
ZeusBannerAd.getInstance().destroy();
}
2.4 插屏广告
2.4.1 设置插屏广告事件回调监听器
- 在调用插屏广告的其他接口前,可设置广告事件回调的监听器,用来获取广告的事件回调,如不需要知道广告事件回调,则可以不设置监听。
ZeusInterstitialAd.getInstance().setAdListener(IAdListener listener);
监听器说明:
| 回调方法 | 说明 |
|---|---|
| onAdLoaded() | 当广告填充时,回调此方法,则表示插屏广告已加载成功 |
| onAdShow(AdPlatform adPlatform, String scene) | 表示插屏广告展示成功,返回广告平台adPlatform和广告场景scene |
| onAdClick(AdPlatform adPlatform, String scene) | 表示插屏广告被点击,返回广告平台adPlatform和广告场景scene |
| onAdError(int code, String msg) | 当广告异常时,回调此方法,则表示插屏广告加载失败,返回错误码和错误信息 |
| onAdClose(AdPlatform adPlatform, String scene() | 表示插屏广告被关闭,返回广告平台adPlatform和广告场景scene |
2.4.2 加载并展示插屏广告
-
加载并展示插屏广告,SDK内部会请求插屏广告并展示;
-
无论插屏是否已填充,都可以直接调用此接口去展示插屏广告;SDK内部会判断,已填充则直接展示,没填充则会主动去加载插屏广告,如果加载成功,则也会展示插屏广告;
-
一般情况,插屏广告没有特殊逻辑判断的话,无须调用load和show接口,直接调用此接口展示插屏广告即可。
ZeusInterstitialAd.getInstance().loadAndShow(Activity activity, String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
2.4.3 销毁插屏广告对象
- 在Activity的onDestroy()函数调用此方法。
@Override
protected void onDestroy() {
super.onDestroy();
ZeusInterstitialAd.getInstance().destroy();
}
2.5 全屏视频广告
2.5.1 设置全屏视频广告事件回调监听器
- 在调用全屏视频广告的其他接口前,可设置广告事件回调的监听器,用来获取广告的事件回调,如不需要知道广告事件回调,则可以不设置监听。
ZeusFullScreenVideoAd.getInstance().setAdListener(IFullScreenVideoAdListener listener);
监听器说明:
| 回调方法 | 说明 |
|---|---|
| onAdLoaded() | 当广告填充时,回调此方法,则表示全屏视频广告已加载成功 |
| onAdShow(AdPlatform adPlatform, String scene) | 表示全屏视频广告展示成功,返回广告平台adPlatform和广告场景scene |
| onAdClick(AdPlatform adPlatform, String scene) | 表示全屏视频广告被点击,返回广告平台adPlatform和广告场景scene |
| onAdError(int code, String msg) | 当广告异常时,回调此方法,则表示全屏视频广告加载失败,返回错误码和错误信息 |
| onAdClose(AdPlatform adPlatform, String scene() | 表示全屏视频广告被关闭,返回广告平台adPlatform和广告场景scene |
| onVideoPlayStart() | 表示视频开始播放 |
| onVideoPlayFinish() | 表示视频播放完成 |
2.5.2 加载并展示全屏视频广告
-
加载并展示全屏视频广告,SDK内部会请求全屏视频广告并展示;
-
无论全屏视频是否已填充,都可以直接调用此接口去展示全屏视频广告;SDK内部会判断,已填充则直接展示,没填充则会主动去加载全屏视频广告,如果加载成功,则也会展示全屏视频广告;
-
一般情况,全屏视频广告没有特殊逻辑判断的话,无须调用load和show接口,直接调用此接口展示全屏视频广告即可。
ZeusFullScreenVideoAd.getInstance().loadAndShow(Activity activity, String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
2.5.3 销毁全屏视频广告对象
- 在Activity的onDestroy()函数调用此方法。
@Override
protected void onDestroy() {
super.onDestroy();
ZeusFullScreenVideoAd.getInstance().destroy();
}
2.6 激励视频广告
2.6.1 设置激励视频广告事件回调监听器
- 在调用激励视频广告的其他接口前,可设置广告事件回调的监听器,用来获取广告的事件回调,如不需要知道广告事件回调,则可以不设置监听。
ZeusRewardVideoAd.getInstance().setAdListener(IRewardVideoAdListener listener);
监听器说明:
| 回调方法 | 说明 |
|---|---|
| onAdLoaded() | 当调用load接口时,回调此方法,则表示激励视频广告已加载成功 |
| onAdShow(AdPlatform adPlatform, String scene) | 表示激励视频广告展示成功,返回广告平台adPlatform和广告场景scene |
| onAdClick(AdPlatform adPlatform, String scene) | 表示激励视频广告被点击,返回广告平台adPlatform和广告场景scene |
| onAdError(int code, String msg) | 当调用load接口时,回调此方法,则表示激励视频广告加载失败,返回错误码和错误信息 |
| onAdClose(AdPlatform adPlatform, String scene() | 表示激励视频广告被关闭,返回广告平台adPlatform和广告场景scene |
| onVideoPlayStart() | 表示视频开始播放 |
| onVideoPlayFinish() | 表示视频播放完成 |
| onAdReward() | 广告奖励回调,在这里可以向玩家发放奖励 |
| onAdRewardFailed() | 广告奖励失败,玩家中途关闭广告会回调此方法 |
2.6.2 判断是否缓存有激励视频广告
-
判断是否有缓存的激励视频广告,返回true,表示激励视频广告已填充,可以直接调用show接口展示广告;返回false,则表示没有填充,可调用load接口去主动加载广告,加载结果可通过上述广告事件回调知道。
-
此接口只是判断是否有广告填充,内部不会主动加载广告,悉知!!!
boolean ready = ZeusRewardVideoAd.getInstance().isReady();
2.6.3 请求激励视频广告
-
主动加载激励视频广告,当需要提前缓存激励视频广告,或者没有广告缓存时,调用加载接口去请求广告,当回调填充后(onAdLoaded),可根据需要再调用show去展示广告。
-
加载广告时,会回调onAdLoaded或者onAdError接口,回调onAdLoaded表示广告加载成功,回调onAdError表示广告加载失败。
-
SDK内部每次启动后,会默认调用load缓存激励视频广告!
-
激励视频广告,每次要展示广告时,判断没有缓存再去调用load加载广告即可,切勿循环判断调用!!!
-
加载广告接口为异步,并不是调用后立即填充,需要根据回调判断是否填充!!!
ZeusRewardVideoAd.getInstance().load(Activity activity);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
2.6.4 展示激励视频广告
- 当广告已填充时,调用show接口,可以展示激励视频广告;如果没填充,调用此接口无法展示广告!!!
ZeusRewardVideoAd.getInstance().show(Activity activity, String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
2.6.5 加载并展示激励视频广告
-
加载并展示激励视频广告,SDK内部会请求激励视频广告并展示;
-
无论激励视频是否已填充,都可以直接调用此接口去展示激励视频广告;SDK内部会判断,已填充则直接展示,没填充则会主动去加载激励视频广告,如果加载成功,则也会展示激励视频广告;
ZeusRewardVideoAd.getInstance().loadAndShow(Activity activity, String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
2.6.6 销毁激励视频广告
- 在Activity的onDestroy()函数调用此方法。
@Override
protected void onDestroy() {
super.onDestroy();
ZeusRewardVideoAd.getInstance().destroy();
}
2.6.7 游戏的激励广告按钮展示和点击统计
2.6.7.1 游戏激励按钮ui展示的事件
- 当展示激励广告入口或者引导点击的ui时调用。
ZeusAds.getInstance().gameUiShow(String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| scene | String | 必须 | 广告场景scene |
2.6.7.2 游戏激励按钮ui点击的事件
- 当玩家点击游戏激励按钮时调用。
ZeusAds.getInstance().gameUiClick(String scene);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| scene | String | 必须 | 广告场景scene |
2.7 原生广告
原生广告说明:
- 目前原生广告只支持模板渲染,SDK内部会渲染素材,开发者无需关心;
- 开发者需要根据自己的游戏UI调整原生广告的坐标和宽高,自行处理屏幕适配。
2.7.1 设置原生广告事件回调监听器
- 在调用原生广告的其他接口前,可设置广告事件回调的监听器,用来获取广告的事件回调,如不需要知道广告事件回调,则可以不设置监听。
ZeusNativeAd.getInstance().setAdListener(INativeAdListener listener);
监听器说明:
| 回调方法 | 说明 |
|---|---|
| onAdLoaded() | 当调用load接口时,回调此方法,则表示原生广告已加载成功 |
| onAdShow(AdPlatform adPlatform, String scene) | 表示原生广告展示成功,返回广告平台adPlatform和广告场景scene |
| onAdClick(AdPlatform adPlatform, String scene) | 表示原生广告被点击,返回广告平台adPlatform和广告场景scene |
| onAdError(int code, String msg) | 当调用load接口时,回调此方法,则表示原生广告加载失败,返回错误码和错误信息 |
| onAdClose(AdPlatform adPlatform, String scene() | 表示原生广告被关闭,返回广告平台adPlatform和广告场景scene |
2.7.2 判断是否缓存有原生广告
-
判断是否有缓存的原生广告,返回true,表示原生广告已填充,可以直接调用show接口展示广告;返回false,则表示没有填充,可调用load接口去主动加载广告,加载结果可通过上述广告事件回调知道。
-
此接口只是判断是否有广告填充,内部不会主动加载广告,悉知!!!
boolean ready = ZeusNativeAd.getInstance().isReady();
2.7.3 请求原生广告
-
主动加载原生广告,当需要提前缓存原生广告,或者没有广告缓存时,调用加载接口去请求广告,当回调填充后(onAdLoaded),可根据需要再调用show去展示广告。
-
加载广告时,会回调onAdLoaded或者onAdError接口,回调onAdLoaded表示广告加载成功,回调onAdError表示广告加载失败。
ZeusNativeAd.getInstance().load(Activity activity);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
2.7.4 展示原生广告
-
根据坐标点展示广告
-
当广告已填充时,调用show接口,可以展示原生广告;如果没填充,调用此接口无法展示广告!!!
ZeusNativeAd.getInstance().show(Activity activity, String scene, int x, int y, int width, int height);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
| x | int | 必须 | 屏幕左上角为手机屏幕坐标原点(0,0),x为横向坐标,原生广告区域左上角,距离屏幕原点的横向距离,单位:像素 |
| y | int | 必须 | 屏幕左上角为手机屏幕坐标原点(0,0),y为纵向坐标,原生广告区域左上角,距离屏幕原点的纵向距离,单位:像素 |
| width | int | 必须 | 原生广告宽度,单位:像素 |
| height | int | 必须 | 原生广告高度,单位:像素 |
2.7.5 加载并展示原生广告
-
加载并展示原生广告,SDK内部会请求原生广告并展示;
-
无论原生广告是否已填充,都可以直接调用此接口去展示原生广告;SDK内部会判断,已填充则直接展示,没填充则会主动去加载原生广告,如果加载成功,则也会展示原生广告;
-
一般情况,原生广告没有特殊逻辑判断的话,无须调用load和show接口,直接调用此接口展示原生广告即可。
ZeusNativeAd.getInstance().loadAndShow(Activity activity, String scene, int x, int y, int width, int height);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| activity | Activity | 必须 | 展示广告的Activity,必须传入,否则无法展示广告 |
| scene | String | 必须 | 广告场景scene,必须传入,否则无法展示广告 |
| x | int | 必须 | 屏幕左上角为手机屏幕坐标原点(0,0),x为横向坐标,原生广告区域左上角,距离屏幕原点的横向距离,单位:像素 |
| y | int | 必须 | 屏幕左上角为手机屏幕坐标原点(0,0),y为纵向坐标,原生广告区域左上角,距离屏幕原点的纵向距离,单位:像素 |
| width | int | 必须 | 原生广告宽度,单位:像素 |
| height | int | 必须 | 原生广告高度,单位:像素 |
2.7.6 隐藏原生广告
- 在需要关闭原生广告时,调用hide()方法。
ZeusNativeAd.getInstance().hide();
2.7.7 销毁原生广告
- 在Activity的onDestroy()函数调用此方法。
@Override
protected void onDestroy() {
super.onDestroy();
ZeusNativeAd.getInstance().destroy();
}
3. 其他接口
3.1 判断是否是广告包
- 判断是否是广告包
boolean includeAd = ZeusAds.getInstance().isIncludeAd();
3.2 计费点上是否显示"去广告"提示
-
判断是否显示"去广告"提示
-
具体文案展示样式游戏自定义
boolean showAdTip = ZeusAds.getInstance().showAdTip();
if (showAdTip) {
//显示'去广告'字样
} else {
//隐藏'去广告'字样
}
返回值:
- showAdTip: 返回true则显示"去广告"提示,false 不显示
3.3 获取已付费金额
float payAmount = ZeusAds.getInstance().getPayAmount();
返回值:
- payAmount:已付费金额(单位:元)
3.4 获取累计付费去广告的金额
- 可用于计费点文案显示
float noAdAmount = ZeusAds.getInstance().getNoAdAmount();
返回值:
- noAdAmount:累计付费去广告的金额(单位:元)
3.5 设置屏蔽非激励性广告接口
- 可用于设置屏蔽掉所有的非激励性广告,屏蔽后将请求不到对应的广告
ZeusAds.getInstance().setBlockAd(boolean isBlockAd, boolean isBlockSplashAd);
参数说明:
| 参数名称 | 参数类型 | 是否必须 | 参数说明 |
|---|---|---|---|
| isBlockAd | boolean | 必须 | 是否屏蔽非激励广告(banner、普通插屏、原生、全屏视频),true为屏蔽 |
| isBlockSplashAd | boolean | 必须 | 是否屏蔽开屏广告,true为屏蔽 |
4. 测试
4.1 测试限制
- 目前SDK可以拉到测试广告,如果需要测试对应渠道的广告,联系运营使用打包工具打渠道包后方可测试。
4.2 手机限制
-
oppo渠道广告必须使用oppo手机测试
-
vivo渠道广告必须使用vivo手机测试
-
小米渠道广告必须使用小米手机测试
-
华为渠道广告必须使用华为手机测试
-
其他渠道广告没有限制