プログラミング

サイトの仕様: ナビゲーションを解決する方法。Admobポリシーセンター広告制限

投稿日:2022年5月10日 更新日:

一年ほど前、突如としてAndroidアプリのAdmob広告に配信制限がかかりました。理由は「サイトの仕様: ナビゲーション」。これが厄介で、一体何を修正すべきなのかが全く分かりません。
Web検索をかけると結構な数の経験談が見つかります。その対処法は人それぞれという印象です。怒りに任せた反論をしている方もいました。反抗だけはやってはいけません。永久に審査が通らなくなります。
私は一年以上、あれこれとポリシー違反個所を推測し、アプリを修正して申請をし続けました。おそらく10回以上申請したと思います。そして先日、ついに修正が認められて広告制限が解除されました。
以下、その記録です。

徐々に迫りくる広告配信制限

同じようなGUIのAndroidアプリを3つほど公開していました。そのうちの一つがまず 「サイトの仕様: ナビゲーション」 でポリシー違反を食らいました。ダウンロード数も少なく稼ぎも僅かだったので放置していました。すると間もなくして2つ目のアプリが同様の理由で違反との連絡。ダウンロード数は10,000以上で少しは稼いでいたのでさすがに対応を試みました。しかし何度やっても違反の判定。具体的な違反個所は一切教えてくれません。そしてほどなくして3つ目のアプリも違反の連絡。このアプリは稼ぎ頭だったので大損失となりました。

情報収集して見つかった対処法

とにかく検索をしました。そして 以下に挙げる、「サイトの仕様: ナビゲーション」 から復活を遂げた方々の対処法を片っ端から試しました。

・DrawerLayoutの閉じるボタンの設置、広告にかからないように考慮
  https://mana-android-dev.com/android_studio/error/admob-countermeasure-navigation
・httpリンクをhttpsに
・ビューワー系アプリの場合は起動時に空の状態でなくサンプル用意してを読み込んでおく
  https://pisuke-code.com/admob-fix-navigation-violation/
・異議申し立てを行った方
  https://support.google.com/admob/thread/94978706/

どれも私のアプリにも当てはまっていたのですぐに修正しましたが変わらず違反の判定でした。
しかしこの修正は意味がなかったとは言えません。ポリシー違反理由は複数あるかもしれないので、上記修正で1つ1つ潰していけたとも考えられます。

無効、無反応なボタンの削除(これで審査通過)

考えられる修正箇所が減ってきたことにより、ある程度候補を絞る事が出来ました。押せないボタンがあると違反対象になるのはiPhoneでは常識であるのに対し、審査の甘いAndroidでは何気なくsetEnabled(false)で表示してあるボタンがあるのに気が付きました。これらを全てsetVisibility(INVISIBLE)に変更。
また、モード切替のGUIで分かりづらいというコメントをもらった事があったのも思い出し、丁寧にAlertを出すようにしました。
同様の対策を行った記事も発見しました。
  https://risusan.net/?page_id=13242#

修正版のアプリが公開されたのを確認してAdmobポリシーセンターにて申請。数時間で「問題なし」とメールで連絡が来ました。長かった。解消するのに1年以上かかりました。

2023/10追記:問題部分のスクリーンショットが添付されるようになった

しばらく問題なく公開されていたアプリですがまた配信制限の連絡メールが来ました。またか、、、。前回の審査通過からアプリ内容に変更は加えていないので原因を特定するにに苦労するだろうと落胆しました。

しかし皆さん、朗報です!ポリシーセンターのページに移動してみると、なんとスクリーンショットが添付されています。これで問題箇所が明らかになり、対応する事ができます。最初からこれぐらいしてほしかったです。

スクリーンショットには3枚の画像がアップされていました。操作の流れが分かるようになっています。どうやら途中でアプリがクラッシュしているようでした。まったくの想定外の挙動ですが問題箇所は限定する事ができるので頑張って修正してみようと思います。

-プログラミング

執筆者:

関連記事

弾丸と壁/人の接触判定を少し真面目に実装してみる|ゲーム作成

フォートナイトみたいなオンラインバトロワゲームを作っています。優秀なサンプルコードから作成を開始したので早い段階で一応形にはなりました。しかし、サンプルをいじりすぎて接触判定に矛盾が生じてきてしまいま …

FFmpeg.wasm使い方: 動画をアップロードして音声を抽出する

FFmpeg.wasmの使い方の一例として、動画をアップロードしてその音声を抽出したmp3を出力してみます。処理が終わると音声が自動で再生されます。音声のプレイヤー上で右クリックするとファイルの保存選 …

有限要素法の弾塑性解析Pythonコードを実行してみた

有限要素法、弾塑性解析についてWeb検索をしていた所、Pythonコードを見つけました。 https://qiita.com/Altaka4128/items/86e25d66196dfe7160f3 …

iPhoneアプリ公開でAppStoreにて言語が英語になる場合の対処 | Xcode

日本語にしか対応していないアプリを作成してAppStoreConnectでも言語を日本語しか選択していないのに、公開したらAppStoreでの言語表記が「英語」に。日本語にしたい場合の対処法です。[対 …

今さらNode.js+Three.jsでゲームを作る理由 – なぜUnity, Unreal Engineでないのか

目次 目的を「コードを書いてゲームを作る」に絞る捨てる物余談、私自身の目的皆さんに言えるJavascriptでゲームを作るメリット 目的を「コードを書いてゲームを作る」に絞る ゲーム作成経験のない場合 …

スポンサーリンク