質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

88.34%

Google Admobの広告ユニットIDを設定しても広告が表示されません。

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,856

Hayato1201

score 113

以下のサイトを見て広告を表示しようとしています。Test用の広告を表示することはできましたが、実機をテストデバイスとして登録するという部分で、登録して表示をさせようとした時にうまくいきません。
https://i-app-tec.com/ios/admob.html

TestIDを用いて以下の様にloadを行うとテスト広告の上にtestと表示されるのでデバイス登録自体はできている様に思います。しかしこれをAdmobで表示された広告ユニットIDにすると表示されません。

let request = GADRequest()
request.testDevices = [ "Test Device ID" ] 
admobView.load(request)

Admobで確認すると作成した広告は以下の様になっています。

イメージ説明

有効なアイテム0個となっていますが、そもそもこれらの広告は有効になっていないのでしょうか?


新しくadmobのためだけにプロジェクトを作って実行したところやはり表示できませんでしたが、以下にそのさいのコードとログを示します。

import UIKit
import GoogleMobileAds

class ViewController: UIViewController {

    // 広告ユニットID
    let AdMobID = "広告ユニットID"
    // テスト用広告ユニットID
    let TEST_ID = "ca-app-pub-3940256099942544/2934735716"

    // true:テスト
    let AdMobTest:Bool = false

    override func viewDidLoad() {
        super.viewDidLoad()

        print("Google Mobile Ads SDK version: \(GADRequest.sdkVersion())")

        var admobView = GADBannerView()

        admobView = GADBannerView(adSize:kGADAdSizeBanner)

        admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height - 34)
        admobView.frame.size = CGSize(width:self.view.frame.width, height:admobView.frame.height)

        if AdMobTest {
            admobView.adUnitID = TEST_ID
        }
        else{
            admobView.adUnitID = AdMobID
        }

        admobView.rootViewController = self
        //admobView.load(GADRequest())


        let request = GADRequest()
        request.testDevices = [ "デバイスID" ]
        admobView.load(request)

        self.view.addSubview(admobView)
    }


}


以下Appdelegate

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        FirebaseApp.configure()
        GADMobileAds.configure(withApplicationID: "ca-app-pub-xxxxxx")
        return true
    }

YMTLInitPlatform] platform initialization successful
2019-02-18 13:37:54.491123+0900 testAdmob[22214:5406194]  - <AppMeasurement>[I-ACS036002] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
2019-02-18 13:37:54.596618+0900 testAdmob[22214:5406211] 5.16.0 - [Firebase/Analytics][I-ACS023007] Analytics v.50500000 started
2019-02-18 13:37:54.596960+0900 testAdmob[22214:5406211] 5.16.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2019-02-18 13:37:54.639346+0900 testAdmob[22214:5406208] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2019-02-18 13:37:54.640114+0900 testAdmob[22214:5406208] [MC] Reading from public effective user settings.
Google Mobile Ads SDK version: afma-sdk-i-v7.39.0
2019-02-18 13:37:54.658186+0900 testAdmob[22214:5406187] 5.16.0 - [Firebase/Analytics][I-ACS025026] Deferring to Firebase for event data collection
2019-02-18 13:37:54.680709+0900 testAdmob[22214:5406214] [NetworkInfo] Signal strength query returned error: Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied", descriptor: <CTServiceDescriptor 0x281517260, domain=1, instance=1>
2019-02-18 13:37:54.714604+0900 testAdmob[22214:5406038] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port スピーカー (type: Speaker)
2019-02-18 13:37:54.982855+0900 testAdmob[22214:5406187] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x10500f2c0] get output frames failed, state 8196
2019-02-18 13:37:54.982983+0900 testAdmob[22214:5406187] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C1.1:2][0x10500f2c0] get output frames failed, state 8196
2019-02-18 13:37:54.983250+0900 testAdmob[22214:5406187] TIC Read Status [1:0x0]: 1:57
2019-02-18 13:37:54.983280+0900 testAdmob[22214:5406187] TIC Read Status [1:0x0]: 1:57
2019-02-18 13:37:55.298193+0900 testAdmob[22214:5406229] WF: === Starting WebFilter logging for process testAdmob
2019-02-18 13:37:55.298347+0900 testAdmob[22214:5406229] WF: _userSettingsForUser mobile: {
filterBlacklist =     (
);
filterWhitelist =     (
);
noOverridingAllowed = 1;
restrictWeb = 1;
useContentFilter = 0;
useContentFilterOverrides = 0;
whitelistEnabled = 0;
}
2019-02-18 13:37:55.298500+0900 testAdmob[22214:5406229] WF: _WebFilterIsActive returning: NO
2019-02-18 13:37:55.765835+0900 testAdmob[22214:5406038] [avas] AVAudioSessionPortImpl.mm:56:ValidateRequiredFields: Unknown selected data source for Port スピーカー (type: Speaker)
2019-02-18 13:39:56.611369+0900 testAdmob[22214:5406577] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C4.1:2][0x105028860] get output frames failed, state 8196
2019-02-18 13:39:56.611863+0900 testAdmob[22214:5406577] [BoringSSL] nw_protocol_boringssl_get_output_frames(1301) [C4.1:2][0x105028860] get output frames failed, state 8196
2019-02-18 13:39:56.612878+0900 testAdmob[22214:5406577] TIC Read Status [4:0x0]: 1:57
2019-02-18 13:39:56.612977+0900 testAdmob[22214:5406577] TIC Read Status [4:0x0]: 1:57

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

