1. 当贝点金SDK(yunos版)集成指南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.3 支持的广告类型1.3.1 闪屏启动广告(createSplashAdContainer)1.3.2 屏保广告(createScreenSaverAdContainer)1.3.3 视频贴片广告(createVideoPreAdContainer)1.3.4 视频暂停广告(createVideoPauseAdContainer)1.3.5 视频角标广告(createVideoFloatAdContainer)1.4 SDK API1.4.1 初始化广告1.4.2 创建广告容器1.4.3 打开广告1.4.4 关闭广告1.4.5 设置parentView1.4.6 变化adContainer大小1.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.5 技术支持1.6 FAQ

1. 当贝点金SDK(yunos版)集成指南

1.1 注册AppKey

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

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

1.2 快速集成

1.2.1 Android Studio

首先在build.gradle中添加当贝点金广告依赖,最新版本请点这里查看

 

如果无法正常集成请添加如下代码 :

 

同步Gradle。

如果你的so文件配置不是支持全部的ABI指令集的话,请根据实际情况过滤。例如只支持armeabi ,armeabi-v7a,在build.gradle添加如下代码 :

 

同步Gradle。

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目录)。

1.2.3 修改AndroidManifest.xml

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

 
 

1.2.3.1 权限说明

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

1.2.4 混淆相关配置

-keep class com.dangbei.euthenia.**{*;}

1.2.5 初始化

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

 
 

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

1.2.6 展示一个广告

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

 

示例代码下载

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

1.3 支持的广告类型

1.3.1 闪屏启动广告(createSplashAdContainer)

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

1.3.2 屏保广告(createScreenSaverAdContainer)

屏保广告显示逻辑如下:

1.3.3 视频贴片广告(createVideoPreAdContainer)

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

1.3.4 视频暂停广告(createVideoPauseAdContainer)

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

  1. 填充ParentView
  2. 支持图片,gif,没有倒计时显示
  3. 调用open()显示广告,调用close()关闭广告

1.3.5 视频角标广告(createVideoFloatAdContainer)

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

  1. 填充ParentView
  2. 支持图片,gif类型,后台配置展示时长。
  3. 调用open方法时右下角弹出,尺寸为素材的像素大小

1.4 SDK API

1.4.1 初始化广告

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

 

1.4.2 创建广告容器

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

 

1.4.3 打开广告

 

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

注意: 一个容器最多只能展示一次广告,也就是说,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.6 变化adContainer大小

 

展示广告过程中,如果parentView的大小改变,调用adContainer.resize()方法来刷新广告adContainer的大小,目前只有视频贴片广告支持设置,否则将会抛出EutheniaException 暂不支持此方法

1.4.7 广告是否正在展示

 

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

1.4.8 广告是否尚未展示

 

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

1.4.9 增加广告展示状态监听

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

 

OnAdDisplayListener支持的状态回调如下:

 

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

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.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、配置的广告是否有每日展示次数上限,是否已达上限;