Ответ 1
Я понял, как поймать исключение и посмотреть, что на самом деле проблема (что было большим количеством недостающих возможностей в моем файле манифеста). Чтобы попытаться поймать исключение из AdControl и получить нужные мне данные, я добавил следующее на свою страницу.
Ошибки контроля URL-адресов
public MainPage()
{
InitializeComponent();
AdUnit.ErrorOccurred += AdUnit_ErrorOccurred;
}
void AdUnit_ErrorOccurred(object sender, Microsoft.Advertising.AdErrorEventArgs e)
{
throw new NotImplementedException();
}
Который показал мне, что мне не хватает разрешения MEDIALIB и разрешения PHONEDIALER. Я провел некоторое тестирование и решил, что для любого приложения, которое запускает объявления, потребуются следующие разрешения:
Необходимые разрешения
ID_CAP_IDENTIFY_USER
ID_CAP_MEDIALIB_PHOTO
ID_CAP_NETWORKING
ID_CAP_PHONEDIALER
ID_CAP_WEBBROWSERCOMPONENT
Установить параметры
Из других сообщений, которые я прочитал, также важно убедиться, что вы правильно устанавливаете ширину/высоту рекламных блоков на 480/80, если они автоматические и не имеют минимальных разрешений, то объявление не будет отображаться.
Убедитесь, что для просмотра в эмуляторе вы можете использовать test ApplicationId и AdUnitId. Учетные данные PubCenter будут работать только в опубликованном приложении.
<UI:AdControl x:Name="AdUnit" Height="80" Width="480"
AdUnitId="Image480_80" ApplicationId="test_client" />
Скрыть или сменить Failed/Empty Ad Controls
Если ваш AdControl не удался, он оставляет большое пустое место в объявлении. Вы можете либо скрыть его, либо обменять его с помощью объявления из другой сети. Для этого перехватите исключение, как показано выше (AdUnit_ErrorOccurred
), и добавьте следующее:
Скрыть:
AdUnit.Height = 0;
AdUnit.Visibility = System.Windows.Visibility.Collapsed;
Настройка видимости не срабатывала сама по себе, высота также должна быть установлена на 0.
Сменить объявление:
Вместо того, чтобы скрывать AdControl, вы можете показывать альтернативную рекламную панель из службы, например http://www.adduplex.com.