Windows Phone 8 AdControl AdException?

时间:2013-01-20 20:25:54

标签: windows-phone-8 windows-phone advertising

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

我注意到有一天,一旦我启动应用程序,我就会看到AdControl一秒钟,然后它就消失了。应用程序界面上没有引发任何错误,但在“输出”窗口中,我可以看到以下异常:

  

“Microsoft.Advertising.Shared.AdException”类型的例外   发生在Microsoft.Advertising.Mobile.DLL中,之前没有处理过   托管/本地边界

这是堆栈跟踪:

  

在   Microsoft.Advertising.Shared.AdvertisementFactory.CreateFromResponse(字符串   响应,AdDownloadCompleteCallback adDownloadCompleteCallback)\ r \ n
  在Microsoft.Advertising.Shared.AdPlacement.CreateAdvertisement(Byte []   字节)\ r \ n at   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)现在已经让工程团队调查这个问题。分辨率上没有ETA,但他们说使用我的实际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);

3 个答案:

答案 0 :(得分:1)

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

我看到这个例外的原因是没有要展示的广告(即您指定的广告选择范围太窄而且没有可用的匹配),但在这种情况下应该如此当你查看错误时要清楚。

答案 1 :(得分:1)

显然,这个:

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

需要这样(注意test_client中的小写“t”):

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

谁会想到?

答案 2 :(得分:0)

我有同样的问题。我的WP7.5应用程序中的广告可在模拟器和手机中使用。当我将我的应用程序升级到WP8时,广告就会停止运行。所以,我在我的应用中添加了第二个广告提供商控件,并且如果MS广告控件出错,它会隐藏并显示来自其他公司的第二个广告。