2016-07-16 10 views
1

Ich habe eine App in Google Play veröffentlicht, in der die Anzeige enthalten ist. Vor einigen Tagen erhielt ich die folgende E-Mail von Google Admob.Platzierung der AdMob-Interstitial-Anzeige in ViewPager

Wir weisen darauf hin, dass Ihre App derzeit gegen die AdMob-Programmrichtlinien verstößt. Es ist wichtig, dass Sie von sich aus Maßnahmen ergreifen müssen, um sicherzustellen, dass die Anzeigenschaltung nicht unterbrochen wird. Bitte lesen Sie unten für weitere Informationen über die Aktionen, die Sie ergreifen müssen:

LAYOUT versehentliche Klicks RUFT - Interstitial-Anzeigen: Publishers ist es nicht gestattet, Nutzer aufzufordern, AdMob-Interstitial-Anzeigen in irgendeiner Weise zu klicken. Dies schließt alle Implementierungen ein, die versehentliche Klicks begünstigen, z. B. das Platzieren einer Interstitial-Anzeige so, dass der Haupt-Content der App nicht angezeigt wird, oder das Platzieren einer Interstitial-Anzeige, die die Navigation oder Interaktion mit dem Kerninhalt der App beeinträchtigt.

Bitte lesen Sie, wie Sie Interstitial-Anzeigen und darauf achten, die folgenden typische Beispiele für nicht-konforme Implementierungen implementiert haben:

Interstitial-Anzeigen, die angezeigt werden, bevor die App oder nachdem die App geschlossen geöffnet hat. Interstitial-Anzeigen, die ausgelöst werden, nachdem ein Nutzer eine andere Interstitial-Anzeige geschlossen hat. Interstitial-Anzeigen werden unerwartet geladen, während ein Nutzer den Inhalt der App anzeigt. Denken Sie daran, Interstitials nur zwischen Inhaltsseiten zu schalten. Interstitial-Anzeigen, die nach jedem Benutzerklick ausgelöst werden. Interstitial-Anzeigen, die während Spielzeiten oder intensiver Benutzerinteraktion geschaltet werden.

Jetzt unten ist meine MainActivity. Ich benötige Hilfe bei der Platzierung der Anzeige im entsprechenden Bereich.

public class MainActivity extends Activity { 
    private InterstitialAd interstitial;  
// static int p; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ExtendedViewPager mViewPager = (ExtendedViewPager) findViewById(R.id.view_pager); 
     mViewPager.setAdapter(new TouchImageAdapter()); 


     mViewPager.setCurrentItem(5); 
    // Prepare the Interstitial Ad 

     interstitial = new InterstitialAd(MainActivity.this); 
     // Insert the Ad Unit ID 
     interstitial.setAdUnitId("xxxxxxxxxxxxxxxxxxxxxxxx"); 

      //Locate the Banner Ad in activity_main.xml 
      AdView adView = (AdView) this.findViewById(R.id.adView); 

      // Request for Ads 
      AdRequest adRequest = new AdRequest.Builder() 

      // Add a test device to show Test Ads 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .addTestDevice("") 
        .build(); 

      // Load ads into Banner Ads 
      adView.loadAd(adRequest); 

      // Load ads into Interstitial Ads 
      interstitial.loadAd(adRequest); 

      // Prepare an Interstitial Ad Listener 
      interstitial.setAdListener(new AdListener() { 
       public void onAdLoaded() { 
        // Call displayInterstitial() function 
        displayInterstitial(); 
       } 
      }); 
     } 
     public void displayInterstitial() { 
      // If Ads are loaded, show Interstitial else show nothing. 
      if (interstitial.isLoaded()) { 
       interstitial.show(); 
      } 
     } 

    class TouchImageAdapter extends PagerAdapter { 

     private int[] images = { R.drawable.file_page05,R.drawable.file_page04,R.drawable.file_page03,R.drawable.file_page02,R.drawable.file_page01}; 

     @Override 
     public int getCount() { 
      return images.length; 
     } 

     @Override 
     public View instantiateItem(ViewGroup container, int position) { 
      TouchImageView img = new TouchImageView(container.getContext()); 
      img.setImageResource(images[position]); 

      container.addView(img, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); 
      return img; 
     } 

     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 
      container.removeView((View) object); 
     } 

     @Override 
     public boolean isViewFromObject(View view, Object object) { 
      return view == object; 
     } 



    } 


} 

Antwort

1

Das Erstellen der Anzeige dauert einige Zeit. Sie zeigen die Anzeige an, nachdem der Viewpager angezeigt wird. Dies führt dazu, dass der Benutzer durch viewpager navigiert und plötzlich die Anzeige geladen wird. Dies ist gegen die Anzeigenrichtlinie.

Bevor Sie den Viewpager laden, prüfen Sie, ob die Anzeige geladen ist. Wenn die Anzeige geladen ist, dann zeige die Anzeige und beim Schließen der Anzeige zeige viewpager an. Sonst Anzeigepager direkt anzeigen.

Ich werde normalerweise die Anzeige in der Launcher-Aktivität laden und bei Bedarf anzeigen.