2012-06-19 2 views
10

Я пробовал много блогов, но никто не дает поэтапного решения. Должен ли я что-то редактировать на сайте adMob? Я создал сайт из параметра ad sit/app в разделе «Сайты» & вкладка «Приложения».Как создать андроид для Android?

Я использовал этот код:

interstitial = new InterstitialAd(this, "MyAdMobID"); 
// Set Ad Listener to use the callbacks below 
interstitial.setAdListener(this); 
// Create ad request 
AdRequest adRequest = new AdRequest(); 
adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
// Begin loading your interstitial  
interstitial.loadAd(adRequest); 
adRequest.setTesting(true); 
+0

Предполагая, что «MyAdMobId» заменен вашим фактическим идентификатором, и вы тестируете в эмуляторе, это должно работать. Что вы видите в журналах? (Обратите внимание, что AdMob требует, чтобы вы были включены в белый список, чтобы обслуживать сетевые межстраничные объявления) –

+0

Ничего в журнале, но как я могу узнать, включен ли я для поддержки сетевых межстраничных объявлений? –

+0

Скорее всего, вы не в белом списке. AdMob предлагает только сетевые интерститалы для избранных (см. [Здесь] (https://developers.google.com/mobile-ads-sdk/docs/android/advanced#overview)). Если вы не находитесь в белом списке, вы можете получить тестовый интерстициальный или интерстициальный дом, если вы создадите рекламную кампанию межстраничного дома. –

ответ

7

Использование последнего Android рамки, я понял, что мне нужно вызвать функцию загрузки() каждый раз, когда объявление закрыто.

import com.google.android.gms.ads.*; 
import android.os.Handler; 
import android.os.Looper; 
import android.app.Activity; 

class MyActivity extends Activity implements AdListener { 
    private InterstitialAd adView; // The ad 
    private Handler mHandler;  // Handler to display the ad on the UI thread 
    private Runnable displayAd;  // Code to execute to perform this operation 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    adView = new InterstitialAd(mContext); 
    adView.setAdUnitId("ca-app-pub-XXXXXXXXXX"); 
    adView.setAdListener(this); 
    mHandler = new Handler(Looper.getMainLooper()); 
    displayAd = new Runnable() { 
     public void run() { 
     runOnUiThread(new Runnable() { 
      public void run() { 
      if (adView.isLoaded()) { 
       adView.show(); 
      } 
      } 
     }); 
     } 
    }; 
    loadAd(); 
    } 

    @Override 
    public void onAdClosed() { 
    loadAd(); // Need to reload the Ad when it is closed. 
    } 

    void loadAd() { 
    AdRequest adRequest = new AdRequest.Builder() 
    //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
    .build(); 

    // Load the adView object witht he request 
    adView.loadAd(adRequest); 
    } 

    //Call displayInterstitial() once you are ready to display the ad. 
    public void displayInterstitial() { 
    mHandler.postDelayed(displayAd, 1); 
    } 
} 
+0

Спасибо за 'loadAd' в' onAdClosed'. Это то, что вы можете быть готовы отобразить другое объявление. –

11

В отличие от баннеров, insterstitial объявления автоматически не показывать, как только их загрузке. Вам нужно будет прослушать обратный вызов onReceiveAd() AdMob, и внутри этого обратного вызова вызовите interstital.show(), чтобы показать ваш интерстициальный.

public YourActivity extends Activity implements AdListener { 
    ... 

    @Override 
    public void onReceiveAd(Ad ad) { 
    Log.d("OK", "Received ad"); 
    if (ad == interstitial) { 
     interstitial.show(); 
    } 
    } 
} 

Заканчивать пример кода here. Этот пример покажет интерстициальный текст, как только он будет получен. Кроме того, вы можете подождать до тех пор, пока не покажет интерстициальный контент, например, в конце игрового уровня, и вы можете проверить interstitial.isReady(), чтобы узнать, можете ли вы показывать интерстициальный.

3

Я думаю, что этот пример кода поможет вам.

How to Add AdMob Interstitial Ads in Your Android Apps

В этом примере он показывает исходный код целого. И он также предоставляет некоторые решения для распространенных ошибок. Например, решение ошибки onFailedToReceiveAd и никакое объявление не вернули решение. Вы также можете загрузить исходный код.

1

FYI, interstitial.isReady() метод больше не поддерживается. Это правильный метод:

if (interstitial.isLoaded()) { 
    interstitial.show(); 
} 
6

Вы не можете больше реализовать AdListener, я использовал это следующим образом:

final mInterstitialAd = new InterstitialAd(this); 
mInterstitialAd.setAdUnitId(getResources().getString(R.string.interstitial_ad_unit_id)); 
AdRequest adRequestInter = new AdRequest.Builder().build(); 
mInterstitialAd.setAdListener(new AdListener() { 
    @Override 
    public void onAdLoaded() { 
     mInterstitialAd.show(); 
    } 
}); 
mInterstitialAd.loadAd(adRequestInter); 

Поместите свой собственный ID в strings.xml имени interstitial_ad_unit_id или заменить

getResources().getString(R.string.interstitial_ad_unit_id) 

с ID.

-1

Вызов этой функции на открытии приложения:

InterstitialAd interstitial; 

public void AdMob() { 
    AdRequest adRequest = new AdRequest.Builder().addTestDevice("YOUR_TEST_DEVICE_ID").build(); 
    interstitial = new InterstitialAd(this); 
    interstitial.setAdUnitId("YOUR_AD_ID"); 
    interstitial.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      super.onAdLoaded(); 
      //Ads loaded 
     } 

     @Override 
     public void onAdClosed() { 
      super.onAdClosed(); 
      //Ads closed 
     } 

     @Override 
     public void onAdFailedToLoad(int errorCode) { 
      super.onAdFailedToLoad(errorCode); 
      //Ads couldn't loaded 
     } 
    }); 
    interstitial.loadAd(adRequest); 
} 

Тогда вы можете показать объявления:

if (interstitial.isLoaded()){ 
interstitial.show(); 
} 

Вы должны подготовить рекламу, прежде чем показывать его. Это потребовало 3-5 секунд зависимости интернет-скорости устройства.

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