2012-06-19 15 views
10

मैंने कई ब्लॉगों की कोशिश की लेकिन कोई भी चरण-दर-चरण समाधान नहीं देता है। क्या मुझे adMob साइट पर कुछ संपादित करना चाहिए? मैंने साइट्स & ऐप्स टैब के अंतर्गत विज्ञापन साइट/ऐप विकल्प से साइट बनाई है।एंड्रॉइड विज्ञापन इंटरस्टिशियल कैसे बनाएं?

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

पिछले एंड्रॉयड ढांचे का उपयोग करना, मैं पता लगा है कि मैं लोड() फ़ंक्शन हर बार विज्ञापन बंद कर दिया है कॉल करने के लिए की जरूरत है।

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); 

प्लेस strings.xml में अपने स्वयं के आईडी interstitial_ad_unit_id नाम है, या अपने आईडी के साथ

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

बदल देते हैं:

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

'onAdClosed' में' loadAd' के लिए धन्यवाद दिया है। यह एक और विज्ञापन प्रदर्शित करने के लिए आप क्या तैयार हो सकते हैं। –

11

बैनर के विपरीत, insterstitial विज्ञापनों को स्वतः ही एक बार अपने लोड नहीं दिखाते:

मैं इस कोड का इस्तेमाल किया। आपको AdMob के onReceiveAd() कॉलबैक के लिए सुनना होगा, और उस कॉलबैक के अंदर, अपनी इंटरस्टिशियल दिखाने के लिए 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

एफवाईआई, interstitial.isReady() विधि अब समर्थित नहीं है। यह सही तरीका है:

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

आप नहीं कर सकते AdListener अब और लागू, मैं इसे इस तरह से इस्तेमाल किया।

-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 सेकंड लगे।

संबंधित मुद्दे