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 определенно в порядке, но элемент управления не показывает никакой рекламы. Итак, попробовал пару вещей:
- Изменено действие сборки Settings.xaml для содержимого или ресурса. В обоих случаях - никакого эффекта.
- Удален AdMob из настроек - безрезультатно (якобы проблемный провайдер).
- Прилагается к событиям AdRotatorReady - запускается, но не предоставляет никаких подробностей.
Хуже всего то, что AdRotator не предоставляет никакого события "Ошибка", поэтому я не знаю, в чем проблема. Пытаясь выяснить, что происходит, я обнаружил что-то подозрительное: свойства IsLoaded и IsInitialised имеют значение false. Также PlatformAdProviderComponents не имеет элементов. Я тестирую все на устройстве WP8.1, а не на эмуляторе.
1 ответ
В конце концов я нашел ответы на свои проблемы.
Получается, что путь к настройкам был неверным. Мне пришлось удалить косую черту в начале (из /Assets/AdSettings/Settings.xaml в Assets/AdSettings/Settings.xaml)
Я не замечал этого раньше, но в AdRotator есть событие регистрации. Это просто статично, поэтому VS не помог мне выяснить, существует ли он. Чтобы вложить в журнал событие и отобразить сообщения в MessageBox, мне нужно было:
AdRotator.AdRotatorControl.Log + = message => Dispatcher.BeginInvoke (() => MessageBox.Show (message));
Файл настроек, кажется, работает нормально, когда его действие сборки установлено в "Содержимое".