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

媒体IDapplicationId
Z2845395984com.zj.daylottery.addemo
类型ID类型ID
开屏广告J2190459774激励广告J9378481911
插屏半屏J7208384505插屏全屏J1556676069
Banner与信息流广告J1860767573视频流J2129444408
自渲染广告J7458720314视频内容J4961952628
原生新闻页J8492741586H5内容页J7513581444
短剧内容页J2654837754

注意

  • 使用测试广告位信息时需要修改applicationId

  • 详细的测试广告位信息见 demo 工程中的DataCenter