在过去的几周里,我一直在测试一个新的 Windows Phone 8 应用程序。我还没有将它发布到商店,所以我只测试了我AdControls
的测试值(即“test_client”和“Image480_80”)。
我注意到前几天我一启动我的应用程序,我看到了AdControl
一秒钟,然后它就消失了。应用程序的界面上没有抛出错误,但在输出窗口中我可以看到以下异常:
Microsoft.Advertising.Mobile.DLL 中出现“Microsoft.Advertising.Shared.AdException”类型的异常,并且在托管/本机边界之前未处理
这是堆栈跟踪:
在 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)现在已经聘请了工程团队来调查问题。分辨率上没有 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);