Windows Phone 上的 AdRotator 不显示广告

AdRotator on Windows Phone doesn't display ads

我有一个 Windows Phone 8.0 应用程序。我已经在 NuGet 和 AdDuplex(它的依赖项)中下载了 AdRotator(2.1.1 版)。我已经下载了 AdMob SDK 并在我的项目中引用了它。然后我将控件添加到 MainPage.xaml:

<adRotator:AdRotatorControl 
    x:Name="AdRotatorControl"
    BorderBrush="Aquamarine"
    BorderThickness="2"
    Height="90"
    Grid.Row="2"
    LocalSettingsLocation="/Assets/AdSettings/Settings.xaml"
    AutoStartAds="True" />

注意:边框和高度只是因为我想确保控件显示在正确的位置。好像是。

然后我将设置文件放入 /Assets/AdSettings/Settings.xaml:

<?xml version="1.0" encoding="utf-8"?>
<AdSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <CultureDescriptors CultureName="">
        <AdMob AppId="XXXXXX" Probability="50" AdOrder="1" />
        <AdDuplex AppId="XXXXX" Probability="50" AdOrder="2" />
    </CultureDescriptors>
</AdSettings>

我的 AppId 肯定没问题,但控件不显示任何广告。所以尝试了几件事:

  1. 已将 Settings.xaml 构建操作更改为内容或资源。在这两种情况下 - 都没有效果。
  2. 从设置中删除了 AdMob - 没有效果(据称是有问题的提供商)。
  3. 附加到 AdRotatorReady 事件 - 它触发但不提供任何详细信息。

最糟糕的是 AdRotator 没有提供任何 "Error" 事件,所以我不知道问题出在哪里。为了弄清楚发生了什么,我发现了一些可疑的东西:IsLoaded 和 IsInitialised 属性都设置为 false。 PlatformAdProviderComponents 也没有项目。我正在 WP8.1 设备上测试所有内容,而不是模拟器。

最终我找到了问题的答案。

  1. 事实证明,设置路径无效。我不得不删除开头的斜杠(从 /Assets/AdSettings/Settings.xaml 到 Assets/AdSettings/Settings.xaml)

  2. 之前没注意到,AdRotator 有记录事件。它只是静态的,所以 VS 没有帮助我发现它的存在。要附加到 Log 事件并在 MessageBox 中显示消息,我必须:

    AdRotator.AdRotatorControl.Log += 消息 => Dispatcher.BeginInvoke(() => MessageBox.Show(消息));

  3. 设置文件在构建操作设置为 "Content" 时似乎工作正常。