0

Ich habe DetailPage Aktivität, die ViewPager enthält. Jede Seite auf ViewPage ist ein Fragment (DetailPage Fragment)Wie implementiert man Google DFP-Anzeigen (NativeContentAdView) auf Fragment ViewPager?

Ich möchte NativeContentAdView auf DetailPage Fragment hinzufügen, aber das Problem ist irgendwann die Anzeige noch nicht geladen und ViewPager wischen (und durch neue Fragment ersetzt), so dass Anzeigen selten angezeigt werden .

Tipps zur Verwendung von DFP Ad auf Fragment ViewPager? Oder vielleicht Link, die das erklären?

Dank

Antwort

0

Erste, Ihre Anzeige laden und speichern Sie es in Ihrem UI-Fragmente irgendwo nicht. Ich empfehle ein beibehaltenes Fragment. Implementieren Sie dann einen Rückruf aus dem Fragment, in dem Sie eine Anzeige schalten möchten (d. H. DetailPageFragment), die zur Anzeige der Anzeigen auffordert.

Beispiel: (Ich weiß nicht, ob dies kompiliert, es ist mehr Pseudo-Code)

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); 
     } 
    } 
    ... 

}