我按照该教程在应用中创建广告横幅。到目前为止,此方法有效,我可以看到测试广告。但是,本教程指示我在两个不同的位置使用两个不同的广告ID:
在活动中:
MobileAds.initialize(this,“ ca-app-pub-3940256099942544〜3347511713”);
在布局中:
ads:adUnitId =“ ca-app-pub-3940256099942544 / 6300978111”
问题1:两个ID有什么区别?他们为什么不同?目的是什么?
我已经在admob和一个广告单元中创建了一个帐户。广告单元ID类似于上述两个广告单元中的第二个(包含斜杠)。但是,我无法在任何地方找到带有代字号的其他ID,例如上述两个中的第一个。
问题2:我是否应该只使用代码中两个位置都有的一个实际广告单元ID?如果是,为什么这么多余?
问题3:我的应用程序实际上包含两个活动。我可以在两个活动中使用相同的广告单元ID吗?
问题4:我必须在所有活动中进行MobileAds初始化吗?
首先,我知道关于这个话题有很多问题。我在互联网上进行了搜索,但大多数教程都是关于旧版本的 AdMob。此外,所有人对问题都有某种不同的解决方案。它们都不适合我。我非常非常接近将这些测试添加到我的应用程序中。他们只是不出现。我收到以下错误:
02-21 21:05:46.457:W/webcore(14924):第一次布局后无法获取viewWidth
02-21 21:05:46.586:W/Ads(14924):无效的未知请求错误:无法确定请求类型。您的广告单元 ID 正确吗?
02-21 21:05:46.586:D / webviewglue(14924):nativeDestroy视图:0x685300
02-21 21:05:46.586:I/Ads(14924):onFailedToReceiveAd(Google 广告请求无效。)
我还没有 AdMob 发布商 ID,因为这将是我投放市场的第一个 APP(并且我首先必须在市场上有一个 APP,然后才能获得该 APP 的 ID)。我应该使用什么ID?目前我有(在我的 Android 手机上测试):
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice("9B08CXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
//adRequest.addTestDevice("037c7xxxxxxxxxxx"); (Not right, is from console)
AdView adView = (AdView) this.findViewById(R.id.adView);
adView.loadAd(adRequest);
Run Code Online (Sandbox Code Playgroud)
在我的 XML 中,我有(因为它还警告 viewWidth?)。它被封装在一个更大的 LinearLayout 中:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="50dip">
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="@string/admob_pub_id"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我希望问题足够小,但仍然包含足够的信息。
提前致谢!亲切的问候,乔斯。
编辑:我确实更改了清单文件(添加权限、活动 android:name=...、android:configChanges=...)。我将 jar 添加到 lib 文件夹并将其添加到库中。