2015-01-11 2 views
0

У меня есть простая игра, сделанная в android sdk. Когда у пользователя сбой уровня, я хочу, чтобы в это время появилось межстраничное представление, более или менее точно. Проблема в том, из кода у меня есть, это @ 5 секунд задержка с момента, интерстициальное начало функции до интерстициального не появляется (проверен LogCat Вот код:.Как сделать рекламное шоу Admob без промедления?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    if (getResources().getString(R.string.InterstitialAd_unit_id).length() > 0) { 
     // Create the interstitial 
     interstitial = new InterstitialAd(this); 
     interstitial.setAdUnitId(getResources().getString(R.string.InterstitialAd_unit_id)); 

     // Create ad request. 
     adRequest = new AdRequest.Builder() 
       .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
       .build(); 
    } 
    //initialise banner ad 
    this.BANNER_AD_UNIT_ID = getResources().getString(R.string.BannerAd_unit_id); 
    showBanner(); 

} 

public void openAd() { 
    if (getResources().getString(R.string.InterstitialAd_unit_id).length() > 0) { 
     runOnUiThread(new Runnable() { 
      public void run() { 
       if (!interstitial.isLoaded()) { 
        interstitial.loadAd(adRequest); 
       } 
       interstitial.setAdListener(new AdListener() { 
        public void onAdLoaded() { 
         interstitial.show(); 
        } 

       }); 

      } 
     }); 
    } 
} 

Есть ли способ, чтобы кэшировать интерстициальные прежде чем эта функция будет вызвана. Эта задержка очень плохая ....

+0

Я думаю, что это невозможно, поскольку рекламодатели просто подсчитывают виды и клики, поэтому вам нужно будет создать представление, которое невозможно никогда не показывать. Вот почему эти сценарии не поддерживаются. Кстати, у вас есть шляпа для подключения к Интернету? Такую огромную задержку я ожидал только при слабой мобильной связи. – rekire

+0

@rekire: мой Wi-Fi. то как это делают другие? – user2817239

+0

** OR ** начать загрузку вашего добавления, когда уровень сбоя будет выполнен. Хорошо. Определенно, вы запрограммировали, как сработал неудачный сценарий. и это не будет проблемой для быстрой сети. это просто зависит. – Elltz

ответ

3

Ваша проблема заключается в том, что вы пытаетесь загрузить объявление и показывать его одновременно. Загрузка требует медленного сетевого запроса. Это никогда не даст вам никакого опыта.

Рекомендуемая практика - позвонить interstitial.loadAd(adRequest) в начале вашей игры или уровня. А затем в конце вашего уровня звоните

if (interstitial.isAdLoaded() { 
    interstitial.show(); 
} 
+0

Это проблема для разработчиков? Я имею в виду, что если мы используем interstitial.loadAd (adRequest) в начале действия, для admob можно считать все показы всего 1? Я подозрюю об этом. –

+0

Я не понимаю ваш вопрос. interstitial.loadAd (req) делает запрос объявления. Вы не создаете впечатление, пока не назовете interstitial.show() – William

Смежные вопросы