ell*_*ayo 18 ads windows-phone windows-phone-8 windows-phone-8-emulator
我发现了一些针对类似问题的分散响应(主要是使用Windows Phone 7),但希望发布包含Windows Phone 8 Ads所有要求的答案.
我在Windows Phone 8中设置广告时遇到了一些问题.每次运行模拟器时,都会遇到应用程序运行但广告无法显示的问题.
该应用程序运行正常,但我注意到在输出控制台中记录了以下异常:
An exception of type 'Microsoft.Advertising.Shared.AdException' occurred in Microsoft.Advertising.Mobile.DLL and wasn't handled before a managed/native boundary
Run Code Online (Sandbox Code Playgroud)
广告在我正在开发的一个应用中显示正常但不是另一个,并且该例外不会显示任何有用的信息.
ell*_*ayo 49
我想出了如何捕获异常并查看实际问题是什么(我的Manifest文件中存在大量缺失的功能).为了尝试从AdControl捕获异常并获取我需要的数据,我在页面中添加了以下内容.
捕获广告控制错误
public MainPage()
{
InitializeComponent();
AdUnit.ErrorOccurred += AdUnit_ErrorOccurred;
}
void AdUnit_ErrorOccurred(object sender, Microsoft.Advertising.AdErrorEventArgs e)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
这告诉我,我错过了MEDIALIB权限和PHONEDIALER权限.我进行了一些测试,并确定任何投放广告的应用都需要以下权限:
必需的权限
ID_CAP_IDENTIFY_USER
ID_CAP_MEDIALIB_PHOTO
ID_CAP_NETWORKING
ID_CAP_PHONEDIALER
ID_CAP_WEBBROWSERCOMPONENT
Run Code Online (Sandbox Code Playgroud)
设置参数
在我看过的其他帖子中,确保将广告单元的宽度/高度正确设置为480/80也很重要,如果它是自动且没有最小尺寸,则广告将不会显示.
确保要在模拟器中查看它,您只能使用测试ApplicationId和AdUnitId.PubCenter凭据仅适用于已发布的应用程序.
<UI:AdControl x:Name="AdUnit" Height="80" Width="480"
AdUnitId="Image480_80" ApplicationId="test_client" />
Run Code Online (Sandbox Code Playgroud)
隐藏或交换失败/清空广告控制
如果您的AdControl失败,则会在广告中留下一个空白空间.您可以将其隐藏或与来自其他网络的广告进行交换.为此,请捕获如上所示的异常(AdUnit_ErrorOccurred)并添加以下内容:
隐藏:
AdUnit.Height = 0;
AdUnit.Visibility = System.Windows.Visibility.Collapsed;
Run Code Online (Sandbox Code Playgroud)
设置可见性本身不起作用,高度也必须设置为0.
交换广告:
您可以通过http://www.adduplex.com等服务显示备用广告栏,而不是隐藏AdControl .
| 归档时间: |
|
| 查看次数: |
8539 次 |
| 最近记录: |