2017-09-19 4 views
0

J'ai un problème:Pourquoi une bannière Admob ne s'affiche pas? [Android, libGDX]

J'ai installé une bannière publicitaire AdMob dans mon application et lorsque j'utilise cette commande pour le constructeur:

builder.addTestDevice(
      "0277F42DBB49E3FD56F9EFFE3C4380B4" 
) 

Tout fonctionne (je veux dire , je vois bannière avec un texte similaire "congrats, bla-bla-bla, etc".

Mais.

Dans le jeu publié, ce qui bien sûr a désactivé cette ligne (addTestDevice) il ne montre pas.

Manifest

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.hypeofpipe.westernshooter" 
    android:versionCode="12" 
    android:versionName="1.02"> 
    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="25" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/GdxTheme" > 
     <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id"/> 
     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 
     <activity 
      android:name="com.hypeofpipe.westernshooter.AndroidLauncher" 
      android:label="@string/app_name" 
      android:screenOrientation="portrait" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="com.google.android.gms.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
      android:theme="@android:style/Theme.Translucent" /> 
    </application> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 

</manifest> 

AndroidLauncher.java

public class AndroidLauncher extends AndroidApplication 
      implements UrlOpener, AdHandler { 

    protected AdView adView; 
    private final int SHOW_ADS = 1; 
    private final int HIDE_ADS = 0; 

    Handler handler = new Handler(){ 
     @Override 
     public void handleMessage(Message msg) { 
      switch (msg.what){ 
       case SHOW_ADS: 
        adView.setVisibility(View.VISIBLE); 
        break; 
       case HIDE_ADS: 
        adView.setVisibility(View.GONE); 
        break; 
      } 
     } 
    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); 

     adView = new AdView(this); 
     RelativeLayout layout = new RelativeLayout(this); 

     View gameView = initializeForView(new MainClass(this, this), config); 

     adView.setAdListener(new AdListener(){ 
      @Override 
      public void onAdLoaded() { 
       int visibility = adView.getVisibility(); 
       adView.setVisibility(AdView.GONE); 
       adView.setVisibility(visibility); 
       AudioManager.getInstance().playSound(
         AudioManager.getInstance().shot_missed 
       ); 
      } 
     }); 
     adView.setAdSize(AdSize.SMART_BANNER); 
     adView.setAdUnitId(*here goes my unitid from admob*); 

     AdRequest.Builder builder = new AdRequest.Builder(); 
     RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.WRAP_CONTENT, 
       RelativeLayout.LayoutParams.WRAP_CONTENT 
     ); 
     layout.addView(gameView); 
     layout.addView(adView, adParams); 
     adView.loadAd(builder.build()); 

     setContentView(layout); 
    } 

    public void openURL(String url) { 
     Uri uri = Uri.parse(url); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     this.startActivity(intent); 
    } 

    @Override 
    public void showAds(boolean show) { 
     handler.sendEmptyMessage(show ? SHOW_ADS : HIDE_ADS); 
    } 
    } 

MainClass.java

public class MainClass extends Game { 

    public static UrlOpener urlOpener; 
    public static AdHandler adHandler; 

    public MainClass(UrlOpener urlOpener, 
        AdHandler adHandler) 
    { 
     this.urlOpener = urlOpener; 
     this.adHandler = adHandler; 
     adHandler.showAds(false); 
    } 

    @Override 
    public void create() { 
     Assets.getInstance().load(); 
     Assets.getInstance().assetManager.finishLoading(); 
     setScreen(new ScreenModified(this)); 
    } 

} 

Certains fragment de code, où les annonces sont appelés à montrer.

MainClass.adHandler.showAds(true); 

En outre, j'ai 0 demandes de mine app.

Admob

Répondre

1

annonces fonctionne bien avec addTestDevice(XXX) mais pas obtenir les annonces en direct.

Procédez comme suit:

  1. Attendez quelques fois/heure ou par jour.
  2. Si vous êtes en mesure de charger/recevoir des annonces de test, mais pas de diffuser des annonces, cela semble être un problème avec votre compte AdMob.
  3. Après avoir attendu que le problème persiste, vous devez vérifier l'ID de l'unité d'annonce et l'ID d'application du compte AdMob.
  4. Assurez-vous que vous avez correctement configuré un système de paiement et/ou vérifié votre code PIN? Si ce n'est pas fait, les annonces en direct ne seront pas diffusées depuis votre compte.
  5. Encore un problème maintenant vous devez poster votre problème dans ce group pour assistance.
+0

Oui, l'onglet "Paiements" n'a pas été configuré du tout. Mais, je l'ai configuré et je ne peux pas ajouter de méthode de paiement, car: "Vous n'avez pas besoin d'un mode de paiement avant que votre seuil de bénéfice n'ait été atteint". Je vais attendre pour demain et donner un retour, si le problème sera résolu. –

+1

Yeap, j'ai fait une étape 4, parce que je n'ai pas de méthodes de paiement et l'étape 1 est bonne aussi. Je vous remercie! –