这里有一个奇怪的问题:每当我通过xml设置测试模式时,我都会在模拟器中收到预期的测试广告。但是,当我尝试以编程方式执行相同操作时,我似乎得到了真正的广告。根据Admob文档,这两种方法应该是等价的,不是吗?这是我的xml代码:
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
ads:adSize="BANNER"
ads:adUnitId="xxxxxxxxxxx"
ads:loadAdOnCreate="true">
</com.google.ads.AdView>
这是相关的Java代码:
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
}
如前所述,如果我在上面的xml代码中插入行广告:testDevices =“TEST_EMULATOR,TEST_DEVICE_ID”,我就可以获得测试广告了。有什么想法吗?
答案 0 :(得分:1)
我相信您必须在AdView对象上调用.loadAd(adRequest)。
See Google's AdMob documentation here
在添加com.google.ads.AdView 部分。
答案 1 :(得分:1)
您无需以编程方式调用它。
我花了一段时间,直到我得到AdMob sdk的设备是什么期待cuz'我认为这是与真实设备相关的东西,如(adb设备)
但这是官方文件中的评论,清除了它。
“将会有一条日志消息,其中包含将当前设备添加到测试设备列表所需的代码”
您可能会收到类似的消息
I/Ads(26674): To get test ads on this device, call adRequest.addTestDevice("F1254CDFBA84BDC27F5C7C6E12445D06");
之后您需要做的就是将此ID放入布局xml中,如下所示
<com.google.ads.AdView
android:layout_alignParentBottom="true"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="@string/publisherId"
ads:loadAdOnCreate="true"
ads:testDevices="TEST_EMULATOR, F1254CDFBA84BDC27F5C7C6E12445D06" />
希望它可以帮助你们
Paulo Miguel Almeida