【问题标题】:Windows Phone 8 AdControl AdException?Windows Phone 8 AdControl AdException?
【发布时间】:2013-01-20 20:25:53
【问题描述】:

过去几周我一直在测试新的 Windows Phone 8 应用。我还没有将它发布到商店,所以我只用测试值(即“test_client”和“Image480_80”)测试了我的AdControls

我注意到前几天我一启动我的应用程序,我就看到AdControl 一秒钟,然后它就消失了。应用程序的界面上没有抛出错误,但在输出窗口中我可以看到以下异常:

“Microsoft.Advertising.Shared.AdException”类型的异常 发生在 Microsoft.Advertising.Mobile.DLL 中,之前未处理 托管/本地边界

这是堆栈跟踪:

在 Microsoft.Advertising.Shared.AdvertisementFactory.CreateFromResponse(字符串 响应,AdDownloadCompleteCallback adDownloadCompleteCallback)\r\n
在 Microsoft.Advertising.Shared.AdPlacement.CreateAdvertisement(字节 [] 字节)\r\n 在 Microsoft.Advertising.Shared.AdPlacement.AdRequestComplete(IWebRequestWrapper 请求)

这是我的代码,它将AdControl 添加到我的Grid

    AdControl adControl = new AdControl("test_client", "Image480_80", true);

    adControl.Width = 480;
    adControl.Height = 80;

    adControl.ErrorOccurred += AdUnit_ErrorOccurred;

    MyGrid.Children.Add(adControl);

    Grid.SetRow(adControl, 4);
    Grid.SetColumn(adControl, 4);

一直直到几天前工作正常,所以我不确定代码是否需要更改,但我还有什么可以检查的吗?我看到一篇文章说要确保我的 WMAppManifest.xml 文件中具有所需的功能。这是我目前所拥有的:

<Capabilities>
  <Capability Name="ID_CAP_NETWORKING" />
  <Capability Name="ID_CAP_MEDIALIB_AUDIO" />
  <Capability Name="ID_CAP_MEDIALIB_PLAYBACK" />
  <Capability Name="ID_CAP_SENSORS" />
  <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
  <Capability Name="ID_CAP_IDENTITY_USER" />
  <Capability Name="ID_CAP_MEDIALIB_PHOTO" />
  <Capability Name="ID_CAP_PHONEDIALER" />
</Capabilities>

有没有人知道我可以检查的其他内容 - 或者知道我可能做错了什么?我真的很难过。如果我可以从我的 Exception 对象中发布任何其他内容(除了上面的堆栈跟踪),请告诉我,尽管我没有看到任何暗示可能存在问题的内容。

更新:

我还可以确认,使用我的实际 ApplicationID 和 AdUnitID 代替测试值会发生完全相同的事情。有其他人经历过吗?

更新 2:

我一直在与 PubCenter 支持部门来回发送电子邮件,他们显然能够复制问题,因为帮助我的分析师(支持分析师 II)现在已经聘请了工程团队来调查问题。分辨率上没有预计到达时间,但他们说在实际设备上进行测试时,使用我的实际 ApplicationID 和 AdUnitID应该工作(尽管我已经确认它在我的模拟器中不起作用)。

更新 3:

我仍在等待 PubCenter 支持的回复,但我现在已经确认,如果我使用真实的 ApplicationID 和 AdUnitID,广告可以成功运行。以前,我认为这不起作用,但它似乎只是在模拟器中运行时不起作用 - 在设备本身上,它们工作正常。所以只有测试广告似乎不起作用,既然是这样,我不太担心。

更新 4(解决方案):

好的 - 经过数周与 PubCenter 支持的来回反复,我终于找到了解决方案,尽管我很确定这是他们的问题,现在已经解决了。我创建了一个非常简单的测试解决方案,展示了我发送给他们的问题,他们最终得出以下结论:

AdControl adControl = new AdControl("Test_client", "Image480_80", true);

需要这样:

AdControl adControl = new AdControl("test_client", "Image480_80", true);

【问题讨论】:

    标签: windows-phone-8 windows-phone ads


    【解决方案1】:

    要查找更具体的错误信息,您可以检查传递给您已注册的AdControl.ErrorOccurred eventAdErrorEventArgs。如果从该信息中仍不清楚,请将错误/错误代码添加到您的问题中。

    我看到此异常出现的原因是没有广告可显示(即您指定的广告选择范围太窄,并且没有可用的匹配广告),但在这种情况下应该查看错误时要清楚。

    【讨论】:

    • 谢谢。我可以在AdErrorEventArgs 中找到的唯一线索是“消息”在调用广告源(名称:CNTX)期间发生意外错误。”为了澄清一下,因为我只是在测试,所以没有广告可以显示影响我?以前,当它工作时,我总是会看到完全相同的“Microsoft Advertising”广告。
    • FWIW - AdErrorEventArgs 的 ErrorCode 属性显示为“ServerSideError”。您认为这是 PubCenter 的问题吗?我已经看到其他关于它的帖子偶尔发生,但这是最近几天的每次。另外,我认为这与我选择的广告没有任何关系,因为我只是使用测试值。
    • @lhan16 同意,这不是一个很有帮助的消息:-/ 您能否尝试使用 Debug/Exceptions/Common Language Runtime Exceptions/Thrown 检查进行调试,看看抛出的实际底层异常是什么?关于你的第二个问题,我看到运行测试模式时没有可用广告的错误,但它可能与网络连接不良有关。
    • 我不确定你所说的“调试/异常/公共语言运行时异常/抛出检查”是什么意思 - 你能告诉我如何打开/检查它们吗?
    • @lhan16 在 Visual Studio 中,转到“调试”菜单,选择“异常”并选中“公共语言运行时异常”行上的“抛出”复选框。既然您提到它,我不确定 Visual Studio 的哪个版本具有该功能。如果找不到,请告诉我。
    【解决方案2】:

    显然,这是:

    AdControl adControl = new AdControl("Test_client", "Image480_80", true);
    

    必须是这个(注意test_client中的小写“t”):

    AdControl adControl = new AdControl("test_client", "Image480_80", true);
    

    谁会想到?

    【讨论】:

      【解决方案3】:

      我也有同样的问题。我的 WP7.5 应用程序中的广告在模拟器和手机中都可以使用。当我将我的应用程序升级到 WP8 时,广告停止工作。因此,我在我的应用程序中添加了第二个广告提供商控件,并使其在 MS 广告控件出现错误时隐藏并显示来自不同公司的第二个广告。

      【讨论】:

      • 请问第二个提供者是什么?另外,你在美国吗?如果是“位置”问题,我还没有收到回复。
      • 第二个提供者是 NAX。是的,我在美国。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多