【问题标题】:Monotouch - iPhone load Admob interstitials staticallyMonotouch - iPhone 静态加载 Admob 插页式广告
【发布时间】:2013-11-05 14:54:06
【问题描述】:

我正在尝试使用静态类加载 Admob 插页式广告,以便在合适的时间显示它。

我创建了一个加载插页式广告的方法:

public static void GetInterstitial()
    {
        interstitial = new GADInterstitial ();
        interstitial.AdUnitID = "my_ad_unit_id";

        interstitial.LoadRequest (GADRequest.Request);

        interstitial.DidReceiveAd  += (sender, args) => {
            didInterstitialLoad = true;
        } ;

        interstitial.DidFailToReceiveAd += (object sender, GADInterstitialDidFailToReceiveAdWithErrorEventArgs e) => {
            didLoadInterFailed = true;
        };

        interstitial.DidDismissScreen += (sender, e) => {
            //TODO - Handle interstitial dismiss ();
        };
    }

然后在我的 ViewController 中:

if (isInterstitialLoaded) {
            interstitial.PresentFromRootViewController(this.NavigationController);
        }

这是第一次工作,但之后我在 interstitial.DidFailToReceiveAd 中收到以下错误:

不会发送请求,因为已使用插页式对象

有什么办法可以解决?

【问题讨论】:

    标签: ios iphone xamarin.ios admob


    【解决方案1】:

    当我尝试interstitial.PresentFromRootViewController(this.NavigationController); 时出现此错误

    解决方案是在关闭最后一个插页式广告后重新创建整个插页式广告。因此,在您的 DidDismissScreen 处理程序中,再次创建它:

        didInterstitialLoad = false;
    
        interstitial = new GADInterstitial ();
        interstitial.AdUnitID = "my_ad_unit_id";
    
        interstitial.LoadRequest (GADRequest.Request);
    
        interstitial.DidReceiveAd  += (sender, args) => {
            didInterstitialLoad = true;
        };
    

    嗨 :)

    【讨论】:

    • 一定有更好的办法不是吗?
    • 可能吧,不过好像没有什么不良影响。在最坏的情况下,我想它会产生一些垃圾,但是请求一个新广告也必须产生很多垃圾。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多