从谷歌批量加载统一原生广告

问题描述

我正在尝试在动态布局中实现 UnifiednativeAd,这是我的代码

MobileAds.initialize(requireActivity(),new OnInitializationCompleteListener() {
                @Override
                public void onInitializationComplete(InitializationStatus initializationStatus) {
                }
            });

            LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT
            );
            p.setMargins(0,40,20);
            LinearLayout layoutad = root.findViewById(R.id.layoutiklan);
            AdView adView = new AdView(requireActivity());
            adView.setAdSize(AdSize.BANNER);
            adView.setAdUnitId(getResources().getString(R.string.bannerads));
            AdRequest adRequest = new AdRequest.Builder().build();
            adView.loadAd(adRequest);
            layoutad.addView(adView,p);

            final FrameLayout framenative = new FrameLayout(requireContext());
            layoutad.addView(framenative,p);

            final UnifiednativeAd[] nativeAd = new UnifiednativeAd[1];
            AdLoader.Builder builder = new AdLoader.Builder(requireContext(),getResources().getString(R.string.nativeads));
            builder.forUnifiednativeAd(new UnifiednativeAd.OnUnifiednativeAdLoadedListener() {
                @Override
                public void onUnifiednativeAdLoaded(UnifiednativeAd unifiednativeAd) {
                    if (nativeAd[0] != null) {
                        nativeAd[0].destroy();
                    }
                    nativeAd[0] = unifiednativeAd;
                    if (activity != null && isAdded()) {
                        UnifiednativeAdView adView = (UnifiednativeAdView) getLayoutInflater().inflate(R.layout.nativeads,null);
                        populateUnifiednativeAdView(unifiednativeAd,adView);
                        framenative.addView(adView);
                    }
                }
            });
            VideoOptions videoOptions = new VideoOptions.Builder()
                    .setStartMuted(true)
                    .build();
            NativeAdOptions adOptions = new NativeAdOptions.Builder()
                    .setVideoOptions(videoOptions)
                    .build();
            builder.withNativeAdOptions(adOptions);
            AdLoader adLoader = builder.withAdListener(new AdListener() {
                @Override
                public void onAdFailedToLoad(LoadAdError loadAdError) {
                    super.onAdFailedToLoad(loadAdError);
                }
            }).build();
            adLoader.loadAds(new AdRequest.Builder().build(),50);

我只是想问:

  1. 是否可以加载多个原生广告?因为我试过这行 adLoader.loadAds(new AdRequest.Builder().build(),50); 但它只加载了一个广告。
  2. 如果 #1 是可能的,我是否需要实施 for loops 来加载更多原生广告?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)