1. 当贝点金SDK集成指南1.1 注册AppKey1.2 快速集成1.2.1 Android Studio1.2.2 Eclipse1.2.3 修改AndroidManifest.xml1.2.3.1 权限说明1.2.4 混淆相关配置1.2.5 初始化1.2.6 展示一个广告1.2.7 示例代码下载1.3 支持的广告类型1.3.1 闪屏启动广告(createSplashAdContainer)1.3.2 屏保广告(createScreenSaverAdContainer)1.3.3 视频贴片广告(createVideoPreAdContainer)1.3.4 视频暂停广告(createVideoPauseAdContainer)1.3.5 视频角标广告(createVideoFloatAdContainer)1.3.6退出广告(createExitAdContainer)1.3.7 退出广告新样式(createExitAdFullContainer)1.4 SDK API1.4.1 初始化广告1.4.2 创建广告容器1.4.3 打开广告1.4.4 关闭广告1.4.5 设置parentView1.4.7 广告是否正在展示1.4.8 广告是否尚未展示1.4.9 增加广告展示状态监听1.4.9.1 onDisplaying1.4.9.2 onFailed1.4.9.3 onFinished1.4.9.4 onClosed1.4.9.5 onTerminated1.4.9.6 onSkipped1.4.9.7 onTriggered1.4.9.8 onFetch1.4.10 设置广告总时⻓ 1.5 技术支持1.6 FAQ1.7 接口返回值查询

1. 当贝点金SDK集成指南

1.1 注册AppKey

集成当贝点金广告SDK之前,您首先需要到当贝点金官网注册并且添加新应用,获取appKey/appSecret

特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于人员流动带来的问题,建议使用的账号形式 :znds@企业域名、apps@企业域名、dev@企业域名。

1.2 快速集成

1.2.1 Android Studio

1.进入这里下载aar文件,并加入到您项目的libs下。

2.进入这里下载相关必需jar包,并加入到您项目的libs下。

3.将相关aar包以及jar 添加依赖到您的项目下

