我在最后一刻决定在试用版应用程序的各个页面上显示广告。
下面是我添加到页面底部的xaml:
<StackPanel Grid.Row="1" x:Name="ad_stack" Margin="0,0,0,4">
<UI:AdControl ApplicationId="test_client" AdUnitId="Image480_80"
HorizontalAlignment="Left" Height="80" VerticalAlignment="Top" Width="480"
ErrorOccurred="AdControl_ErrorOccurred"/>
</StackPanel>
在codeehind中,我有这样的功能,以捕捉ms-pubCenter问题,例如在一个区域中没有广告,在这种情况下,显示adMOb:
private void AdControl_ErrorOccurred(object sender, Microsoft.Advertising.AdErrorEventArgs e)
{
AdControl ad = (AdControl)sender;
StackPanel grd = (StackPanel)ad.Parent;
System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
{
AdView bannerAd = new AdView
{
Format = AdFormats.Banner,
AdUnitID = "myidhere"
};
AdRequest adRequest = new AdRequest();
grd.Children.Add(bannerAd);
bannerAd.LoadAd(adRequest);
});
System.Diagnostics.Debug.WriteLine(e.Error.Message);
}
我的主要问题是。。当用户购买应用程序时,因此我的应用程序的IsTrial布尔值为假,
如何完全隐藏广告,不仅在视觉上,而且使MS或谷歌都不会从中记录任何印象。
如果我简单地将adControl设置为visibility.collapsed,这将关闭MS的广告(我是新手,所以猜测),但谷歌的adMob可能会显示。
参考我上面发布的XAML,我可以简单地将名为"ad_stack"的StackPanel设置为Visibility.collapsed吗?或者这会导致pubCenter和/或adMob仍然收到印象吗?
我会检查两个广告提供商的文档。但是,如果不能更改Visibility
,只需将它们从树中完全删除(ad_stack.Children.Clear()
),它们就会被卸载。或者,更好的是,在你知道用户是试用用户之前,甚至不要将它们添加到树中。