我不知道这是怎么回事,但是我试图通过下面的代码动态设置广告单元ID,并将其从XML中删除,但仍然出现错误:
必须在调用loadAd之前设置广告尺寸和广告单元ID。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER">
</com.google.android.gms.ads.AdView>
和
AdView mAdView = (AdView) rootView.findViewById(R.id.adView);
mAdView.setAdUnitId(getEvent().getAdMobUnitId());
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
以编程方式创建
View adContainer = findViewById(R.id.adMobView);
AdView mAdView = new AdView(context);
mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId(YOUR_BANNER_ID);
((RelativeLayout)adContainer).addView(mAdView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
并在您的xml文件中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/adMobView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
编辑
横幅广告的最佳做法是两次在每个视图中显示一个横幅广告(一个unitId
),如果要在同一屏幕中显示更多横幅广告(不推荐),则必须unitId
从控制台创建另一个横幅广告,并为每个视图创建一个adView
unitId
。
我的答案是:
不知道它是否是一个错误,或者unitId
每个adView只能有一个错误unitId
,并且更有意义,因为每个adView
只能有一个错误,并且从文档中读取
它们显示了两种方法来实现此目的,方法是实例化一个新的程序化AdView()
对象设置“ unitIds
和” sizes
或“仅”从XML执行。
我做了一些测试以得出这个结论。
通过使用您的中的findViewById com.google.android.gms.ads.AdView
1- setAdUnitId
如果adSize
先设置,则可以编程。
2- setAdUnitId
如果它已经存在于xml中,则无法以编程方式进行。
3 -如果你没有在你的XML使用“setAdUnitId”,它会提醒Required xml attribute adUnitId was missing
,与同为adSize
,即使你设定编程两个属性。
4 -如果不把setAdUnitId
和setSize
,并把它程式设计,AdView中会提醒你 Required xml attribute adUnitId was missing
,如果你不设置相同的adSize
XML格式。
5-以编程方式唯一可以做的就是调用mAdView.loadAd(adRequest)
加载广告
通过使用 new AdView()
1-如果您创建一个空的布局,然后将adView引用添加到此视图,则它将起作用。
2-您可以设置adSize
和以adUnitId
编程方式运行。
3-如果您尝试使用setAdUnitAd
两次The ad unit ID can only be set once on AdView.
,则使用findViewById
我的结论是:
您只能从XML使用”
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-my_id_number_was_ommited_by_security" />
并在onCreate上加载视图
AdView mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
或完全以编程方式
View adContainer = findViewById(R.id.adMobView);
AdView mAdView = new AdView(context);
mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId(YOUR_BANNER_ID);
adContainer.addView(mAdView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
我使用横幅很长时间了,这个答案对我很有帮助。
问题内容: 我的主要xml文件中有这个: 我已经设置了广告尺寸和单位ID,但是在运行时(来自MainActivity.java), 标题中有一个例外。 问题答案: 我在github示例中找到了解决方案,即: 代替 删除xmlns:ads ***标记并添加 标记为LinearLayout标记,如下所示: 而已 :) 这个xml的github链接
我想在Google Play的“专为家庭设计”类别中为儿童制作应用程序。据此:https://support.google.com/googleplay/android-developer/answer/6184502有两条规则: 不得使用广告墙 插播广告不得在应用程序启动后立即显示 请您解释一下如何使间质广告不全屏(不是广告墙)? 广告墙和插页广告有什么区别? 我曾经用过这个填隙词:https:
在我的android项目中实现谷歌广告后,我面临着应用程序大小的大幅增加,对我来说,这是由com.google.android.gms.internal.ads.中的许多类引起的。有什么方法可以用更低的内存来实现广告吗?
广告管理 (广告管理用于设置前台广告页面,同电脑端的设置。) 其中包括:名称、关键词、类别、宽度/字数、高度、是否启用和对某一广告的编辑。添加广告位还是分为平铺跟轮播两种。
广告管理 (进入商城首先映入眼帘的便是精美的广告,可见广告图的设计是店铺留给顾客的第一印象,尤为重要。) 1.广告管理列表包括广告名称、关键词、类别、宽度/字数、高度、是否启用和对已添加的广告位修改操作。 2.添加广告。在添加时,广告位类别分为平铺和轮播,可根据自己的需求来选择。
在我正在Unity中开发的android应用程序中,我使用admob做广告。横幅效果很好,但我想在玩家观看广告时奖励他们。我找不到关于如何在网络上为Unity设置奖励广告的可靠解释或教程。我在admob中为我的中介设置了Unity广告,几乎不知道ZoneId是什么意思。我刚刚在Unity广告上输入了“奖励视频”的集成ID。 然后,我在unity的googleplaydemoscript中输入了广告