🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2081閲覧

画面遷移が完了したときにインタースティシャル広告を表示したい

vlb

総合スコア109

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1グッド

0クリップ

投稿2019/12/01 14:29

編集2019/12/02 12:30

やりたいこと

画面遷移が完了したときにインタースティシャル広告を表示したい

分からないこと

インタースティシャル広告 iOS

この公式ガイドに沿ってコードを書いたのですが,画面遷移が完了したときにインタースティシャル広告が表示される時とされない時があります.

きちんと毎回表示がされるよにしたい所存です.

お力をお貸しください.

当該コード

ほとんど公式ガイドと変わりません.

Swift

1 2import UIKit 3import GoogleMobileAds 4 5class ViewController: UIViewController, GADInterstitialDelegate { 6 7 var interstitial: GADInterstitial! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 interstitial = createAndLoadInterstitial() 12 } 13 14 func createAndLoadInterstitial() -> GADInterstitial { 15 var interstitial = GADInterstitial(adUnitID: "ca-app-pub-3940256099942544/4411468910") 16 interstitial.delegate = self 17 interstitial.load(GADRequest()) 18 return interstitial 19 } 20 21 func interstitialDidDismissScreen(_ ad: GADInterstitial) { 22 interstitial = createAndLoadInterstitial() 23 } 24 25 override func viewDidAppear(_ animated: Bool) { 26 super.viewDidAppear(animated) 27 if interstitial.isReady { 28 interstitial.present(fromRootViewController: self) 29 } else { 30 print("Ad wasn't ready") 31 } 32 } 33} 34

画面遷移

Buttonを押すと画面遷移する.
イメージ説明

環境

Xcode:11.2.1
Swift:5.1.2

dja👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nakasho_dev

2019/12/01 14:47

『表示される時とされない時』について詳しく書かないと誰も判断に困り回答できないのではないでしょうか。
vlb

2019/12/01 15:01

すいません. 推測不能なレベルでランダムに表示されたりされなかったりするので,これ以上はなんとも言えない状態です.
vlb

2019/12/01 15:02

一度,試していただけると幸いです.
nakasho_dev

2019/12/01 15:22

私には試す時間はないですが、一度、ソースをGithub等で全部開示してはいかがですか? 画面遷移があるということは少なくとも二つ以上の画面があると思われますが、一つのUIViewContorollerを提示されただけで出る場合と出ない場合があります、と言われても誰も回答できないと思いますよ。
fromageblanc

2019/12/02 02:08

createAndLoadInterstitial() 内のvar interstitialのところ、varとってみたらどうですかね?
vlb

2019/12/02 12:32

>>nakasho_devさま 問題を修正しました. 遷移元のUIViewControllerにはコードは一切付け足していません.
vlb

2019/12/02 13:05

>>fromageblancさま varを消してみましたが変わりませんでした.
aja

2019/12/03 07:08

> print("Ad wasn't ready") がログに出ていないですか? ありがちなのはInterstitialはダウンロードに時間がかかるので
vlb

2019/12/03 15:07

>>ajaさま 広告が表示されない時はprint("Ad wasn't ready")がログに出ます.
vlb

2019/12/03 15:09 編集

Interstitialのダウンロードに時間がかかる場合,コードをどのように変更すれば解決できるかご存知であれば,そのコードを具体的に教えて頂けないでしょうか.
aja

2019/12/04 01:11

ダウンロードは表示させる前に実行しておいて、後はそれを使いまわすとか。また、表示タイミングが多すぎるのはユーザーに嫌われるので検討が必要です。 >コードを具体的に教えて頂けないでしょうか まず自分でコードを書いてみましょう それでうまくできなければ別の質問を上げれば答えてくれる人がいるかもしれません
guest

回答1

0

自己解決

解決には到りませんでした。

投稿2019/12/16 13:21

vlb

総合スコア109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問