c# – 如何将AdControl与多个AdUnitIds一起使用?

是否可以在具有多个AdUnitIds的 Windows 8.1应用程序中使用一个AdControl?我在网上从不同来源的方法跟踪AdControl有点工作,但现在我发现(在向AdControls ErrorOccurred事件添加事件处理程序后)错误代码是NoAdAvailable,这意味着对于所选类别没有正在投放广告(我在德国).我的AdControl的代码如下所示:
AdControl adControl = new AdControl
                    {
                        ApplicationId = "a1b2c3d4-1a2a-1234-1a2a-1a2b3c4d5e6f",AdUnitId = "123456",HorizontalAlignment = HorizontalAlignment.Left,Height = 250,VerticalAlignment = VerticalAlignment.Top,Width = 250
                    };
        adControl.ErrorOccurred += adControl_ErrorOccurred;

根据Microsoft pubCenter中显示的信息,当我为广告添加多个类别时,ApplicationId保持不变(如预期),但AdUnitId会发生变化.如何使用来自多个类别的广告,是否有简单的解决方案?或者我是否必须在更改类别时尝试实例化AdControl(因此AdAditId,直到我不再获得异常,然后使用那个?最好的方法是什么?

更新

一旦设置好,您就不能更改AdUnitId,因此这不起作用.

更新2

我仍然不确定是否所有设置都正确 – 当我启动我的应用程序(从Windows App Store安装)时,我总是收到“NoAdsAvailable”错误.应该显示广告的类别是“游戏”,因此错误消息表明(对于我的区域),该类别中没有广告.当我使用不同的广告应用时,他们会展示必须来自游戏类别的广告,所以我担心我可能没有正确设置所有内容.

有没有人有想法?

解决方法

您需要使用逻辑来决定在任何给定时刻使用哪个AdUnitId.这包括为实时应用程序选择不同类别的不同值,同时为开发版本选择AdUnitId和ApplicationId(见 here)的测试模式值之一.这是为了防止点击欺诈.

This page显示了如何使用编译器预处理器指令来确保仅在应用程序的调试版本中使用测试模式值.

被警告!如果您经常尝试在调试应用中使用实时广告ID,尤其是在您点击/按广告时,您的广告ID可能会被暂停.

对于网站:

如果您的网站涉及人们定期点击链接,我可能只会在每次加载页面生成不同的AdUnitId.

但是,如果您有一个预计会长时间静态查看的页面,我会使用AJAX拉入一个只有AdControl的“页面”,然后随机选择或轮换AdUnitId,确保新广告是每隔几分钟服务一次.

请注意,这不是以过高的速度完成的,并且广告会清楚地显示用户,以避免任何点击欺诈尝试的印象.

对于商店应用程序:(道歉,我的大脑失误:)

对于商店应用,只需在长计时器上使用下一个AdUnitId重新创建新的AdControl,然后添加控件.隐藏旧控件,然后正确处理它.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...