Flutter: 再びAdMobからポリシー違反警告(リワード広告 - 許可されない実装方法)

※当サイトは、アフィリエイト広告を利用しています

結論:解決できず、全広告を非表示にした

2023/5/3 Flutter エラー・バグ日記

 

1ヶ月近く対応に苦慮した結果、実質的な解決には至らなかったが、同じ境遇の方のご参考になればと思い、その状況を記録。

 

リリース済のiOS版のアプリ(Flutterで開発)について、AdMobから「リワード広告 - 許可されない実装方法」の警告が来た。

  

本記事はライトな日記思考で書いているので、詳細説明はしておらず、基本、テキストのみで画像とかはあまり載せておりません。。m(_ _)m

解説記事ではないため、解決していない内容や、その時々の間違った解釈を述べてしまっている可能性が大いにありますので、何卒、ご了承ください。

 

しかし、このアプリは、リワード広告を一切実装しておらず、リワード広告の広告ユニットさえ、作成していない

 

使用しているのは、バナー広告インタースティシャル広告のみ。

 

そもそも、自分のリリースしている全てのアプリにおいて、リワード広告を使用したことがない。。

 

過去にも同じ警告を受けた

実は、下記日記に記載のとおり、ちょうど一年ほど前にも、同じアプリに対して全く同じ警告があった。

 

 

このときは、

 

「リワード広告は使用していません。他に修正すべき点があれば、対応したいので教えてください。」

 

という趣旨で、再審査リクエストしたところ、すぐに警告が解除された。

 

そのため、今回も同じ対応を試みたが、今回は、再審査リクエスト後、1時間ほどで

 

「リクエストに応じて審査を実施いたしましたが、ポリシー違反が解決されていないようです。」

 

という返信が来て、却下されてしまった。。

 

改めて、AdMobのポリシーセンターに来た警告内容を読み込むが、書かれているのは、下記内容のみ。

 

リワード広告を配信できるのは、ユーザーがその種の広告を表示することに選択的に同意した場合に限られます。また、ユーザーは個々のリワード広告ごとに表示するかどうかを選択する必要があり、リワード広告が自動的に表示されるように設定することはできません。

  

リワード広告の広告ユニットすら作成していないので、対処のしようがない。。

 

ChatGPTにアドバイスを求める

同様の報告が無いか、ネット上をググったが、回答につながる情報は得られず。

 

ChatGPTに尋ねてみると、下記回答だった。

 

  • 以下3つの可能性がある。
    • ①AdMob側が誤判定した
    • ②誤ってリワード広告の広告IDを実装している
    • インタースティシャル広告をリワード広告のように報酬目的で表示している
  • AdMobに問い合わせ、具体的な原因を確認したほうが良い。

 

考えられるのは①のみだが、既に再却下されており、②③も該当しないので、問い合わせてみることにする。

 

AdMobへ問い合わせができない

やや古い情報(2年ほど前)にはなるが、下記記事では、AdMobに問い合わせし、詳しい理由を確認できたとのこと。

 

 

また、こちらのAdMobのヘルプセンターページでも

 

 

「解決方法が見つからない場合は、メールでお問い合わせください。」

 

と書かれている。

 

当然ながら、ヘルプ内に今回の問題の解決策は見つからなかったので、早速、「メールでお問い合わせ」のリンク、もしくは画面下にある「お問い合わせ」ボタンから連絡を試みた。

 

しかし、、途中でカテゴリーを選んで進むと、どうやっても「コミュニティ」に案内されてしまい、直接AdMobに問い合わせを送ることができない。。(言語を英語に変更しても同じ)

 

一方、理由は不明だが、AdMobに使用していないGoogleアカウントでログインした状態で、上記ヘルプセンターページの「メールでお問い合わせ」をクリックすると、下図のような問い合わせフォームに遷移できる。

 

 

しかし、すべての項目を入力し、送信ボタンを押すと

 

問題が発生しました

 

と赤字で表示され、エラーで送信できない

 

何度やっても同じ。。別のGoogleアカウントでも試したが同じだった。。

 

こちらの記事では、AdMobに使用していないアカウントからであれば送信できた、と報告されているが、現在はこれもできなくなっている模様。。

 

 

