视频流广告

视频流广告

此章节将演示如何请求在原生环境下请求与展示视频流广告

视频流

提示

视频流广告返回的是广告内容,用于插入到应用自有的视频流或信息流

SDK 提供了视频内容与广告结合的【视频内容组件】,可以直接用于内容填充

请求视频流广告

调用ZJDrawAd#loadAd的重载方法请求广告,并在ZJDrawAdLoadListener中获取广告对象与处理错误信息

public class ZJDrawAd {

    public static void loadAd(String posId, ZJDrawAdLoadListener loadListener);

    public static void loadAd(String posId, int adNum, ZJDrawAdLoadListener loadListener);

    /**
     * 加载广告
     *
     * @param posId        广告位ID
     * @param adNum        期望请求的数量
     * @param widthDP      期望宽,单位DP
     * @param heightDP     期望高,单位DP
     * @param loadListener 加载回调
     */
    public static void loadAd(String posId, int adNum, int widthDP, int heightDP, ZJDrawAdLoadListener loadListener);

}

提示

默认不需要传入宽高数值,SDK 会根据模板自适应渲染

如有特殊需求传入时,请联系我们固定素材的宽高比,并需要确保传入的数值单位为DP。且为有效值(不大于屏幕宽高),否则会渲染失败。

加载回调说明

方法说明
onError(int code, String msg)广告加载出错
code: 错误码
msg: 错误信息
onAdLoaded(List<ZJDrawAd> adList)广告加载成功
adList: 广告列表

展示视频流广告

在加载成功回调中获取到ZJNativeExpressAd对象后,可以配置交互回调,调用render(Activity)方法渲染广告,并在交互回调的onDrawAdRenderSuccess(View adView)回调中将adView插入到容器中

ZJDrawAd 说明

方法说明
isVolumeOn(boolean isVolumeOn)是否开启视频声音
setInteractionListener(ZJDrawAdInteractionListener interactionListener)配置交互回调
setVideoListener(ZJDrawAdVideoListener videoListener)配置视频播放回调
render(Activity activity)渲染
activity: 当前 activity 对象
onDestroy()页面销毁时需要调用,回收资源,防止内存泄漏

交互回调说明

方法说明
onDrawAdShow()视频流展示
onDrawAdClick()视频流点击
onDrawAdRenderSuccess(View adView)视频流渲染成功
adView: 广告视图
onDrawAdRenderFailed(int code, String msg)广告渲染失败
code: 错误码
msg: 错误信息

视频播放回调说明

方法说明
onVideoStart()视频播放开始
onVideoPause()视频播放暂停
onVideoResume()视频播放恢复
onVideoComplete()视频播放完成
onVideoError(int code, String msg)视频播放错误
code: 错误码
msg: 错误信息

视频流广告接入示例

// 加载广告
ZJDrawAd.loadAd(this, posId, 1, new ZJDrawAdLoadListener() {

    @Override
    public void onError(int code, @NonNull String msg) {
        Log.e("ZJDrawAd", "视频加载出错" + code + "-" + msg);             
    }

    @Override
    public void onAdLoaded(@NonNull List<ZJDrawAd> adList) {
        // 视频加载成功,配置交互回调
        adList.get(0).setInteractionListener(new ZJDrawAdInteractionListener() {

            //...
                 
            public void onDrawAdRenderSuccess(@NonNull View adView) {
                // 广告渲染视图,返回adView视图
                this.container.addView(adView);
            }

            //...

        }
        // 视频流渲染
        adList.get(0).render(DrawAdActivity.this);
    }

});
// 加载广告
ZJDrawAd.loadAd(this, posId, 1, object : ZJDrawAdLoadListener {

    override fun onError(code: Int, msg: String) {
        Log.e("ZJDrawAd", "信息流加载出错$code-$msg")
    }

    override fun onAdLoaded(adList: MutableList<ZJDrawAd>) {
        // 视频加载成功,配置交互回调
        adList[0].setInteractionListener(object : ZJDrawAdInteractionListener {

            // ...
        
            override fun onDrawAdRenderSuccess(adView: View?) {
                // 广告渲染视图,返回adView视图
                if (adView != null) {
                    this@DrawAdActivity.container.addView(adView);
                }
            }

            // ...

        })
        // 视频流渲染
        adList[0].render(this@DrawAdActivity);
    }

})