Android RecyclerView 与 AdView - AdMob 最佳实践

Android RecyclerView with AdView- best practices AdMob

我正在完成我的第一个移动应用程序,我想在视图底部添加一些 AdView。我阅读了 AdMob 政策,但我仍然不确定这种广告展示方式是否正确。我在底部有一个回收视图和广告。用户正在向下滚动,但广告仍然可见,在视图的末尾,我添加了额外的 50dp 填充以使广告与最后一项相匹配,因此它不会覆盖它。 RecyclerView 项目不可点击,因此不会误点击广告。这是一个好方法还是我必须改变它?截图以获得更好的解释。

recyclerview

last item in recyclerview

您确保您的广告不会与使用 LinearLayouts 和 layout_weight 类似内容的内容重叠。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/backgroundColor"
    android:orientation="vertical"
    android:layout_weight="1"
    android:fitsSystemWindows="true">

    <include layout="@layout/detail_activity_bar"></include>

    <SomeView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/home_grid"
        android:layout_weight="0.9"
        android:layout_width="match_parent"
        android:layout_height="0dp"/>


    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adViewGallery"
        android:layout_weight="0.1"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="center"
        ads:adSize="BANNER"
        ads:adUnitId="@string/home_banner">
    </com.google.android.gms.ads.AdView>
</LinearLayout>

adSize BANNER 适合大多数设备,而根据我的经验,SMART_BANNER 确实与大屏幕手机重叠。

通过上述实施,您将永远不会违反 admob 横幅政策

请看一下 MergedAdapter(仍处于 alpha 阶段)。它可能会解决您的问题。

感谢您的回复,我的适配器是这样的

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".BenefitsActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/appBarLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar_benefits"
            app:layout_scrollFlags="scroll|enterAlways"
            android:layout_width="match_parent"
            android:background="#109689"
            android:layout_height="?attr/actionBarSize">

        </androidx.appcompat.widget.Toolbar>

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:isScrollContainer="true"
        android:measureAllChildren="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <androidx.recyclerview.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingBottom="50dp"
            android:clipToPadding="false"
            android:background="@color/grey_background"
            android:id="@+id/benefits_recycler"/>

    </androidx.core.widget.NestedScrollView>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-2503474669022915/4441412233">
    </com.google.android.gms.ads.AdView>

</RelativeLayout>