1.2.2 Eclipse

  1. 进入这里下载aar文件到本地。
  2. 解压aar文件,如有必要修改aar后缀为zip后进行解压。
  3. classes.jar重命名为euthenia-sdk-{版本号}.jar,并加入到您项目的classPath下。
  4. 拷贝assets目录下的文件到您项目中的assets目录下。
  5. 拷贝(根据实际情况拷贝so文件,确保项目本身支持ABI指令集的目录,他们的so文件数据量一致jni目录下的文件到您项目中的jni相关目录(默认为libs目录)。
  6. 请拷贝res目录下的xml 目录到您项目中的res目录下。
  7. 进入这里下载相关必需jar包,并加入到您项目的classPath下。
  8. 确保项目中使用了RecyclerView。

 

1.2.3 修改AndroidManifest.xml

打开AndroidManifest.xml,添加如下代码:

为避免Provider冲突,广告新增自有DBFileProvider,务必严格按照上面要求配置,以免导致错误

1.2.3.1 权限说明

所需权限是否必须用途
INTERNET允许应用程序联网,以便向我们的服务器端发送数据
ACCESS_NETWORK_STATE检测联网方式,区分用户设备使用的是2G、3G或是WiFi
ACCESS_WIFI_STATE获取用户设备的mac地址,我们会将mac地址作为用户的唯一标识
WRITE_EXTERNAL_STORAGE写入sd卡的权限
READ_EXTERNAL_STORAGE读取sd卡信息的权限
ACCESS_COARSE_LOCATION允许程序访问CellID或WiFi热点来获取粗略的位置
ACCESS_FINE_LOCATION允许程序访问精良位置(如GPS)

注意:Android6.0以上需要动态获取权限,在广告展示时建议先判断是否有读写权限在进行展示广告的操作,避免权限问题导致广告展示失败,sdk中新增没有权限提示。3.3.8以后广告sdk不再对权限做处理,权限判断和动态申请权限开发者自行处理。

1.2.4 混淆相关配置

3.3.7版本以后下载库有所修改,请使用在jar下载地址处下载新的jar包,并更新混淆配置

1.2.5 初始化

使用后台申请的Appkey/AppSecretApplication::onCreate()处进行初始化,如下:

支持channel字段在代码中写入或者在manifest中写入。

ProcessName为app允许初始化及展示广告的进程,不传默认只支持主进程。

1.2.6 展示一个广告

在某个Activity中,使用如下代码展示一个启动页广告:

新增adContainer.openedNoRemove()方法,与.open()方法的区别在于,openedNoRemove()方法在sdk中不会进行资源回收,开发者可以通过finish闪屏页面进行资源回收。

1.2.7 示例代码下载

更多的接入细节,可以参照demo代码,点击下载

1.3 支持的广告类型

1.3.1 闪屏启动广告(createSplashAdContainer)

闪屏广告类型,在应用启动时调用展示,闪屏广告显示逻辑如下:

1.3.2 屏保广告(createScreenSaverAdContainer)

屏保广告显示逻辑如下:

1.3.3 视频贴片广告(createVideoPreAdContainer)

视频贴片广告类型,在播放视频之前展示,可放大缩小播放窗口,广告显示逻辑如下:

1.3.4 视频暂停广告(createVideoPauseAdContainer)

视频暂停广告类型,在播放视频暂停时展示,广告显示逻辑如下:

1.3.5 视频角标广告(createVideoFloatAdContainer)

弹窗广告类型,在应用使用的时候弹出展示,广告显示逻辑如下:

1.3.6退出广告(createExitAdContainer)

弹窗广告类型,在应用使用的时候弹出展示,广告显示逻辑如下:

示例代码:

1.3.7 退出广告新样式(createExitAdFullContainer)

退出广告类型,在调开发者退出页时创建:

1.4 SDK API

1.4.1 初始化广告

该api只需在ApplicationonCreate方法中调用一次。

1.4.2 创建广告容器

在展示广告前需要创建一个广告容器

1.4.3 打开广告

创建完广告后,再调用adContainer.open(boolean isAutoClear)方法即可展示广告。

注意: openedNoRemove()用于打开广告,结束后不移除view

一个容器最多只能展示一次广告,也就是说,open()方法只能被调用一次,否则会抛出EutheniaException "The AdContainer CAN NOT be reused, please create a new AdContainer instance."

1.4.4 关闭广告

开发者可以手动调用此方法来关闭广告,目前只有视频暂停广告视频贴片广告支持开发这手动关闭广告,否则将会抛出EutheniaException 暂不支持此方法

1.4.5 设置parentView

创建完广告后,调用adContainer.setParentView()方法设置广view的父view,目前只有视频暂停广告视频贴片广告视频角标广告退出广告新样式支持设置,否则将会抛出EutheniaException 暂不支持此方法

1.4.7 广告是否正在展示

创建完广告后或者调用open()方法以后,可以调用adContainer.isDisplaying()方法来判断广告是否正在展示中。

1.4.8 广告是否尚未展示

从创建完广告后,到调用open()方法,最后展示出广告有个过程,可以通过调用adContainer.isBeforeDisplaying()方法来判断广告是否在展示之前。

1.4.9 增加广告展示状态监听

开发者可以监听一个广告展示过程的状态,可以在相应的回调方法中进行各自的处理

OnAdDisplayListener支持的状态回调如下:

注意: 以上7种状态回调中,除onDisplaying()onFetch()以外,其他方法都是广告的最终状态。所有的回调方法都运行在MainThread。 在一次广告展示过程中,onFailedonFinishedonClosedonTerminatedonSkippedonTriggered这几个方法有且只有一个方法会被回调。

onFetch()为新增的获取到广告的回调

1.4.9.1 onDisplaying

当广告一旦处于展示中,此方法会被回调。

1.4.9.2 onFailed

当广告展示过程失败时会被回调。这里的失败的可能性如下:

开发者可以通过打印这个方法的Throwable来判断广告展示失败的原因。

1.4.9.3 onFinished

如果该广告设置了展示n秒后自动关闭,当广告正常展示n秒后,广告结束,此方法就会被调用。

1.4.9.4 onClosed

如果该广告展示过程中被用户手动关闭(开发者调用了close方法显式地关闭了广告),此方法就会被调用。

1.4.9.5 onTerminated

如果在广告展示过程中,Activity被用户关闭(比如用户按了返回键使得Activity:onDestroy了等等),则认为广告被终止,此方法会被调用。

1.4.9.6 onSkipped

某些广告支持在展示n秒之后允许用户跳过广告,当用户按了“跳过”之后,广告展示结束,此方法就会被回调。

1.4.9.7 onTriggered

CPC类型的广告,支持用户点击触发广告,跳转到其他页面(其他App、H5页面等等),广告展示结束,此方法就会被回调。

1.4.9.8 onFetch

调用open()后,成功从服务端获取到广告,此方法会被回调。

1.4.10 设置广告总时⻓

调用 setTimeOut(int time) 设置广告调用逻辑总时⻓,防止广告⻓时间超时

1.5 技术支持

智能电视网

联系客服:联系客服

Email:report@znds.com

☺为了能够尽快响应您的反馈,请提供您的appkey及logcat中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。

1.6 FAQ

Q 01. 打开广告时抛出EutheniaException "The AdContainer CAN NOT be reused, please create a new AdContainer instance."异常?

A 01. 同一个AdContainer对象只能打开一次广告,也就是说,open()方法只能被调用一次。如果需要再次展示广告,则需要重新创建AdContainer


Q 02. 集成测试的时候一直无法出现广告?

A 02. 请确定后台正确的创建了测试广告。


Q 03. 集成测试的时候,后台已经创建了广告,还是一直无法出现广告?

A 03. 请确定集成设备的时间是否是网络时间。


Q 04. 抛出---Query local available ad placements EMPTY!--->异常,不展示是因为?

A 04. 本地数据库中无可用广告。

请确认:

1、后台配置广告媒体与接入apk是否为同一个;

2、当前时间(设备的系统时间)是否在配置广告的展示周期中;

3、配置的广告是否有设置频控;

4、配置的广告是否有每日展示次数上限,是否已达上限;


1.7 接口返回值查询

codemsg说明
200success成功
201param is error请求参数错误
202request expired请求超时
203package is not matched包名不匹配
204shielded request应用不可用
205channel is null渠道为空
206unsupported version不支持版本
207request format error请求格式错误
208advalidate is nulladvalidate为空
209adids is nulladids为空
210trick mode频繁请求
211validate error验证错误
212No So File Loadedso库缺失
500internal server error接口异常