无法使用 adMob 在 android 上显示广告
Posted
技术标签:
【中文标题】无法使用 adMob 在 android 上显示广告【英文标题】:Trouble getting ads to display on android with adMob 【发布时间】:2010-08-08 20:54:43 【问题描述】:我已将相关部分包含在我的清单中:
<meta-data android:value="123456789" android:name="ADMOB_PUBLISHER_ID" />
<!-- Track Market installs from AdMob ads -->
<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" />'
和
<uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>'
从示例中复制的属性:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="com.admob.android.ads.AdView">
<attr name="backgroundColor" format="color" />
<attr name="primaryTextColor" format="color" />
<attr name="secondaryTextColor" format="color" />
<attr name="keywords" format="string" />
<attr name="refreshInterval" format="integer" />
</declare-styleable>
</resources>
我的布局(顺便说一句,这是一个选项卡视图)是一个表格,它在自己的行中:
xmlns:app="http://schemas.android.com/apk/res/com.icukansas.lenscalculator"
和
<TableRow>
<!-- Place an AdMob ad at the bottom of the screen. -->
<!-- It has white text on a black background. -->
<com.admob.android.ads.AdView
android:layout_span="4"
android:id="@+id/ad"
app:backgroundColor="#000000"
app:primaryTextColor="#FFFFFF"
app:secondaryTextColor="#CCCCCC"
app:keywords="security"
/>
</TableRow>
然后我打电话:
public class myClass extends Activity implements AdListener
public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);
setContentView(R.layout.tab_thistab);
AdView ad = (AdView) findViewById(R.id.ad);
ad.setAdListener(this);
每次我在日志中收到 onFailedToReceiveAd 错误。
我确定它很容易我想念:)
【问题讨论】:
这个问题正在使用 attrs.xml,这可能意味着它正在使用 Admob 4.0.4 或更早版本。 4.1.0 在this google groups discussion 中描述了一些更改(查找 Tim 的帖子)。 【参考方案1】:我知道这已经过时了,但我认为这对尝试在表格布局中放置广告的人会有所帮助。我最终通过在我的 TableLayout 中包含 android:stretchColumns="0,1,2,3" 来实现这一点。如果您的跨度不是 4,您将在stretchColumns 中放置与您的跨度相同数量的列/数字。
<TableLayout android:id="@+id/TableLayout01" android:stretchColumns="0,1,2,3" android:layout_ android:layout_ xmlns:android="http://schemas.android.com/apk/res/android">
【讨论】:
【参考方案2】:是的,您缺少两件事:
1.最重要的:
<meta-data android:value="a14e20856e4ad8f" android:name="ADMOB_PUBLISHER_ID" />
2.刷新间隔:
<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_
android:layout_
myapp:backgroundColor="#000000"
myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"
myapp:refreshInterval="30"
/>
休息看起来不错。
【讨论】:
我在 AndroidManifest 中有第一个。我只是编造了数字,但我的应用程序中有我的真实 ID。我已经为我的 xml 文件添加了刷新间隔,但仍然没有运气:( 我最终将广告放在我的 main.xml 中,而不是标签的 xml 中,它现在可以工作了。永远无法弄清楚为什么它不会在我的子活动中请求。 嘿感谢发布者 ID 现在我可以使用您的发布!【参考方案3】:您忘记在清单中添加 netstate 权限。
【讨论】:
【参考方案4】:我也遇到了同样的问题 - 该死的 tabview。将它放在主要活动而不是选项卡中效果很好。
【讨论】:
【参考方案5】:嗨,杰森 我有解决方案,可能会有所帮助 在你的课堂上写这段代码
AdManager.setTestDevices(new String[] AdManager.TEST_EMULATOR, // Android emulator
"5669B77A6042345BC23219DCAC6C15CA",// device id
);
ad = (AdView) findViewById(R.id.ad);
ad.requestFreshAd();
ad.setAdListener(this);
在信息选项卡中运行应用程序后,您可以在logcat中获取设备ID,搜索文本。
要在模拟器上获取测试广告,请使用 AdManager.setTestDevices... 还设置监听器
你会得到你的设备ID,粘贴它,否则你之前的代码是完美的。
【讨论】:
【参考方案6】:我已经尝试了将近 3 个小时。我遵循所有谷歌示例。最后,我想通了。您可以自定义请求,然后它将起作用。在我的示例中,我在 Activity 类中执行此操作:
AdRequest re = new AdRequest();
//re.setTesting(true);
re.setGender(AdRequest.Gender.FEMALE);
adview.loadAd(re);
你可以在这里查看我的例子,我总是放我的 apk 和源代码。你可以下载试试:
Add Google Admob in Android Application
【讨论】:
以上是关于无法使用 adMob 在 android 上显示广告的主要内容,如果未能解决你的问题,请参考以下文章
(Unity) Admob 横幅未在 Android 7.0 上显示
admob 广告未在 flash 中使用 milkmangames 扩展显示