Admob интерстициальная реклама не кликабельна

#android #admob #interstitial

#Android #admob #интерстициальная

Вопрос:

Я создал игру для Android, и проблема, с которой я использую как баннерную рекламу, так и интерстициальную рекламу: 1) Баннерная реклама отображается во время игры и 2) Интерстициальная реклама отображается, когда игрок выигрывает уровень, но проблема, с которой я сталкиваюсь, заключается в том, что появляется интерстициальная реклама admob, но ее нельзя щелкнуть, онаотображается только в конце уровня, но пользователь не может щелкнуть по нему. я пытался поискать, но не смог найти решение для этого, пожалуйста, помогите с этим. Это исходное использование рекламного кода в игре

Файл активности :

 public class APP extends Activity
{
private InterstitialAd interstitial;
 }
public static void showInterAd(){
  ((APP)APP.ctx).showAd();
}
// BANNER AD
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
ctx = this;
setVolumeControlStream(AudioManager.STREAM_MUSIC);
requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.main);
// Create ad request.
AdRequest adRequest = new AdRequest.Builder().build();
 // Look up the AdView as a resource and load a request.
AdView adView = (AdView)this.findViewById(R.id.adView);
adView.loadAd(adRequest);
}// INTERSTITIAL AD
public void showAd(){
  ((Activity)ctx).runOnUiThread(new Runnable() {
        @Override
    public void run() {
            // Create the interstitial.
              interstitial = new InterstitialAd(APP.this);
                interstitial.setAdUnitId("ca-app-pub-ID");
        AdRequest adRequest = new AdRequest.Builder().build();
                interstitial.loadAd(adRequest);
            // Set the AdListener.
            interstitial.setAdListener(new AdListener() {
                  @Override
                  public void onAdLoaded() {
                      if (interstitial.isLoaded()) {
                            interstitial.show();
  

Я вызываю рекламный код в другом файле :

           levelCompleted = true;
      endOfGame = true;

      soundManager.playSound(APP.SOUND_WON);

      APP.showInterAd();
    }
  

Файл манифеста :

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.XYZ"
android:installLocation="preferExternal"
android:versionCode="1"
android:versionName="1.0" >

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission
    android:name="android.permission.ACCESS_COARSE_LOCATION"
    android:required="false" />
<uses-permission
    android:name="android.permission.ACCESS_FINE_LOCATION"
    android:required="false" />
<uses-permission
    android:name="android.permission.ACCESS_MOCK_LOCATION"
    android:required="false" />
<uses-permission
    android:name="android.permission.ACCESS_NETWORK_STATE"
    android:required="false" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">

    <activity
        android:name="com.xyz.APP"
        android:alwaysRetainTaskState="true"
        android:configChanges="orientation|keyboard"

        android:label="@string/app_name"
        android:launchMode="singleInstance"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.XYZ.GAME" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

        </activity>

  <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
  <activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

</application>
</manifest>
  

Ответ №1:

Удалить :

android:launchMode="singleInstance" из файла манифеста.

Ответ №2:

Хорошо, у вас много проблем с вашим кодом. Я предлагаю вам начать с приведения примеров на https://developers.google.com/mobile-ads-sdk/docs/admob/advanced .

Несколько вещей, которые вам действительно нужно исправить:

  1. Избавьтесь от статических атрибутов и методов в своей деятельности. Например, showInterAd()
  2. Создайте свой интерстициал в Activity.onCreate(), загрузите его перед игрой, покажите после игры.