项目中加入百度联盟广告。

需要在http://mssp.baidu.com/home/developer.html#/app/list申请应用,待审核通过后需要在申请一个代码位id,这个代码位id很重要,因为需要这个东西来获取到百度联盟的广告信息。

一些配置信息官方文档已经给出了http://bce.ssp.baidu.com/mssp/sdk/BaiduMobAds_MSSP_bd_SDK_android_v5.6.pdf

demo及jar下载地址http://bce.ssp.baidu.com/mssp/sdk/BaiduMobAds_MSSP_bd_SDK_android_v5.6.zip

一般情况下在列表中使用广告的话,需要申请信息流,不过不知道什么原因信息流的审核很慢,所以就先做了一个视频贴片的广告

效果就是下图所示



先贴上工具类代码

import android.content.Context;
import android.util.Log;
import com.baidu.mobad.feeds.BaiduNative;
import com.baidu.mobad.feeds.NativeErrorCode;
import com.baidu.mobad.feeds.NativeResponse;
import com.baidu.mobad.feeds.RequestParameters;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2017/2/9.
 */

public class BaiDuAdvertisementUtils {
    private static List<NativeResponse> nrAdList = new ArrayList<NativeResponse>();    //广告的List
    private static String YOUR_AD_PLACE_ID = "******"; // 双引号中填写自己的广告位ID

    /***
     * 初始化广告位
     */
    public static List<NativeResponse> initGuanggao(Context context) {
        /**
         * Step 1. 创建BaiduNative对象,参数分别为: 上下文context,广告位ID, BaiduNativeNetworkListener监听(监听广告请求的成功与失败)
         * 注意:请将YOUR_AD_PALCE_ID替换为自己的广告位ID
         */
        BaiduNative baidu = new BaiduNative(context, YOUR_AD_PLACE_ID, new BaiduNative.BaiduNativeNetworkListener() {
            @Override
            public void onNativeFail(NativeErrorCode arg0) {
                Log.w("ListViewActivity", "onNativeFail reason:" + arg0.name());
            }
            @Override
            public void onNativeLoad(List<NativeResponse> arg0) {
                // 一个广告只允许展现一次,多次展现、点击只会计入一次
                if (arg0 != null && arg0.size() > 0) {
                    if(nrAdList.size()==0) {
                        nrAdList.addAll(arg0);
                    }
                }
            }
        });
        /**
         * Step 2. 创建requestParameters对象,并将其传给baidu.makeRequest来请求广告
         */
        // 用户点击下载类广告时,是否弹出提示框让用户选择下载与否
        RequestParameters requestParameters =
                new RequestParameters.Builder()
                        .downloadAppConfirmPolicy(
                                RequestParameters.DOWNLOAD_APP_CONFIRM_ONLY_MOBILE).build();

        baidu.makeRequest(requestParameters);
        return nrAdList;
    }
}

用法如下:

final List<NativeResponse> data = BaiDuAdvertisementUtils.initGuanggao(getActivity());
publishAdapter.addGGDatas(data);
适配器里的使用以及点击广告之后下载apk
GGHolder ggHolder = (GGHolder) holders;
if (arg0.size() != 0) {
    ggHolder.gg_content.setText(arg0.get(0).getDesc());
    Glide.with(mContext).load(arg0.get(0).getImageUrl()).into(ggHolder.gg_iv);
    ggHolder.GG_item.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            NativeResponse nrAd = arg0.get(0);
            nrAd.handleClick(v);
        }
    });
}


发布了16 篇原创文章 · 获赞 14 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/liulong_/article/details/62884336