ZbSdk接入文档

安卓端

开始之前

  1. 请向相关人员申请appKey、appID,SDK_Setting_xxx.json、defaultConfig文件、demo文件。

  2. SDK只支持 Android API Level 26+

  3. 工程必须使用AndroidX

  4. 工程targetSdkVersion建议低于31

  5. 关于资源混淆白名单,广告版暂不支持

注意事项

  1. sdk广告就绪条件需要一定的时间(一般5秒以内),才可正常使用sdk。 建议开发者在适当时机给到sdk去获取准备就绪条件,避免首次在界面上出现较长的等待时间。例如demo启动界面的处理

  1. 调用sdk涉及到的activity需要继承ZbBaseActivity/ZbBaseAppCompatActivity。 建议app端基类activity配置,可参考demo中的com.zbsdk.demo.activity.BaseActivity

  2. app生命周期内,必须要保证有userid。 这个跟服务端发奖有关系,这个userid可以晚但不能没有。初始化的时候如果没有拿到就不要传,后续拿到了可以通过refreshConfig给,refreshConfig不可频繁触发,最好做到在出sdk的界面之前完成触发。

集成接入

1、添加maven(涉及广告相关需要配置)

maven配置:

推荐配置minSdkVersion=26,如果媒体工程必须低于26,可以在AndroidManifest.xml中添加以下配置

2、依赖

3、权限

sdk清单中内置了以下权限,无需特别声明 ,关于读写权限,sdk强依赖所有文件的读写,开发者需要自行处理适配,关于位置权限,需要给到精确位置授权

4、混淆

sdk内部自带了混淆配置,无需额外处理

5、白名单(AndResGuard)

当前暂未提供

初始化

注意:appKey、appID必须在初始化时传入,建议在初始化时传入配置参数,如果配置数据取不到,可以调用刷新配置的接口方法,具体参考配置刷新栏描述(刷新配置方法传入appID、appKey无效,以初始化的配置为准)。

1. 预初始化

该方法完全合规,可以在协议弹窗的同意之前调用。如果需要内置闪屏功能,必须在application的onCreate方法中调用

2. 初始化

 

自渲染内容

1、拉取内容列表

1.1 拉取
1.2 销毁

注意:该代码需要在对象需要销毁时使用,一般建议在Activity的OnDestroy时调用

1.3 对应的json数据
1.4 参考案例

在demo中 com.zbsdk.demo.activity.NativeContentActivity参考相关实现。

2、跳转到下载类型内容详情

2.1 app获取下载链接
2.2 销毁

注意:该代码需要在对象需要销毁时使用,一般建议在Activity的OnDestroy时调用

2.3 对应的json数据
2.4 参考案例

在demo中 com.zbsdk.demo.activity.NativeContentDetailActivity 参考相关实现。

3、 跳转到签到活动,广告必得活动,阅读赚,搜索赚,语音红包

销毁 注意:该代码需要在对象需要销毁时使用,一般建议在Activity的OnDestroy时调用

4、字段说明

插件app

字段备注
id条目内容id,app唯一标识
itemType条目内容类型,0-插件app,1-签到活动,2-广告必得活动,3 - 阅读赚,4-搜索赚,5-语音红包
statusapp状态,1-打开, 2-更新,3-下载,4-打开
btnText按钮根据不同的status的值,按钮展示不同的文案
displayTitle条目展示标题
appDisplayIntro条目展示简介
appDisplayTags条目内容展示标签
displayAmount展示赚取金额
packageNameapp包名
appDownloadUrlapp下载地址

签到活动:

字段备注
itemType值为1
totalAmount完成7天签到活动可获得的总金额

广告必得活动:

字段备注
itemType值为2
completeNum完成的广告数量
taskNum总的广告数量
totalAmount完成一轮任务可获得的总金额

阅读赚:

字段备注
itemType值为3
giveGoldCount完成所有任务可获得的总金额

搜索赚:

字段备注
itemType值为4
giveGoldCount完成所有任务可获得的总金额

语音红包:

字段备注
itemType值为5

模版内容

以下方法的styleType强依赖expressContentStyle,如果配置的styleType与expressContentStyle不匹配,则配置无效,出全样式。

1、图标触发,跳转至activity

2、选项卡触发,获取模版fragment

参考demo中com.zbsdk.demo.tab.TabDemo2Activity的使用

3、获取模版view

4、支持的样式

广告

广告的使用之前,必须保证sdk广告就绪条件ok。

1、开屏

1.1 展示
1.2 销毁

推荐在activity的onDestroy中调用,防止内存泄漏。

1.3 代码示例

开屏基本代码调用参考

启动页开屏参考

2、闪屏(可自行实现闪屏)

自1.0.9版本之后,sdk支持内置闪屏。

  1. 需要集成广告相关sdk

  2. 需要在初始化配置内置参数,可参考demo

  3. 必须保证preInit在application的onCreate方法中调用

  4. 相关代码示例:

3、banner

3.1 展示
3.2 销毁

推荐在activity的onDestroy中调用,防止内存泄漏。

3.3 代码示例

4、信息流

4.1 展示
4.2 销毁

推荐在activity的onDestroy中调用,防止内存泄漏。

4.3 代码示例

5、激励

关闭回调onAdClose、onAdComplete二选一

5.1 展示
5.2 销毁
5.3 代码示例

6、插屏

6.1 展示
6.2 销毁
6.3 代码示例

方法说明

ZbSdk

ZbConfig.Builder

ZbTaskLoader

问题

一、包体过大解决方案

  1. AndroidManifest中配置以下代码

  1. cpu架构 建议只保留arm64-v8a,顶多再加一个armeabi-v7a, 开发者可以根据产品的用户画像,统计其他cpu架构占比添加,支持的架构越多,包体越大

  2. 图片资源压缩 建议图片png转webp格式,开发者自行选择压缩比,建议不要低于90%,单个图片大小尽量最大控制在100kb以内

  3. 删除无用资源,慎用三方库,提高代码的复用能力

  4. sdk会持续性的做包体压缩

二、其他问题

群里咨询即可

服务端-媒体发奖推送通知

媒体推送奖励提供

  1. 回调地址 post请求

  2. 加密方式:aes: 加密参数key两边对接;解密代码提供参考

接口说明

BASIC

Path: /media/award/cbk/xxx 开发者提供;接口会进行三次重试,均失败后走人工处理

Method: POST

REQUEST

Headers:

namevaluerequireddesc
Content-Typeapplication/jsonYES 

Request Body:

加密参数:aes加密,密钥串key和iv根据媒体随机生成

Request Body:

参数名类型是否必须备注
orderIdstringyes媒体发奖订单ID
mediaAppUserIdstringyes媒体产品用户ID
mediastringyes媒体
customParametersstringno媒体推送的自定义参数,json
appNamestringno产品名称
userRewardTypeintyes用户奖励类型 1-任务奖励 5-人工补贴 6-短剧红包 7-内嵌红包活动
userRewardAmountstringyes用户奖励金额(发放金额-现金);保留4位小数
awardShareAmountstringno分成金额(发放金额-现金);保留4位小数
userRewardTimeLongyes用户领奖时间(时间戳)

RESPONSE

Headers:

namevaluerequireddesc
content-typeapplication/json;charset=UTF-8NO 

Body:

nametypedesc
codeinteger响应码:200-正常
msgstring响应信息

Response :