如何获取当前屏幕配置的最佳Admob尺寸?

4

背景

我希望在我的应用程序中使用Admob显示广告,但是在加载广告时(在显示之前)或者甚至在没有互联网连接时,我也希望显示一些内容。

问题

Admob的广告有各种不同的尺寸,具体取决于您要针对的屏幕(链接在这里),但是它们没有说明如何选择最佳大小。

例如,他们谈论平板电脑,但是在表格中没有定义平板电脑是什么类型。他们甚至没有解释每种广告类型的含义。

问题

给定具有特定配置的设备,我应该如何选择最佳的adView大小?

如果我使用BANNER,它是否总是会显示?如果屏幕有足够的空间,它会自动选择其他广告吗?


你想好了如何在广告加载时显示某些内容了吗? - Ruchir Baronia
@RuchirBaronia 不好意思,没有。 - android developer
2个回答

4
我正在为四种不同的屏幕尺寸(小型、普通、大型和超大型)使用不同的广告尺寸。在我看来,对于更大的屏幕,使用更多的屏幕空间来展示广告是有意义的,而对于较小的屏幕则应该使用更少的屏幕空间,但这取决于应用程序以及你愿意为更大的广告牺牲多少屏幕空间(更大的广告=更高的收入)。因此,找到可用性和最大化广告收益之间的正确平衡是一个问题。如果广告太大且过于突兀,则可用性将受到影响,评分和下载次数也会受到影响。如果广告非常小(在超大型屏幕上的横幅广告实际上非常小),用户甚至可能不会注意到它并可能不会点击它。
为了在不同的屏幕尺寸上使用不同的广告格式,我使用include标记来包含广告布局,我在布局文件夹layout、layout-small、layout-large和layout-xlarge中定义广告.xml文件,它们具有不同的admob:adSize和admob:adUnitId标记。
如果广告未加载(例如没有网络),我还为布局保留了空间。这个空间的尺寸是不同广告尺寸的尺寸: BANNER:320*50 IAB_BANNER:468*60 IAB_LEADERBOARD:728*90
我把这些尺寸定义在values、values-large和values-xlarge中的dimens.xml文件中(我的应用程序中也使用BANNER大小的小值)。可以在布局中使用layout_width和layout_height标记来引用这些尺寸。
android:layout_width="@dimen/admob_ad_width"
android:layout_height="@dimen/admob_ad_height"

基本上,你可以决定在哪个设备上展示哪种广告尺寸(Admob将使用定义的广告尺寸而不覆盖你的配置)。我在小型和普通屏幕上使用BANNER,大型屏幕上使用IAB_BANNER,超大屏幕上使用IAB_LEADERBOARD,但这个决定取决于你。让Admob决定显示哪种尺寸的方法对于大多数应用程序来说并不是一个好的选择,因为它们应该充分利用屏幕空间,了解广告的大小在设计屏幕布局时非常有帮助。


使用不同的限定符,使用DP的可用宽度或可用高度会更好,您认为呢?另外,我想请教一下,应该在什么“桶”中放置哪个广告。 - android developer
你所说的DP是指什么?你是指不同的屏幕密度吗?我的方法已经考虑了屏幕密度。广告在不同的密度上将具有相同的大小。一个350*50的广告横幅在mdpi和xhdpi屏幕上看起来(或多或少)相同。这是因为@dimen/值将被视为dpi值。 - Emanuel Moecklin
Android 不决定智能横幅的尺寸,而是 Admob SDK 决定。在这里解释了在哪些屏幕上使用哪些格式:https://developers.google.com/mobile-ads-sdk/docs/admob/smart-banners。如果您想知道广告视图的大小,可以在布局处理完成后进行检查。如何做到这一点?现在这是一个完全不同的问题,您可以在 SO 上找到答案。 - Emanuel Moecklin
好的,谢谢您的建议。简而言之,您在普通屏幕上使用横幅广告,对于大屏幕使用IAB_BANNER,对于超大屏幕使用IAB_LEADERBOARD,是这样吗?但是您是否也希望它能随着方向或可用DP数量的变化而改变呢? - android developer
谢谢!非常好的回答。您还提到了智能横幅。 - AshMv
显示剩余9条评论

0

请务必使用新引入的AdMob自适应横幅。它们不需要您进行任何调整,可以利用所有可用的宽度。

将它们嵌入到FrameLayout中,如下所示

<FrameLayout
    android:id="@+id/adFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center|bottom" />

当没有横幅加载时,layout_height="wrap_content"将为0,因此FrameLayout对用户不可见。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接