2015-01-08 70 views
0

我都試圖表明使用下面的代碼在我的應用程序的全屏廣告:AdRequest.DEVICE_ID_EMULATOR實況轉播廣告,而不是測試廣告

AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); 
AdRequest adRequest = adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build(); 

interstitial = new InterstitialAd(this); 
interstitial.setAdUnitId(this.getText(R.string.full_screen_ad_unit_id).toString()); 
interstitial.loadAd(adRequest); 


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

但在模擬器和真實設備的AdMob展示活廣告,而不是測試廣告。

這將爲我即它可以阻止由於無效曝光或無效點擊我的AdMob帳戶主要問題。

我有以下this教程。

那麼請幫我解決這個問題?

+0

試試看>> - AdRequest adRequest = adRequestBuilder.addTestDevice(「CD0005AF3FFA73AC718D23D8CC419110」)。build(); –

+0

聯繫google .. – Elltz

+0

@MdAbdulGafur這些類型的ID是特定於設備的。這不適用於不同的設備。而我已經在eclipse logcat中試了一下admob推薦的「3B361E14CEFB340462CDE8F77C97EC87」id。但是,這個ID只適用於該設備而不是另一個。當我更換設備時,我不希望自己改變這個ID。 – DevK

回答

0

我有另一種方法來解決這個問題。工作代碼爲:

AdRequest.Builder adRequestBuilder = new AdRequest.Builder(); 
AdRequest adRequest; 
String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); 
String deviceId = Utilities.getMD5(android_id).toUpperCase(Locale.ENGLISH); 

adRequest = adRequestBuilder.addTestDevice(deviceId).build(); 
boolean isTestDevice = adRequest.isTestDevice(this); 

SetLogInfo.writeLog1("is Admob Test Device ? "+deviceId+" "+isTestDevice); 

interstitial = new InterstitialAd(this); 
interstitial.setAdUnitId(this.getText(R.string.full_screen_ad_unit_id).toString()); 
interstitial.loadAd(adRequest); 


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

而且getMD5():

protected static String getMD5(String inputText) 
{ 
    String md5 = ""; 
    try 
    { 
     MessageDigest digester = MessageDigest.getInstance("MD5"); 
     digester.update(inputText.getBytes()); 
     md5 = new BigInteger(1, digester.digest()).toString(16); 
    } 
    catch(Exception e) 
    { 
     SetLogInfo.writeLog("Exception: "+e); 
    } 
    return md5; 
} 

至少這個解決方案是最好的,而不是使用 「AdRequest.DEVICE_ID_EMULATOR」。想法來自here