全部产品

banner接入说明

banner屏广告加载完整示例

通过xml配置广告位信息,在代码中设置相关监听和加载广告,方便理解banner广告的使用,示例如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">
    <com.alibaba.sdk.android.cloudcode.BannerAdView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cloud_code_cc_slot_id="替换为banner广告位ID"
        android:visibility="visible"
        android:id="@+id/bannerAdView" />
</LinearLayout>

对应界面加载代码:

public class Banner extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_banner, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        // 获取banner广告View
        final BannerAdView bannerAdView = view.findViewById(R.id.bannerAdView);
        // 设置加载监听
        bannerAdView.setAdLoadListener(new AdLoadListener() {
            @Override
            public void loadSuccess() {
                LogUtil.checkPoint("广告加载成功");
            }

            @Override
            public void loadFail(String s, String s1) {
                LogUtil.checkFail(s + " " + s1);
            }
        });

        // 设置交互监听
        bannerAdView.setAdInteractListener(new AdInteractListener() {
            @Override
            public void onShowed() {
                LogUtil.checkPoint("广告曝光");
            }

            @Override
            public void onClicked() {
                LogUtil.checkPoint("广告点击");
            }

            @Override
            public void close() {
                LogUtil.checkPoint("广告关闭");
                // 用户点击关闭后,需要隐藏广告
                bannerAdView.setVisibility(View.GONE);
            }

            @Override
            public void onAction(int i, int i1) {
                LogUtil.checkPoint("广告效果 " + i + " " + i1);
            }
        });

        // 请求加载banner广告
        bannerAdView.loadAd();
    }
}

banner广告配置

banner广告可配置内容为:

  1. 广告位ID

  2. 轮播间隔(如果创建广告位时,设置的是可轮播的banner广告位)

  • 在界面的布局文件xml中配置

    <com.alibaba.sdk.android.cloudcode.BannerAdView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cloud_code_cc_slot_id="替换为banner广告位ID"
        app:cloud_code_cc_loop_interval="45000"
        android:id="@+id/bannerAdView" />

BannerAdView的cloud_code_cc_slot_id属性用于配置广告位ID。

BannerAdView的cloud_code_cc_loop_interval属性用于配置轮播间隔,单位ms,最小30000ms。

  • 在代码中配置

        // 获取banner广告View
        final BannerAdView bannerAdView = view.findViewById(R.id.bannerAdView);
        // 这里配置广告位ID
        bannerAdView.setAdSlot(new AdSlot.Builder().slotId("替换为广告位ID").slotType(AdSlotType.BANNER).loopInterval(45000).build());

通过BannerAdView的setAdSlot方法配置广告位信息,参数AdSlot可以通过AdSlot.Builder构建。

banner广告监听

广告监听主要有广告加载成功失败的监听和广告交互的监听。

        // 获取banner广告View
        final BannerAdView bannerAdView = view.findViewById(R.id.bannerAdView);
        // 设置加载监听
        bannerAdView.setAdLoadListener(new AdLoadListener() {
            @Override
            public void loadSuccess() {
                LogUtil.checkPoint("广告加载成功");
            }

            @Override
            public void loadFail(String s, String s1) {
                LogUtil.checkFail(s + " " + s1);
            }
        });

        // 设置交互监听
        bannerAdView.setAdInteractListener(new AdInteractListener() {
            @Override
            public void onShowed() {
                LogUtil.checkPoint("广告曝光");
            }

            @Override
            public void onClicked() {
                LogUtil.checkPoint("广告点击");
            }

            @Override
            public void close() {
                LogUtil.checkPoint("广告关闭");
                // 用户点击关闭后,需要隐藏广告
                bannerAdView.setVisibility(View.GONE);
            }

            @Override
            public void onAction(int i, int i1) {
                LogUtil.checkPoint("广告效果 " + i + " " + i1);
            }
        });

setAdLoadListener设置加载监听,AdLoadListener定义如下:

/**
 * 广告加载的监听回调
 */
public interface AdLoadListener {
    /**
     * 加载成功,
     * 此时可以把广告View展示出来(添加到布局、隐藏改展示、或者类似插屏等需要的时候再展示)
     */
    void loadSuccess();

    /**
     * 加载失败,
     * 此时需要处理广告加载失败的情况,比如直接跳转到下一页或者保持广告view隐藏,不再展示
     * @param code 错误码
     * @param msg 错误信息
     */
    void loadFail(String code, String msg);
}

setAdInteractListener设置广告交互行为监听,可以用于处理逻辑和埋点。BannerAdView.AdInteractListener定义如下:

    /**
     * 广告交互监听
     */
    public interface AdInteractListener extends AdActionListener {
        /**
         * 广告曝光
         */
        void onShowed();

        /**
         * 点击广告
         */
        void onClicked();

        /**
         * 关闭广告
         * 处理广告隐藏逻辑
         */
        void close();
    }

banner广告加载

        // 获取banner广告View
        final BannerAdView bannerAdView = view.findViewById(R.id.bannerAdView);
        // 请求加载广告
        bannerAdView.loadAd();

调用BannerAdView的loadAd方法就会开始加载广告,通过AdLoadListener回调加载结果,加载成功之后,就可以用于展示。

banner广告展示

因为banner广告的载体是一个View,所以可以有以下几种方式:

  • 直接放置在布局中,并且设置为visible,当加载成功后直接展示。

  • 直接放置在布局中,并且设置为gone或者invisible,当加载成功后改为visible。

  • 动态创建BannerAdView,当加载成功后添加到界面的某个view容器中。