如何在Fragment ViewPager上实施Google DFP广告管理系统广告(NativeContentAdView)?

时间:2016-07-29 14:12:52

标签: android android-viewpager google-dfp double-click-advertising

我有包含ViewPager的DetailPage活动。 ViewPage上的每个页面都是一个片段(DetailPage Fragment)

我想在DetailPage片段上添加NativeContentAdView,但问题是有时广告尚未加载且ViewPager正在滑动(并被新片段替换),因此广告很少显示。

有关在Fragment ViewPager上使用DFP广告管理系统广告的任何提示吗? 或者也许链接解释这个?

由于

1 个答案:

答案 0 :(得分:0)

首先,加载广告并将其存储在不在UI片段中的某个位置。我推荐一个保留的片段。然后,从您希望展示要求广告显示的广告(即DetailPageFragment)的片段实施回调。

示例:(我不知道这是否编译;它是更多的伪代码)

public class DetailPageFragment extends Fragment {
    public interface AdRequestListener {
         void onAdRequestedForDisplay();
    }
    ...
    public void onAdLoaded(NativeAd ad) {
      // Display ad here
    }

    public void onAttach(Activity activity) {
       // Set listener
    }

    public void onCreateView(Bundle savedInstanceState) {
        listener.onAdRequestedForDisplay();
    }
 }

public class AdLoadingFragment extends Fragment {
    private NativeAd ad;

    public interface AdLoadListener {
        void onAdLoaded(NativeAd ad);
    }

    public void onAttach(Activity activity) {
        try {
           this.listener = (AdLoadListener) activity;
        } catch(ClassCastException cce) {
          throw new RuntimeException(activity.toString() + " must implement AdLoadListener");
        }
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRetainInstance(true);
        if(savedInstanceState != null) {
            requestAd();
         }
    }

    private void requestAd() {
        //Request ad

        //Notify listener when ad is loaded
    }

    public void onAdRequested() {
        if(ad != null && listener != null) {
            listener.onAdLoaded(ad);
        }
    }
    ...

}