その後、ダメ元で、AdMobのTwitterアカウントにDMで問い合わせたり、AdMob導入前の人が問い合わせをするためのページから問い合わせたりするも、完全スルーで何の返信も来ない。。(もちろん、英語も併記して送ったのだが、、)

 

 

 

ちなみに、コミュニティへの投稿も考えたが、現状の投稿状況を見ると、1年以上、誰からも回答が来ずに放置されているものばかりだったので、やめることにした。

 

パッケージを最新にしてみるも駄目

ここから試行錯誤の再審査の日々が始まる。。

 

まず、Flutter用のAdMobパッケージ「google_mobile_ads」のバージョンが最新ではないため、誤作動が生じているのかもしれないと思い、バージョンアップした。

 

さらに、リワード広告ではないが、導入しているインタースティシャル広告バナー広告が、各ポリシー要件に一層適合するよう調整した。

 

※もともと違反している認識はなかったが、インタースティシャル広告は、画面の切り替わり時に違和感なく表示されるよう、タイミングを調整したり、バナー広告はボタン位置から十分離れた位置に表示されるよう、位置を調整したりした。

 

これでAppStoreに更新リリースし、AdMobに再審査リクエストを送ったが、約1時間後に返信があり、またもや却下だった。。

 

特に理由のコメントはなく、今まで同様、「リワード広告 - 許可されない実装方法」の指摘のみ。

 

これはかなり辛い。。

 

残っていたテストデバイス登録のコードを削除する

試行錯誤していると、ふと、自分のiOSの実機端末上の広告に「Test Ad」と表示されていることに気づいた。

 

恥ずかしながら、「AppDelegate.swift」に、テストデバイス登録コードが残ってしまっていた。

 

下記AdMobの公式ページ

 

 

にもあるとおり、本番リリース前には、このテストデバイスコードを削除する必要があった。

 

これが悪さをしていたのかも、と思い、ChatGPTに意見を聞くと、

 

ユーザー体験の低下: テストデバイスがリリース版のアプリで広告を受信しない場合、ユーザーが広告を利用した機能にアクセスできなくなる可能性があります。これは、特にリワード広告などの機能で影響が出ることがあります。

 

とのこと。

 

なるほど、、現時点で、リワード広告を実装していなくても、今後リワード広告を実装した場合に、適切に報酬を受け取れない端末が存在している、という事をポリシー違反は言いたかったのか、間違いなくこれが原因だ!(ありがとうChatGPT!)と確信する。

 

そこで、早速、

 

GADMobileAds.sharedInstance().requestConfiguration.testDeviceIdentifiers =
[ "######" ]

※######はテストデバイスのコード

 

を「AppDelegate.swift」から削除し、AppStoreに更新リリース・AdMobに再審査リクエストを送った。

 

しかし、またもや却下の通知が来た。。

 

今回は解消できる確信があっただけに、かなりショック。。

 

自動でインタースティシャル広告が表示される仕様を廃止

途方に暮れそうになったが、ここで改めてChatGPTからアドバイスのあった、

 

インタースティシャル広告を、リワード広告のように報酬目的で表示している

 

という点を検証してみた。

 

よく考えると、アプリ内の特定の機能を使用する際、必ずインタースティシャル広告を表示するようにしていたので、もしかすると、これがリワード(報酬=機能を使用できる)を与える広告と解釈されたのかもしれない。

  

元々、ユーザーがこの機能を使用する前には、ダイアログを表示し、使用する場合は広告が表示される旨を明示していたので、事前に同意を得る仕様にはなっていた。

  

しかし、設定画面で、ユーザーが選択すれば、この同意確認を不要にする設定変更ができるようになっていた。

 

この点が、

 

ユーザーは個々のリワード広告ごとに表示するかどうかを選択する必要があり、リワード広告が自動的に表示されるように設定することはできません

 

というリワード広告のポリシーに違反していたのかもしれない、と気づいた。

 

そこで、設定画面を修正し、この同意確認を不要にできる設定を無効にした。

 

更に、この同意確認ダイアログの文言を修正し、

 

