我试过的东西从许多博客,但没有给出一个一步一步的解决方案。 我应该编辑在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);
Answer 1:
使用最后的Android框架,我想通了,我需要每一个广告被关闭时调用load()函数。
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);
}
}
Answer 2:
不像横幅,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();
}
}
}
检查出的代码示例在这里 。 这个例子将尽快在接收显示插页。 或者,您可能要等到适当的时候显示插页,例如在游戏关卡结束后,你可以检查interstitial.isReady()
看看是否能显示插页。
Answer 3:
你不能再实现AdListener的,我用这种方式:
final InterstitialAd 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。
Answer 4:
我觉得这个例子的代码将帮助你。
如何添加AdMob插页式广告在你的Android应用
在这个例子中,它显示了你的整个源代码。 而且还提供了常见错误一些解决方案。 例如,onFailedToReceiveAd错误的解决方案,并没有广告返回的解决方案。 您也可以从这里下载源代码。
Answer 5:
仅供参考,在interstitial.isReady()
不再支持方法。 这是正确的方法:
if (interstitial.isLoaded()) {
interstitial.show();
}
Answer 6:
呼吁应用程序的开放此功能:
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秒,这取决于设备的网络连接速度。
Answer 7:
将横幅广告和插页广告:
AdView mAdView;
InterstitialAd interstitialAd;
ProgressDialog pd;
void showAds(){
if(interstitialAd.isLoaded()){
interstitialAd.show();
}
}
public void initAds(){
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
interstitialAd=new InterstitialAd(this);
interstitialAd.setAdUnitId(getResources().getString(R.string.inetial3));
AdRequest adRequest1=new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest1);
}
和XML:
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id2"
android:layout_gravity="bottom|center">
</com.google.android.gms.ads.AdView>
文章来源: How to create Android interstitial ads?