全部产品

插屏接入说明

插屏广告加载完整示例

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

public class Interstitial extends Fragment {

    // 插屏加载器
    InterstitialAdLoader interstitialAdLoader;

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

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

        // 创建插屏加载器
        interstitialAdLoader = new InterstitialAdLoader(getContext());

        // 这里配置广告位Id
        interstitialAdLoader.setAdSlot(new AdSlot.Builder().slotId("替换为插屏的广告位ID").slotType(AdSlotType.INTERSTITIAL).build());

        // 设置加载回调
        interstitialAdLoader.setAdLoadListener(new AdLoadListener() {
            @Override
            public void loadSuccess() {
                LogUtil.checkPoint("广告加载成功");
            }

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

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

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

            @Override
            public void onClosed() {
                LogUtil.checkPoint("广告关闭");
                goToNext();
            }

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

        view.findViewById(R.id.btnNext).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 在需要展示广告时,先判断广告是否加载完成
                if (interstitialAdLoader.isReadyToShow()) {
                    // 加载完成直接展示
                    interstitialAdLoader.show();
                } else {
                    // 放弃此次广告展示,直接进行应用下一步操作
                    LogUtil.checkPoint("广告未加载完成,直接展示下一页");
                    goToNext();
                }
            }
        });

        // 加载广告
        interstitialAdLoader.loadAd();
    }

    @Override
    public void onStop() {
        super.onStop();
        // 当界面不展示时,隐藏广告
        if (interstitialAdLoader != null) {
            interstitialAdLoader.hide();
        }
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        // 当广告完全不使用时,释放广告
        if (interstitialAdLoader != null) {
            interstitialAdLoader.release();
            interstitialAdLoader = null;
        }
    }

    private void goToNext() {
        // 展示完插屏广告后的其它流程
        getContext().startActivity(new Intent(getContext(), NextActivity.class));
    }
}

插屏广告配置

插屏广告可配置内容为广告位ID。

广告位ID配置

        interstitialAdLoader = new InterstitialAdLoader(getContext());
        // 这里配置广告位Id
        interstitialAdLoader.setAdSlot(new AdSlot.Builder().slotId("替换为插屏的广告位ID").slotType(AdSlotType.INTERSTITIAL).build());

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

插屏广告监听

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

        // 创建插屏加载器
        interstitialAdLoader = new InterstitialAdLoader(getContext());
        // 设置加载回调
        interstitialAdLoader.setAdLoadListener(new AdLoadListener() {
            @Override
            public void loadSuccess() {
                LogUtil.checkPoint("广告加载成功");
            }

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

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

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

            @Override
            public void onClosed() {
                LogUtil.checkPoint("广告关闭");
                goToNext();
            }

            @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设置广告交互行为监听,可以用于处理逻辑和埋点,InterstitialAdLoader.AdInteractListener定义如下:

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

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

        /**
         * 关闭广告,处理插屏广告展示之后的逻辑
         */
        void onClosed();
    }

插屏广告加载

        // 创建插屏加载器
        interstitialAdLoader = new InterstitialAdLoader(getContext());
        // 请求加载广告
        interstitialAdLoader.loadAd();

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

插屏广告展示

插屏广告是一个弹出窗,而且展示时机需要根据应用的流程决定,在需要展示时,通过以下方法展示:

                // 在需要展示广告时,先判断广告是否加载完成
                if (interstitialAdLoader.isReadyToShow()) {
                    // 加载完成直接展示
                    interstitialAdLoader.show();
                } else {
                    // 否则,放弃此次广告展示,直接进行应用下一步操作
                    LogUtil.checkPoint("广告未加载完成,直接展示下一页");
                    goToNext();
                }