媒体渲染 开屏

媒体渲染开屏广告为用户在进入 App 时展示的全屏广告,开发者可以拿到广告的物料信息进行拼接

注意:针对 2.0.0 以前升级用户

广告接口有变动,请详细对照以下接入说明

开始之前

在开始集成开屏广告之前,您需要完成以下步骤:

  • 京媒合作平台创建开发者账号,添加应用,然后申请并配置一个媒体渲染开屏的代码位
  • 将 Android SDK 集成到您的开发项目并完成 SDK 初始化操作

  • 注意❗️❗❗️ 2.1.0及后续版本,区分了京东渲染与媒体渲染代码位,如采用媒体渲染接口加载广告,需传入媒体渲染代码位

  • 注意❗️❗❗️ 2.1.0及后续版本,SDK不再做入参尺寸比例的强校验,接入方传入宽高为期望广告大小,为更好展示广告,建议传入的宽高符合京媒平台广告样式

Step 1. 初始化 JADNative 对象

京媒SDK 触发一系列事件来通知您 Splash 广告加载、展示等活动。首先,需要创建 JADNative 对象,设置广告位对应的JADSlot配置。

JADSlot slot = new JADSlot.Builder()
                .setSlotID(slotID)
                .setImageSize(expressImageWidth, expressImageHeight)
                .setType(JADSlot.AdType.SPLASH)
                .setSkipTime(5)
                .build();
mJADNative = new JADNative(slot);

请求参数:

字段定义 字段名称 字段类型 备注
slotID 代码位ID String 必选参数
imageSize 图片宽/高 float 必选参数,期望图片的size,单位dp
adType 广告类型 int 必选参数, JADSlot.AdType.SPLASH
skipTime 跳过时间 int 可选参数, 开屏右上角倒计时的时间,单位为s,默认值为 5

Step 2. 请求广告

调用 loadAd 方法来请求广告,设置并实现监听事件的 JADNativeLoadListener。

mJADNative.loadAd(new JADNativeLoadListener() {

        /**
         * 广告数据加载成功
         */
        @Override
        public void onLoadSuccess() {
            // TODO:广告数据返回上报
        }

        /**
         * 广告数据加载失败
         *
         * @param code  错误码
         * @param error 错误描述信息
         */
        @Override
        public void onLoadFailure(int code, String error) {

        }
    });

Step 3. 渲染广告

广告数据加载成功后,通过获取广告数据自行渲染广告视图

List<JADMaterialData> adList = mJADNative.getDataList();

渲染广告的数据 JADMaterialData:

public interface JADMaterialData {

    /**
     * 获取广告标题
     */
    String getTitle();

    /**
     * 获取广告描述信息
     */
    String getDescription();

    /**
     * 获取广告图片
     */
    List<String> getImageUrls();

    /**
     * 获取广告来源,如:JD
     */
    String getResource();

    /**
     * 获取广告资源类型
     */
    String getMediaStyle();

    /**
    * 获取规格集
    */
    int getMediaSpecSetType();

    /**
     * 获取创意交互方式
     */
     int getEventInteractionType();

}

SDK提供摇一摇和滑动组件:

// 摇一摇组件,返回大小为(100dp,100dp)的View,当View attachedToWindow时,动画start,detachedFromWindow时,动画end
View shakeAnimationView = JADNativeWidget.getShakeAnimationView(this); 

// 滑动组件,返回大小为(matchParent,120dp)的View,当View attachedToWindow时,动画start,detachedFromWindow时,动画end
View swipeAnimationView = JADNativeWidget.getSwipeAnimationView(this);

Step 4. 注册View进行监听

注册绑定点击和关闭的 View,具体的View 开发者可以根据自身的需求而定。

//可点击View列表
List<View> clickList = new ArrayList<>();
if (mInteractionType == JADSlot.InteractionType.NORMAL) {
    clickList.add(imageView);
} else if (mInteractionType == JADSlot.InteractionType.SHAKE) {
    clickList.add(shakeAnimationView);
} else if (mInteractionType == JADSlot.InteractionType.SWIPE) {
    clickList.add(swipeAnimationView);
}

// 关闭View列表
View skipBtn = adView.findViewById(R.id.jad_splash_skip_btn);
List<View> closeList = new ArrayList<>();
closeList.add(skipBtn);

// 注册需要监听的视图,包括整体的广告View、点击视图列表、关闭视图列表
mJADNative.registerNativeView(this, adView, clickList, closeList,
        new JADNativeSplashInteractionListener() {

            /**
             * 广告曝光
             */
            @Override
            public void onExposure() {
                // TODO 广告曝光上报

            }

            /**
             * 广告倒计时,
             *
             * @param time 倒计时当前数字
             */
            @Override
            public void onCountdown(int time) {
                // TODO:关于倒计时视图刷新可在这个回调中进行操作

            }
            /**
            * 广告点击
            */
            @Override
            public void onClick(View view) {
                // TODO 广告点击上报

            }

            /**
             * 广告关闭
             */
            @Override
            public void onClose(View view) {

            }
        });

Step 5. 销毁广告

建议您在销毁之前调用destroy方法来释放 JADNative 对象。

if (mJADNative != null) {
    mJADNative.destroy();
    mJADNative = null;
}

移除广告view

可在Activity跳转到其他Activity时把广告控件上的广告视图remove掉 mSplashContainer.removeAllViews();

获取广告价格

// 获取竞价价格,单位:分
int price = mJADNative.getJADExtra().getPrice();

参考Demo

媒体渲染开屏广告请参考Demo中的 NSplashAdActivity 示例

注意事项:

1、请在 mJADNative.registerNativeView() 之后再将广告试图添加到广告容器中,否则会影响曝光,具体可参照Demo。
2、开发则需要在 onLoadFailure(),onClose() 回调函数做跳转主页面的处理。
3、需要开发者在开屏Activity中onStop()中做一个标记 在onResume()中做跳转主页面的逻辑处理,跳转之后开屏控件上的view移除。

@Override
protected void onResume() {
    super.onResume();
    //判断是否该跳转到主页面
    if (mForceGoMain) {
        openMainActivity();
    }
}

@Override
protected void onStop() {
    super.onStop();
    mForceGoMain = true;
}

4、开屏宽度必须为屏幕宽度,高度需不小于屏幕宽度的50%,且展示时长不小于1s, 否则不能有效曝光。

© JD.COM all right reserved,powered by Gitbook该文档最后更新: 2024-04-25 21:12:16

results matching ""

    No results matching ""