Android RecyclerView с AdView - лучшие практики AdMob - PullRequest
0 голосов
/ 01 апреля 2020

Я заканчиваю свое первое мобильное приложение и хочу добавить несколько объявлений AdView в нижней части просмотров. Я ознакомился с правилами AdMob, но до сих пор не уверен, что это правильный способ представления рекламы. У меня есть вид переработчика и объявление на дне. Пользователь прокручивает страницу вниз, но объявление все еще отображается, в конце просмотра я добавляю дополнительные отступы 50dp, чтобы объявление соответствовало последнему элементу, чтобы оно не перекрывалось. Элементы RecyclerView не кликабельны, поэтому они не будут пропущены по объявлению. Это хороший способ, или я должен изменить это? Снимок экрана для лучшего объяснения.

обзор переработчика

последний элемент в обзоре переработчика

Ответы [ 3 ]

0 голосов
/ 13 апреля 2020

Пожалуйста, взгляните на MergedAdapter (все еще в альфа-версии). Это может решить вашу проблему.

0 голосов
/ 15 апреля 2020

Спасибо за ваш ответ, мой адаптер выглядит так

<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>
0 голосов
/ 13 апреля 2020

Вы гарантируете, что ваше объявление не пересекается с контентом, используя 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 действительно пересекается с мобильными экранами большего размера согласно мой опыт.

с вышеприведенной реализацией вы никогда не получите нарушений правил баннеров

...