怎么以编程方式为 AdMob 指定 adUnitId?

本教程将介绍如何以编程方式为 AdMob 指定 adUnitId?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

问题描述

我正在尝试以编程方式将 adUnitId 设置为来自新 Google Play 服务(旧 AdMob)的广告.

我在 XML 中有这个(在 <include> 中使用):

<com.google.android.gms.ads.AdView
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:ads="http://schemas.android.com/apk/res-auto"
 android:id="@+id/adView"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 ads:adSize="BANNER"/>

这在 onCreate():

AdView mAdview = (AdView)findViewById(R.id.adView);
 mAdview.setAdUnitId(((App)getApplication()).getAdmobKey());

 mAdview.setAdListener(new AdListener() {
  @Override
  public void onAdLoaded() {
super.onAdLoaded();
findViewById(R.id.adView).setVisibility(View.VISIBLE);
  }
 });

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

我得到:

必须在调用 loadAd 之前设置广告尺寸和广告单元 ID.

因此,第二种选择是以编程方式制作广告.

新的 XML:

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_height="wrap_content"
 android:layout_width="match_parent"
 android:id="@+id/adView"
 />

新代码:

AdView mAdview = new AdView(this);
...
((LinearLayout)findViewById(R.id.adView)).addView(mAdview);
mAdview.loadAd(adRequest);

但我得到了同样的错误.

我也尝试从 com.google.android.gms.ads.AdView 继承来制作自定义视图,但它是最终的.

有什么建议吗?

推荐答案

方法 loadAd() 检查是否 (mAdView.getAdSize() == null || mAdView.getAdUnitId()== null) 当 loadAd 发生时.

在调用 loadAd 以确定其状态之前,尝试记录 (mAdView.getAdSize() == null || mAdView.getAdUnitId() == null) 的布尔输出:

 mAdView = new AdView(this);
 mAdView.setAdSize(AdSize.BANNER);
 mAdView.setAdUnitId(AD_UNIT_ID);
 AdRequest adRequest = new AdRequest.Builder()
  .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
  .build();
 if(mAdView.getAdSize() != null || mAdView.getAdUnitId() != null)
 mAdView.loadAd(adRequest);
// else Log state of adsize/adunit
((LinearLayout)findViewById(R.id.adView)).addView(mAdview);

好了关于怎么以编程方式为 AdMob 指定 adUnitId?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。

0
没有账号?注册  忘记密码?