将Admob的插页式广告整合到Windows Phone 8 Monogame

时间:2014-05-26 06:35:00

标签: xna admob monogame

目前我使用XNA与Monogame Framework开发游戏。 为了货币化,我使用admob作为广告。

我的问题是,如何在特定时间内展示插页式广告。因此,当特定时间发生时,间距广告视图将被隐藏和显示,例如游戏结束等。因为我更喜欢在游戏已经结束时和显示分数之前展示广告,所以广告首先出现。

请指出我这样做的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

我还没有尝试使用适用于admob的Windows Phone 8 API,但我在Android游戏中使用了AdMob插页式广告。我想逻辑应该非常相似,所以我会在这里发布。

在我的游戏课程中,我添加了一个代理人,当我选择这样做时会启动一个功能来加载广告

public class Game1 : Microsoft.Xna.Framework.Game
{
    ...
    /// <summary>
    /// Event that fires popup ads during the game
    /// </summary>
    public Action OnLaunchAds;
    ...
}

然后,当我创建Android Activity时,在你的情况下应该是windows phone的程序条目(或任何生命周期),我有一个随时可以创建广告的功能。应该看起来像这样:

/// <summary>
/// Creates the Interstitial ad that will popup when the game calls
/// for it
/// </summary>
private void createPopup()
{
    InterstitialAd popup = AdHelper.CreatePopup(this, POPUP_ID);

    var listener = new AdMobHelper.AdTrigger();
    listener.loadFunctions += () => { if (popup.IsLoaded) { popup.Show(); } };

    popup.AdListener = listener;

    try
    {
        /// Create the request
        AdRequest.Builder request = new AdRequest.Builder();

        /// Add test devices
        request.AddTestDevice(AdRequest.DeviceIdEmulator);
        request.AddTestDevice(TEST_DEVICE_ID);

        popup.LoadAd(request.Build());
    }
    catch (Exception e) { e.ToString(); }
}

从这里开始,只需将主游戏中的委托分配给您刚刚创建的功能,就像这样:

game.OnLaunchAds = createPopup;

这样,您就可以选择展示广告的时间。当玩家连续三次死亡时,我会这样做。

你唯一可能会挂断的是AdRequest.Builder请求=新AdRequest.Builder();因为这是我为实现抽象类AdListener而制作的自定义类。这不是绝对必要的,但其目的是为广告首次加载提供一种方式,然后在加载完成时显示。它避免“显示”尚未加载的广告。如果你也需要帮助,我也可以在这里发布