AdRotator на Windows Phone не показывает рекламу

У меня есть приложение для Windows Phone 8.0. Я скачал AdRotator (v. 2.1.1) в NuGet и AdDuplex (это зависимость). Я скачал 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 не предоставляет никакого события "Ошибка", поэтому я не знаю, в чем проблема. Пытаясь выяснить, что происходит, я обнаружил что-то подозрительное: свойства IsLoaded и IsInitialised имеют значение false. Также PlatformAdProviderComponents не имеет элементов. Я тестирую все на устройстве WP8.1, а не на эмуляторе.

1 ответ

Решение

В конце концов я нашел ответы на свои проблемы.

  1. Получается, что путь к настройкам был неверным. Мне пришлось удалить косую черту в начале (из /Assets/AdSettings/Settings.xaml в Assets/AdSettings/Settings.xaml)

  2. Я не замечал этого раньше, но в AdRotator есть событие регистрации. Это просто статично, поэтому VS не помог мне выяснить, существует ли он. Чтобы вложить в журнал событие и отобразить сообщения в MessageBox, мне нужно было:

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

  3. Файл настроек, кажется, работает нормально, когда его действие сборки установлено в "Содержимое".

Другие вопросы по тегам