Native Ad

DMNativeAd的后台设置

使用本地原生广告(Native Ad)

Native广告模式是向开发者提供广告数据,由开发者手动将广告数据布局到自己应用的界面的广告模式。

本地原生广告的使用,需要以下几步:

1.实现NativeAdDataLoadListener监听。

NativeAdDataLoadListener nativeAdDataLoadListener = new NativeAdDataLoadListener() {

            @Override
            public void onLoadSuccess(final NativeAdData nativeAdData) {
                // 广告标题
                tv_title.setText(nativeAdData.title);
                // 广告描述 字数限制是33-80字
                tv_description.setText(nativeAdData.description);
                // app 星级 , 范围 : 0-100
                tv_ratings.setText(nativeAdData.appRating+"");
                // 广告简介 字数限制是8-32字
                tv_brief.setText(nativeAdData.brief);
                // app 包大小, 单位为Byte
                tv_size.setText(nativeAdData.appSize+"");
                // 广告事件按钮的提示文字
                bt.setText(nativeAdData.clickActionText);
                // app 下载数
                tv_downloads.setText(nativeAdData.appDownloads+"");
                // 广告icon
                if (nativeAdData.iconInfo != null) {
                    // 图片URL
                    String iconUrl = nativeAdData.iconInfo.imageUrl;
                }
                // 广告大图
                if (nativeAdData.mainInfo != null) {
                    // 图片URL
                    String mainUrl = nativeAdData.mainInfo.imageUrl;
                }
            }

            @Override
            public void onLoadFailer(NativeAdErrorCode errorMessage) {
                mLogger.debugLog("onNativeFail :" + errorMessage.toString());
            }

        };

2.使用您从多盟官网获得的Publisher ID、Placement ID、NativeAdDataLoadListener的实例以及当前的Activity,来初始化一个NativeAd的实例。

NativeAd nativeAd = new NativeAd(this, MainActivity.mPublisherID, MainActivity.mNativePPID, nativeAdDataLoadListener);

3.在合适的时候,调用loadNativeAd方法请求广告。

nativeAd.loadNativeAd();

3.在NativeAdDataLoadListeneronLoadSuccess回调方法,获取NativeAdData

@Override
            public void onLoadSuccess(final NativeAdData nativeAdData) {
                // 广告标题
                tv_title.setText(nativeAdData.title);
                // 广告描述 字数限制是33-80字
                tv_description.setText(nativeAdData.description);
                // app 星级 , 范围 : 0-100
                tv_ratings.setText(nativeAdData.appRating+"");
                // 广告简介 字数限制是8-32字
                tv_brief.setText(nativeAdData.brief);
                // app 包大小, 单位为Byte
                tv_size.setText(nativeAdData.appSize+"");
                // 广告事件按钮的提示文字
                bt.setText(nativeAdData.clickActionText);
                // app 下载数
                tv_downloads.setText(nativeAdData.appDownloads+"");
                // 广告icon
                if (nativeAdData.iconInfo != null) {
                    // 图片URL
                    String iconUrl = nativeAdData.iconInfo.imageUrl;
                }
                // 广告大图
                if (nativeAdData.mainInfo != null) {
                    // 图片URL
                    String mainUrl = nativeAdData.mainInfo.imageUrl;
                }
            }

4.将NativeAdData的数据展现到屏幕时,务必调用trackImpression方法,发送展现报告

nativeAd.trackImpression();

5.对于广告内的点击事件,需要调用handleAction方法处理

bt.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (nativeAd != null) {
                    // 处理点击事件
                    nativeAd.handleAction();
                } else {
                    Toast.makeText(getApplicationContext(), "NativeData is null", Toast.LENGTH_SHORT).show();
                }
            }
        });

6.清除占用资源,在Activity的onDestroy回调NativeAddestroy方法

@Override
    protected void onDestroy() {
        super.onDestroy();
        if (nativeAd != null) {
            nativeAd.destroy();
            nativeAd = null;
        }
    }