有効なアイテム0個となっています

メディエーションとキャンペーンが0なだけです
やっていなければ0なのは当然です

なにかログは出ていないでしょうか
それと広告は直ぐには出てきません
1日たって出なければ何か引っかかっているのかもしれませんが

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/19 07:27

    iPhoneが許可されていない、IDの書き間違い
    AdMobの設定が終わっていない
    など、AdMobのタグで同様の質問を見てみては
    https://teratail.com/tags/AdMob

    キャンセル

  • 2019/02/21 10:32

    admobについて以下の様な質問がありました。
    https://teratail.com/questions/129537
    これでは結局リリースしてしばらくしたら徐々に表示される様になって行ったとの事でした、、リリース前にも実機でテストできると書いてあるサイトはありますが実際どうなでしょうか。。。

    キャンセル

  • 2019/02/21 12:37

    https://developers.google.com/admob/ios/test-ads
    にあるようにAdMobは実機テストのときは不正クリックにならないようにテストモードに入れる事を推奨しています。
    また、
    推奨: AdMob アカウントを作成して、アプリを登録していること
    というのもあります
    もしアプリをリリースしていないなら、一旦リリース後にAdMobの実機テストをするということでしょうか
    ただ、
    iOSの場合はAndroidと違ってスタートダッシュが大切なのでいきなり出してしまうという事もありかもですね。自己責任です

    キャンセル

0

こんにちは、私もiosで広告を実装しています。
admobの本番用IDはadmobアカウントのお支払いという項目を埋めるまで表示されなかったと思います。
私はそうでした。

あと、有効なアイテム数が0というところはあまり気にしなくても大丈夫ですよ。

追記

func setAds() {

    admobView = GADBannerView(adSize:kGADAdSizeBanner)

    switch (UIScreen.main.nativeBounds.height) {

    case 2436:
      admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height - 24)
    case 2688:
      admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height - 24)
    case 1792:
      admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height - 24)
    default:
     admobView.frame.origin = CGPoint(x:0, y:self.view.frame.size.height - admobView.frame.height)
    }

    admobView.frame.size = CGSize(width:self.view.frame.width, height:admobView.frame.height)

    if AdMobTest == true{
      admobView.adUnitID = "//"
    }
    else{
      admobView.adUnitID = AdMobID
    }

    admobView.rootViewController = self
    admobView.load(GADRequest())

    self.view.addSubview(admobView)

  }

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/02/23 11:52

    回答ありがとうございます!
    お支払い情報の登録というやつでしょうか?これは、収益がお支払い方法選択の基準額に達していない場合、お支払い方法は設定できません、とヘルプに書いてあり、設定をしようとしてもサーバ上に見つかりませんとなって設定できません。また、admobの本番用IDが表示されないとの事ですが、上の画像の広告ユニットの欄のID(上の画像では消してあります)が本番用のIDでは無いのでしょうか?

    キャンセル

  • 2019/02/24 18:06 編集

    そこまで設定されているならお支払い方法は大丈夫です。

    一応自分のアプリの広告欄のコードを置いておきます。各iphoneサイズに適用してあるのでお使いください。任意のタイミングでsetads()するだけで広告が表示されます。

    admobView.load(GADRequest())
    のところにtestIDと書いてあるのが気になりました。

    本番用idはそれで大丈夫ですよ。

    キャンセル

  • 2019/02/26 16:55

    わざわざありがとうございます。
    midori0822さんはリリース前からこの様な形で本番の方の広告を表示させる事が出来ていたという事でしょうか??まだ自分はリリース前でシミュレータまたは実機での本番用広告が表示できない状態です。。。サイトにはシミュレータやデバイスIDを指定して実機ではテストというラベルがでますが本番用の広告を表示できると書かれていたのですがそれが出来ないという状況です。

    キャンセル

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

  • ただいまの回答率 88.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る