「アプリ起動時に毎回インタースティシャル広告を出そう」というユーザビリティ最悪な思いつきを実践してみてTestFlightで実機で動かしても、Androidにapkファイルを送って動かしてもインタースティシャル広告が表示されないので原因を調べてみました。
Contents
Admob禁止事項
ぐぐってみると以下のページに遭遇。
アプリの読み込み時や終了時の表示は禁止されているそうだ。
まあ確かにユーザーにとって全然よろしくないので禁止されていても納得するw
アプリの読み込み時や終了時の表示 インタースティシャル広告はアプリの読み込み時や終了時に表示してはいけません。表示が許可…
解決策
しかし、あまり作り込まれていないシンプル系アプリなんかだと、あまりインタースティシャル広告を仕込む場所も無いので、やはり起動時的なポジションに仕込みたい。
こんなときは、ローディング画面を作ればいいとグーグル先生の公式にある。
つまり実際の画面遷移が
【これだと駄目】
アプリ起動→インタースティシャル広告→アプリ画面
【これだとOK】
アプリ起動→Loading画面→インタースティシャル広告→アプリ画面
ということですね。
多くのカジュアルゲームは広告を入れるためにニセローディング画面(実際には通信していないけど)広告を表示する画面を作るために入れているという話も聞いていたのでこうゆうことかとw
私はUnityで開発しているのでSceneをひとつ作って「Now Loading…」とか表示して3秒後くらいに本来のアプリの使用される画面に遷移するみたいな構造に変えて対応します。
追記:本当の解決策
上記の解決策を実施しても表示されなくて駄目じゃねえか!と思いいろいろ検索していたらどうやらStartメソッドの中だとインタースティシャルが表示されない的な記事を発見。
インタースティシャルで躓いてわかったポイントは以下。
①バナー広告はLoadAd()で表示されるがインタースティシャルの場合はさらにShow()メソッドまで書かないといけない。
②Startメソッドの中に入れるとインタースティシャルが表示されない、OnGUI()だと表示される
正しいソースコードはこんな感じ。