无法使WP 8.1 AdControl参与用户点击

时间:2015-03-29 18:49:52

标签: c# windows-runtime windows-phone-8.1 ads monogame

我有一个适用于Windows / WP 8.1的通用应用程序项目,我试图让广告在两个平台上都能正常运行。在我的控件的OnApplyTemplate函数中,我有一个#ifdef来动态创建Windows或WP的AdControl。该代码在Windows上运行良好,在WP上,广告显示得很好;但是当我点击它时,什么也没发生。我尝试用动态按钮替换代码以确保其他内容不会拦截点击,而按钮工作正常。有什么想法吗?

    protected override void OnApplyTemplate()
    {
        base.OnApplyTemplate();

        var baseGrid = (Grid)GetTemplateChild("_BaseGrid");
        var bannerGrid = (Grid)GetTemplateChild("_BannerGrid");

#if WINDOWS_APP
        bannerGrid.Height = 450;

        // Create the ad
        var ad = new Microsoft.Advertising.WinRT.UI.AdControl()
        {
            ApplicationId = "0b7b7910-f56d-477c-b0e9-3def577b6359",
            AdUnitId = "10056707",
            Height = 90,
            Width = 728,
            Visibility = AdVisibility,
            VerticalAlignment = VerticalAlignment.Top,
            HorizontalAlignment = HorizontalAlignment.Center
        };
        baseGrid.Children.Add(ad);

#else
        // Set the margins appropriately for WP
        bannerGrid.Margin = new Thickness(0, 55, 0, 50);

        /* This works just fine!
        var button = new Button()
        {
            Content = "Try This!",
            Height = 50,
            Width = 320,
            VerticalAlignment = VerticalAlignment.Top,
            HorizontalAlignment = HorizontalAlignment.Center
        };
        button.Click += (object sender, RoutedEventArgs args) =>
        {
            Nova.Utilities.Logger.Info("User tapped on button.");
        };
        baseGrid.Children.Add(button);*/

        // Create the ads
        var ad = new Microsoft.Advertising.Mobile.UI.AdControl("f854ae91-1c0e-469c-8387-6c90ef8fa6a2", "11388154", true)
        {
            Height = 50,
            Width = 320,
            Visibility = AdVisibility,
            IsEnabled = true,
            VerticalAlignment = VerticalAlignment.Top,
            HorizontalAlignment = HorizontalAlignment.Center
        };
        ad.IsEngagedChanged += (object sender, RoutedEventArgs args) =>
            {
                Nova.Utilities.Logger.Info("User tapped on Ad.");
            };
        baseGrid.Children.Add(ad);
#endif
    }

1 个答案:

答案 0 :(得分:2)

所以看起来这可能仍然是系统中的错误:

  

这是我们系统中的一个错误。我们仍在积极致力于修复   并制定发布计划。但这是我找到的解决方法。顺便说一句,   此解决方法尚未在我们的团队中进行全面测试。

https://social.msdn.microsoft.com/Forums/en-US/053fe091-8ffb-4d6f-a5ca-f39cff4af618/ads-not-responding-to-tap-or-click?forum=aiaforwinphone

根据评论,一些挖掘表明它可能与正确设置当前Context没有正确相关:

  

MonoGame人也遇到了新的微软问题   适用于Windows 8.1的广告SDK。他们不得不做出改变   广告再次运作。也许prime31 June插件需要类似的更新?   我也在prime31支持论坛上提问。

     

https://monogame.codeplex.com/discussions/467336

     

此外,我发现其他人发布了Unity Windows Store 8.1游戏   在广告显示后遭受冻结问题   有时。我猜他们没有注意到它。示例:(第一个广告   弹出为我冻结游戏图形):

     

http://apps.microsoft.com/windows/e...mulator/04eea1ba-8792-437f-a7c2-faec620da6bf#

以下链接似乎在将其设置为网格方面取得了一些成功:

  

添加宽度和高度以及背景并放置它   您希望广告在哪里展示。如果未设置宽度和高度   如果洪水泛滥,请为你的网格提供背景颜色。

https://monogame.codeplex.com/discussions/467336

我可以在这个问题上找到最佳答案,似乎没有人能够以任何其他方式解决它。