SDK 初始化
SDK 初始化
此章节将演示如何在原生
项目中初始化ZJSDK
。
提示
初始化常见错误事项见常见问题-初始化
初始化与启动
在进入应用后,通过ZjSdk
类的静态方法初始化 SDK
初始化分为ZjSdk#initWithoutStart(Context, ZJConfig);
方法与ZjSdk#start(OnStartListener)
两个方法。
两个方法需要按顺序调用,先调用initWithoutStart
方法配置初始化的信息,再在用户同意隐私政策后调用Start
方法启动SDK,并确保启动成功后再请求广告。
方法 | 参数 | 说明 |
---|---|---|
initWithoutStart(ZJConfig config) | context: ApplicationContext config: 初始化配置信息 | 配置初始化信息,可以在用户同意隐私政策前调用 |
start(OnStartListener listener) | listener: 初始化状态回调 | 启动SDK,需要在用户同意隐私政策后尽快调用 |
ZJConfig 说明
ZJConfig 为 SDK 的初始化信息配置
方法 | 说明 | 必选 | 默认值 |
---|---|---|---|
appId(String appId) | 设置媒体ID | √ | - |
userId(String userId) | 设置用户唯一ID | × | "" |
isDebug(boolean debug) | 是否为调试模式 调试模式,会输出调试日志 | × | false |
appIcon(int resId) | 设置 App 图标资源ID | × | -1 |
age(int age) | 用户年龄,仅针对海外市场 age 需要大于0 | × | 0 |
gdpr(int gdpr) | GDPR授权,仅针对海外市场 -1为未知 0为用户未授权 1为用户授权 | × | -1 |
coppa(int coppa) | COPPA授权,仅针对海外市场 -1为未知 0为成人 1为儿童 | × | -1 |
ccpa(int ccpa) | CCPA授权,仅针对海外市场 -1为未知 0为允许出售 1为不允许出售 | × | -1 |
初始化示例
// Application
@override
public void onCreate() {
// 用户ID,没获取到可以不传(但调用激励广告时必须要传入且为当前用户的唯一ID)
// 2.4.19版本初始化方式调整,需要使用initWithoutStart方法初始化,并在用户同意隐私协议后调用start方法
ZjSdk.initWithoutStart(this,
new ZJConfig.Builder("Z2845395984")
.userId(MainActivity.userId)
.build());
// 判断用户是否同意隐私政策协议。若同意则调用start方法启动SDK,拒绝则无法提供广告服务
if (SPUtil.isAgreePrivacy(this)) {
start(MainApplication.this);
}
}
public static void start(Context context) {
// 2.4.19版本初始化方法调整,需要先调用initWithoutStart方法初始化,并在用户同意隐私协议后调用start方法
ZjSdk.start(new ZjSdk.OnStartListener() {
@Override
public void onStartSuccess() {
// 需要在start成功后请求广告
Toast.makeText(context, "ZJSDK初始化成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onStartFailed(int code, @Nullable String msg) {
String text = "ZJSDK初始化失败[" + code + "-" + msg + "]";
Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
}
});
}
override fun onCreate() {
// 用户ID,没获取到可以不传(但调用激励广告时必须要传入且为当前用户的唯一ID)
// 2.4.19版本初始化方式调整,需要使用initWithoutStart方法初始化,并在用户同意隐私协议后调用start方法
ZjSdk.initWithoutStart(this@MainApplication,
ZJConfig.Builder("Z2845395984")
.userId(MainActivity.userId)
.build()
);
// 判断用户是否同意隐私政策协议。若同意则调用start方法启动SDK,拒绝则无法提供广告服务
if (SPUtil.isAgreePrivacy(this@MainApplication)) {
start(this@MainApplication);
}
}
private fun start(context:Context) {
// 2.4.19版本初始化方法调整,需要先调用initWithoutStart方法初始化,并在用户同意隐私协议后调用start方法
ZjSdk.start(object : ZjSdk.OnStartListener {
override fun onStartSuccess() {
// 需要在start成功后请求广告
Toast.makeText(context, "ZJSDK初始化成功", Toast.LENGTH_SHORT).show()
}
override fun onStartFailed(code: Int, @Nullable msg: String?) {
val text = "ZJSDK初始化失败[$code-$msg]"
Toast.makeText(context, text, Toast.LENGTH_SHORT).show()
}
})
}
测试信息
以下为我方提供的测试应用 ID 与广告位 ID,使用时需要将 applicationId 改为com.zj.daylottery.addemo
媒体ID | applicationId |
---|---|
Z2845395984 | com.zj.daylottery.addemo |
类型 | ID | 类型 | ID |
---|---|---|---|
开屏广告 | J2190459774 | 激励广告 | J9378481911 |
插屏半屏 | J7208384505 | 插屏全屏 | J1556676069 |
Banner与信息流广告 | J1860767573 | 视频流 | J2129444408 |
自渲染广告 | J7458720314 | 视频内容 | J4961952628 |
原生新闻页 | J8492741586 | H5内容页 | J7513581444 |
短剧内容页 | J2654837754 |
注意
使用测试广告位信息时需要修改
applicationId
详细的测试广告位信息见 demo 工程中的
DataCenter
类