我正在尝试在Android中实施Admob,我看到请求进入AdMob . 但是,我没有看到Admob广告在模拟器和Android测试手机的Android屏幕上显示 .
如前所述,我可以看到请求进入我的AdMob帐户 . 但是,内容未显示 . 是否需要在我的帐户,main.xml,AndroidManifest.xml或应用程序的加载中启用某些功能?
我的应用程序配置和代码如下 . 请告知我们需要什么 . 谢谢!
AndroidManifest:
<meta-data
android:value="My Publisher ID"
android:name="ADMOB_PUBLISHER_ID" />
<activity android:name="com.admob.android.ads.AdMobActivity"/>
<receiver
android:name="com.admob.android.ads.analytics.InstallReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
<meta-data
android:value="true"
android:name="ADMOB_ALLOW_LOCATION_FOR_ADS"/>
主要:
<com.google.ads.AdView
android:id="@+id/adView"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="My Publisher ID"
ads:loadAdOnCreate="true"/>
在创建代码:
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest re = new AdRequest();
re.setTesting(true);
adView.loadAd(re);
任何帮助表示赞赏!!
12 回答
确保嵌入AdView的布局不会在AdView上施加任何填充 . AdView的尺寸必须精确到320x50 . 如果它没有足够的空间,它不会出现 .
还要检查设备的日志输出 . 在Eclipse中切换到DDMS透视图,选择您的设备并观察LogCat输出 .
我有类似的问题 . 如果您的父布局上有任何填充,那么您可能没有足够的广告宽度 . 如果您在纵向视图中使用它,请尝试切换到横向视图以查看它是否显示 . 如果确实如此,那么您的布局中某处可能会出现宽度问题 .
广告通常需要一段时间才能通过admob展示 . 如果您刚刚在admob上注册并启动了第一个应用程序,就会发生这种情况 . 如果上面给出的建议得到了解,如果您的浏览页面显示“绿色”状态,我不会太担心它 . 一旦填充率提高,您就会开始看到越来越多的广告 .
确保您的Admob布局显示在xml视图中 . 将您的admob视图放在RelativeLayout中并尝试使用
android:alignparentBottom:true
在你的java代码中将这些行放在
onCreate
方法中这在我的代码中有用,希望它也能帮到你 .
小心id,有2个代码:编辑器编号(如:pub-xxxxxxxxxxxxxxxx),另一个是 Banner ID(如下所示:ca-app-pub-xxxxxxxxxxxxxxxx / xxxxxxxxxx)
你需要使用最后一个,如果你使用第一个不工作:)
您正在使用广告:adUnitId =“我的发布商ID”将其替换为广告:adUnitId =“此处此应用的AdUnitId”注意:您必须在Admob上创建应用,您将获得该创建应用的AdUnitId . 您不必使用Publisher ID .
根据您发布的内容,我看到您的代码中存在两个问题: -
<metadata>
部分应包含ADMOB_APP_ID而不是您的发布商ID . 这应该在ApplicationManifest.xml中的<application>
标记下声明 .您可以在ADMOB仪表板上找到ADMOB_APP_ID,单击该应用程序
并检查"App Settings" . 你可以看到开始的APP_ID
通常使用ca-app-pub-0123456789012345 .
根据你的申请 . 将正确的"ad unit"放在您的AdView上,如下所示 .
解决上述问题后,请执行以下操作: -
MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
在你的第一个活动的onCreate中 . 这只需要进行一次,因此正确的位置是您的第一个活动或应用程序的onCreate回调 .在活动onCreate中找到您在布局中包含AdView的AdView .
测试广告通过提供由谷歌发布的测试广告来工作 .
此外,如果您要处理广告事件,请执行以下操作: -
其中一些可能的解决方案可能听起来很明显,但请确保完成以下操作:
使用您的实际发布商ID替换android:value =“我的发布商ID”中的“我的发布商ID” .
确保在清单文件中包含互联网权限:
如果您已完成这些操作,还可以尝试将以下代码放在“On create”部分而不是当前代码中:
要么
在发布之前,不要忘记一定要摆脱setTestDevice!
确保您的admob发布商ID正确无误 . 它发生在我身上一次,我无法弄清楚错误大约15天 .
在Admob中,您提交的每个应用都会获得不同的发布商ID . 每个应用程序都是唯一的,而不是每个用户 .
这可能是一个问题空间,您需要确保空间可用于显示广告 . 如果在父布局上有填充,则可能会减少可用空间 . 根据google Admob docs,如果没有空格可以显示,则不会显示任何广告 .
“SDK将请求请求AdView实例化的任何大小 . 如果设备屏幕上没有足够的空间来显示广告,则不会显示任何内容 . ”
所以我的建议是确保父布局上没有填充,并实际为这样的 Banner 广告指定高度和宽度
并将您的dimens.xml中的相应维度存储在values文件夹中 .
这是因为管理员库存需要生成一些请求以检查应用程序是否可以获得一些利润!
请妥善设置广告并发布应用,在提出约1k请求后,广告会自动显示!
当我发布自己的应用程序时,我也遇到了这个问题并得到了答案!
如果您的应用不是基于位置的应用,请转到 admob.com 上的 app settings 并确保关闭 use location data for ads .
Use location data for ads 用于根据位置过滤广告,仅适用于已授予位置权限的应用 . 如果应用不使用位置权限,则不会显示广告 .