「この機能を使うには、広告が表示されますが、問題ないならOKしてください」

 

という趣旨の確認文言を丁寧に表示するようにした。

 

今度こそポリシー違反が解消されるはず!と思い、AppStoreに更新リリース・AdMobに再審査をリクエストした。

 

しかし、結果はやっぱり却下だった。。

  

広告ユニット・フォーマットタイプによらず、全広告が違反対象になっている。。

その後、バナー広告とインタースティシャル広告の広告ユニットを再作成し、広告IDを新しいものに差し替えて再審査してみたが、やはり却下だった。

 

また、再審査リクエスト時の説明文は、常に日本語と英語を併記して送っていたが、それも効果はなかった。。

 

この時点で、作成していた広告ユニットは、

 

  • バナー広告 再作成
  • インタースティシャル広告 再作成
  • バナー広告 初期作成
  • インタースティシャル 初期作成

 

の4つ存在していたが、ポリシー違反ページ上の違反対象の広告リクエスト数は、広告アクティビティレポート上の4つの広告ユニット全ての合計値(過去7日間の広告リクエスト数)とほぼ一致していた(差異は2〜3リクエスト程度)。

 

 

つまり、バナー広告もインタースティシャル広告も全て違反している、ということになる。。

 

この時点で完全に詰まってしまった。。

 

最近、同様の報告が複数見られる

改めてネット上を調べていると、同じ時期に、自分の状況と似た報告の記事が上がっていた。

 

 

しかし、こちらの方は、過去の自分と同様、問題ないことを報告したら解消されたとのこと。

 

また、これも比較的近い時期に、自分と全く同じ状況の報告がコミュニティに上がっていた。

 

 

こちらの方は、バナー広告とインタースティシャル広告しか実装していないのに、リワード広告の違反警告を受けたとのこと。

 

全く自分と同じ状況だが、残念ながら、その後の情報はなく、回答もロックされている。。

 

この方が無事解決されたのかどうか不明だが、いずれにしても突然、リワード広告の違反を指摘される、ということが、最近発生している模様。。

 

結局、全ての広告を外すことにした。。。

対応期限が5月11日に迫っていることもあり、やむなく本アプリについては、全ての広告を非表示にすることにした。。

 

なお、広告を全て非表示にしても、再審査リクエストが却下される、という情報もあった。

 

 

推察だが、旧バージョンのアプリのユーザーが残っていると、違反対象の広告リクエストが継続するためではないかと思われたので、AppStoreに更新リリースをした後、2日ほど待ってから、AdMobに再審査リクエストをした。

 

その結果、

 

お客様のアプリの審査が完了いたしましたが、ポリシー違反は発見されませんでした。

 

というメールが来て、ようやくポリシー違反の警告が解除された。

 

なお、広告非表示をする際に参考にさせていただいた下記記事

 

 

では、広告ユニットごと削除する方法が紹介されていた。

 

自分の場合は、迷った挙げ句、後で復活しやすいよう、広告ユニットは保持したまま、実装上で非表示にする処理のみで、再審査リクエストをしたが、これで問題なく承認された。

 

 

結局のところ解決できたとは言えず、残念な対処をすることとなった。

 

  • 実装していない広告ユニットに対する警告
  • 全広告ユニットが違反対象扱い(と思われる)
  • 実質的にサポートに問い合わせ不可
  • 再審査却下時に詳細理由の提示なし

 

という状況は、手がかりが無さ過ぎてなかなかしんどいが、、引き続き、この問題の適切な対処が何だったのか、検証したいと思う。。

 

\一般的なエラー対処法をまとめた記事はこちら/

 

リリースしたアプリ(全てFlutterで開発)

 

個人アプリ開発で役立ったもの

おすすめの学習教材

超初心者向けでオススメな元Udemyの講座/

 

 \キャンペーン時を狙えば安価で網羅的な内容が学べる(日本語訳あり)/

 

\Gitの基礎について無料で学べる/

 

おすすめの学習書籍

実用的image_pickerに関してかなり助けられた/

 

Dartの基礎文法を素早くインプットできる/


Dart入門 - Dartの要点をつかむためのクイックツアー

タイトルとURLをコピーしました