集成当贝点金广告SDK之前,您首先需要到当贝点金官网注册并且添加新应用,获取appKey
/appSecret
。
特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于人员流动带来的问题,建议使用的账号形式 :znds@企业域名、apps@企业域名、dev@企业域名。
首先在build.gradle
中添加当贝点金广告依赖,最新版本请点这里查看:
dependencies {
compile 'com.dangbei:sdk-euthenia:3.2.0'
}
如果无法正常集成请添加如下代码 :
allprojects {
repositories {
mavenCentral()
}
}
同步Gradle。
如果你的so文件配置不是支持全部的ABI指令集的话,请根据实际情况过滤。例如只支持armeabi ,armeabi-v7a
,在build.gradle
添加如下代码 :
android {
defaultConfig {
ndk {
abiFilters "armeabi" ,"armeabi-v7a"
}
}
}
同步Gradle。
进入这里下载aar
文件到本地。
解压aar
文件,如有必要修改aar
后缀为zip
后进行解压。
将classes.jar
重命名为euthenia-sdk-{版本号}.jar
,并加入到您项目的classPath下。
拷贝assets
目录下的文件到您项目中的assets
目录下。
拷贝(根据实际情况拷贝so文件,确保项目本身支持ABI指令集的目录,他们的so文件数据量一致)jni
目录下的文件到您项目中的jni相关目录(默认为libs目录)。
打开AndroidManifest.xml
,添加如下代码:
<manifest ...>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest>
<application ...>
<receiver android:name="com.dangbei.euthenia.receiver.NetworkChangeReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
</application>
所需权限 | 是否必须 | 用途 |
---|---|---|
INTERNET | 是 | 允许应用程序联网,以便向我们的服务器端发送数据 |
ACCESS_NETWORK_STATE | 是 | 检测联网方式,区分用户设备使用的是2G、3G或是WiFi |
ACCESS_WIFI_STATE | 是 | 获取用户设备的mac地址,我们会将mac地址作为用户的唯一标识 |
WRITE_EXTERNAL_STORAGE | 是 | 写入sd卡的权限 |
READ_EXTERNAL_STORAGE | 是 | 读取sd卡信息的权限 |
-keep class com.dangbei.euthenia.**{*;}
使用后台申请的Appkey
/AppSecret
在Application::onCreate()
处进行初始化,如下:
DangbeiAdManager.init(this, APPKEY, APP_SECRET, CHANNEL);
在某个Activity中,使用如下代码展示一个启动页广告:
IAdContainer adContainer = DangbeiAdManager.getInstance().createSplashAdContainer(this);
adContainer.open();
更多的接入细节,可以参照demo代码,请点击这里进行下载
闪屏广告类型,在应用启动时调用展示,闪屏广告显示逻辑如下:
屏保广告显示逻辑如下:
视频贴片广告类型,在播放视频之前展示,可放大缩小播放窗口,广告显示逻辑如下:
视频暂停广告类型,在播放视频暂停时展示,广告显示逻辑如下:
open()
显示广告,调用close()
关闭广告
弹窗广告类型,在应用使用的时候弹出展示,广告显示逻辑如下:
该api只需在
Application
的onCreate
方法中调用一次。
DangbeiAdManager.init(context, APPKEY, APP_SECRET, CHANNEL);
applicationContext
,不能为空。AppKey
,不能为空。AppSecret
,不能为空。在展示广告前需要创建一个广告容器
IAdContainer adContainer = DangbeiAdManager.getInstance().createSplashAdContainer(context);
Activity Context
,不能使用Application Context
。void open();
创建完广告后,再调用adContainer.open()
方法即可展示广告。
注意: 一个容器最多只能展示一次广告,也就是说,
open()
方法只能被调用一次,否则会抛出EutheniaException "The AdContainer CAN NOT be reused, please create a new AdContainer instance."
void close();
开发者可以手动调用此方法来关闭广告,目前只有视频暂停广告和视频贴片广告支持开发这手动关闭广告,否则将会抛出EutheniaException 暂不支持此方法
void setParentView(ViewGroup parentView);
创建完广告后,调用adContainer.setParentView()
方法设置广view的父view,目前只有视频暂停广告,视频贴片广告和视频贴片广告支持设置,否则将会抛出EutheniaException 暂不支持此方法
void resize();
展示广告过程中,如果parentView
的大小改变,调用adContainer.resize()
方法来刷新广告adContainer的大小,目前只有视频贴片广告支持设置,否则将会抛出EutheniaException 暂不支持此方法
boolean isDisplaying();
创建完广告后或者调用open()
方法以后,可以调用adContainer.isDisplaying()
方法来判断广告是否正在展示中。
boolean isBeforeDisplaying();
从创建完广告后,到调用open()
方法,最后展示出广告有个过程,可以通过调用adContainer.isBeforeDisplaying()
方法来判断广告是否在展示之前。
开发者可以监听一个广告展示过程的状态,可以在相应的回调方法中进行各自的处理
void setOnAdDisplayListener(@Nullable OnAdDisplayListener onAdDisplayListener);
OnAdDisplayListener
支持的状态回调如下:
public interface OnAdDisplayListener {
@MainThread
void onDisplaying();
@MainThread
void onFailed(Throwable throwable);
@MainThread
void onFinished();
@MainThread
void onClosed();
@MainThread
void onTerminated();
@MainThread
void onSkipped();
@MainThread
void onTriggered();
注意: 以上7种状态回调中,除
onDisplaying()
以外,其他方法都是广告的最终状态。所有的回调方法都运行在MainThread
。
在一次广告展示过程中,onFailed
、onFinished
、onClosed
、onTerminated
、onSkipped
、onTriggered
这几个方法有且只有一个方法会被回调。
当广告一旦处于展示中,此方法会被回调。
当广告展示过程失败时会被回调。这里的失败的可能性如下:
开发者可以通过打印这个方法的Throwable
来判断广告展示失败的原因。
如果该广告设置了展示n秒后自动关闭,当广告正常展示n秒后,广告结束,此方法就会被调用。
如果该广告展示过程中被用户手动关闭(开发者调用了close
方法显式地关闭了广告),此方法就会被调用。
如果在广告展示过程中,Activity被用户关闭(比如用户按了返回键使得Activity:onDestroy
了等等),则认为广告被终止,此方法会被调用。
某些广告支持在展示n秒之后允许用户跳过广告,当用户按了“跳过”之后,广告展示结束,此方法就会被回调。
CPC类型的广告,支持用户点击触发广告,跳转到其他页面(其他App、H5页面等等),广告展示结束,此方法就会被回调。
智能电视网
联系客服:联系客服
Email:report@znds.com
☺为了能够尽快响应您的反馈,请提供您的appkey及logcat中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。
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. 集成后Debug时是好的,Release版本一直无法出现广告?