Admob警告「サイトの仕様: ナビゲーション」対策について

先日、リリースアプリに対してAdmobから以下の警告メールが届きました。

メールタイトル:
「お客様のアプリへの Google AdMob 広告配信に制限がかけられました」

本文:
現在、お客様のアプリケーションのひとつが AdMob プログラム ポリシーに準拠していない状態です。このため、アプリケーションへの広告配信が制限されています

警告の内容、問題点、対策を以下に記述していきたいと思います。
なお、今回の警告に対する対策については必ずしも全てに該当するとは限りません。
私と同じように警告が出て、同対策したらよいか悩まれている方のヒントになればと思います。

警告内容

サイトの仕様: ナビゲーション

プログラム ポリシーに記載されているとおり、Google 広告を表示するサイトやアプリでは、ユーザーに役立つ情報を提供することになっております。ユーザーが期待どおりの製品、商品、サービスを見つけられるように、サイトやアプリ内を簡単に移動できる必要があります。誤解を招く操作性とは、たとえば次のようなものを指します。

・存在しないダウンロード/ストリーミング配信コンテンツの提供を謳っている
・存在しないコンテンツにリンクしている
・無関係なページや誤解を招くページもユーザーをリダイレクトしている
・サイトのテーマやビジネスモデルと関係がないテキストが記載されている

詳しくは、ウェブマスター向け品質に関するガイドラインと AdSense のプログラム ポリシーをご参照ください。

警告が出た原因

私のアプリは「NavigationView」機能を有しています。
対策前のアプリ画面はこんな感じです。

対策前のNavigationView

色々、NavigationViewの問題点を調査した結果、開閉用のトリガー(ハンバーガーアイコン)が原因ではないか?と推測を行いました。
※結論を先に述べると、この推測が正解でした。

対策前と後について

上記で示した対策前の画面に対して、開閉用のトリガーを実装した結果、以下の様になりました。

対策後のNavigationView

対策(詳細)

ここからは、コードレベルでの対策例を明示しておきます。

<!-- activity_layout.xml -->

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toTopOf="parent">
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/tool_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp" />
</com.google.android.material.appbar.AppBarLayout>

レイアウトファイルに上記ToolBarを定義します。

    /*  MainActivity.java */

    private Toolbar mToolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
           :
        mToolbar = (Toolbar) findViewById(R.id.tool_bar);
        setSupportActionBar(mToolbar);
        DrawerLayout drawer =
                (DrawerLayout) findViewById(R.id.drawerLayout);
        ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
                this, drawer, mToolbar,
                R.string.xxx, R.string.xxx) {
        };
        drawer.addDrawerListener(mDrawerToggle);
        mDrawerToggle.syncState();
        :
    }

Toolbarを有効にし、ActionBarDrawerToggleをDrawerLayoutにaddします。
※ハンバーガーアイコンはアプリ内で実装しなくても表示されます。

Toolbarを追加したことで、ToolbarとActivityが重なって表示されるようになりました。
そこで、Activity側のレイアウトに対して、下記定義を追加します。

android:layout_marginTop="?android:attr/actionBarSize"


今回の対策は以上となります。
警告が出たアプリは本対策版で再審査をして頂き、無事承認頂けました!

同じ警告で悩まれている方は参考にしてみて下さい。

対策版アプリはこちらになります(^o^)♪

努力値管理@剣盾
開発元:MANA99
(2020年6月13日時点)

mana99 について

30代のシステムエンジニア 仕事以外にAndroidアプリを定期的にリリース モットーは「最短&シンプル」
カテゴリー: エラー関連 タグ: , , パーマリンク