AdMob interstitial没有显示有什么问题?

时间:2017-03-27 15:18:34

标签: ios swift admob

我正在尝试将admob插页式广告添加到我的应用中,但是当我运行我的应用时,没有广告出现。我只是在日志中收到一条消息:

<Google> To get test ads on this device, call: request.testDevices = @[ @« deviceID » ];

我很确定它知道我试图显示添加因为之前的错误,但它不会出现。

这是我的代码(我在第一部分添加了一个print语句,但它似乎没有将其纳入考虑范围):

if interstitialad != nil {
            if interstitialad!.isReady {
                interstitialad?.present(fromRootViewController: self)

            }
        }

这是代码的第二部分(注意两者都在ViewDidLoad中)

if interstitialad != nil {
            if interstitialad!.isReady {
                interstitialad?.present(fromRootViewController: self)
            }
        }


        func createAndLoadInterstitial() -> GADInterstitial {
            let request = GADRequest()
            let interstitial = GADInterstitial(adUnitID: "unit id")
            //request.testDevices = ["iPhone test device ID"]
            //request.testDevices = ["simulator ID"]
            interstitial.delegate = self
            interstitial.load(request)
            return interstitial
        }
        interstitialad = createAndLoadInterstitial()

这有什么问题? 谢谢!

3 个答案:

答案 0 :(得分:1)

以下是我用于在Objective-c中启动AdMob的一些代码:

AdMobHandler.m文件:

//创建了320x60横幅并显示在UIView的底部。

//如果您的应用处于开发阶段,则需要添加将在AdMob启动期间显示的设备ID或模拟器ID。   要在此设备上投放测试广告,请致电:request.testDevices = @ [@“xxxxxxxxxxxxxxxxxxxxxxxxxx”];

- (void)initiateAndLoadAdMob:(UIViewController *)sender
{
GADRequest *request = [GADRequest request];

 GADBannerView  *bannerView = [[GADBannerView alloc] initWithAdSize:kGADAdSizeBanner];

    request.testDevices = @[ @"xxxxxxxxxxxxxxxxxxxxxxxxxx <<Device ID>>",@"xxxxxxx<<Simulator ID>>" ];
    bannerView.adUnitID = FIREBASE_ADMOBID;
    bannerView.rootViewController = (id)self;
    bannerView.delegate = (id<GADBannerViewDelegate>)self;
    senderView = sender.view;
     bannerView.frame = CGRectMake(0, senderView.frame.size.height - bannerHeight, senderView.frame.size.width, bannerHeight);
    [senderView addSubview:bannerView];


}

如果您能够理解并更改代码,Swift将为您提供一些想法并解决您的上述问题。如果您对上述代码有任何疑问,请与我们联系。

有关详细信息,请查看以下链接:

https://firebase.google.com/docs/admob/ios/interstitial

答案 1 :(得分:0)

您说您试图在GADInterstitial中展示自己的viewDidLoad。这不是您应该展示GADInterstitial的时候。您需要GADInterstitial次加载广告。在viewDidLoad中展示广告也违反了AdMob TOS。您应该在应用程序的转换/操作期间展示GADInterstitial。您还应该实施GADInterstitial委托方法,以便了解广告无法加载的原因,广告实际加载时以及用户解散广告以便您可以继续在应用中转换广告。

答案 2 :(得分:0)

Google广告插页式目标C工作代码:

- (void)startAdInterstial
{
 self.interstitial = [[GADInterstitial alloc] initWithAdUnitID:FIREBASE_ADMOBID];;
    GADRequest *request = [GADRequest request];
    request.testDevices = @[kGADSimulatorID,@"7b5e0f6aad46c15f1e9ef2e6d3d381b7"];

    _interstitial.delegate = self;
    [self.interstitial loadRequest:request];

}

#pragma mark -  interstitial delegate

- (void)interstitialDidReceiveAd:(GADInterstitial *)ad
{
    [_interstitial presentFromRootViewController:[APPDELEGATE window].rootViewController];
}

- (void)interstitial:(GADInterstitial *)ad didFailToReceiveAdWithError:(GADRequestError *)error
{
    NSLog(@"error during full screen view %@",error);
}


- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial {

}

希望这会以其他方式帮助你。