2017-06-12 2 views
0

J'ai ajouté une fonction interstitielle sur mon application, cela fonctionne très bien mais le problème est que si l'utilisateur swype de portrait en paysage, l'annonce s'affiche à nouveau. L'annonce montrant causalement et cela brise les règles de google.Afficher Admob Interstital uniquement à l'application ouverte

Comment puis-je définir l'annonce interstitielle uniquement à l'ouverture de l'application? Ceci est mon code simple mob ad code

Admob code image

+0

Une telle situation de changement d'orientation, recrée votre activité. Vous devez gérer ce changement d'orientation –

+1

votre activité doit gérer le changement d'orientation, pas admob. La diffusion d'une annonce interstitielle au démarrage de l'application est également interdite. Reportez-vous à ce lien https://support.google.com/admob/answer/6201362?hl=fr –

Répondre

0

Vous pouvez créer une variable qui compte combien de fois l'annonce a été affichée. Il ressemblera à quelque chose comme ceci:

Déclaration de la variable:

int counter = 0;

Voir l'annonce interstitielle:

if (counter == 0 && intersitial.isLoaded()) { 
    interstitial.show(); 
    counter++; 
} else { 
    AdRequest interstitialRequest = new AdRequest.Builder().build(); 
    interstitial.loadAd(interstitialRequest); 
} 

A côté de cela, vous pouvez essayer d'ajouter android:configChanges="orientation|screenSize" à votre AndroidManifest.xml. Cela empêchera votre application de redémarrer lors du changement d'orientation.

0

Essayez ceci -

fichier Manifest -

(tous les 3 paramètres sont nécessaires pour gérer le changement d'orientation)

android:configChanges="keyboardHidden|orientation|screenSize"> 

fichier d'activité -

boolean isFirstTimeAdLoading = true; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_rotate); 
     Log.e(TAG, "onCreate()"); 
     if(isFirstTimeAdLoading) 
     { 
      // load ad 
      Log.e(TAG, "Ad Loaded for First Time"); 
      // TODO : Call your Ad Loading Method here 


      // mark ad as 'already loaded once' 
      isFirstTimeAdLoading = false; 
     } 

    } 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     Log.e(TAG, "onStart()"); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     Log.e(TAG, "onConfigurationChanged()"); 
     Log.e(TAG, "isFirstTimeAdLoading = " + isFirstTimeAdLoading); 
    } 

Journaux -

06-12 14:44:15.900 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: onCreate() 
06-12 14:44:15.900 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: Ad Loaded for First Time 
06-12 14:44:15.900 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: onStart() 
06-12 14:44:24.320 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: onConfigurationChanged() 
06-12 14:44:24.320 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: isFirstTimeAdLoading = false 
06-12 14:44:26.070 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: onConfigurationChanged() 
06-12 14:44:26.070 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: isFirstTimeAdLoading = false 
06-12 14:44:27.880 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: onConfigurationChanged() 
06-12 14:44:27.880 11541-11541/com.example.futech.stackoverflowsamples E/RotateActivity: isFirstTimeAdLoading = false 

Si vous voyez les journaux, vous saurez que onCreate est appelé une seule fois, et chaque fois que les changements d'orientation après que est appelé, et donc, l'activité ne sont pas recréées chaque fois que vous faire pivoter l'écran (j'ai fait trois fois tourner mon appareil après le chargement initial).

0

Très simplement, vous devriez PAS afficher l'ajouter dans onAdLoaded. C'est ce qui vous cause de la douleur. Et cela viole déjà la politique Admob, que vous utilisiez ou non le paysage.

Vous devriez montrer l'annonce dans un point de rupture naturel dans votre application.

+0

Bonjour, merci, quel serait le code? – user3057363