Объявления для телефонов Windows не работают
Я пытаюсь интегрировать объявления в уже успешно развернутое приложение. Однако независимо от того, что я делаю, я не могу заставить рекламу работать. Я попытался использовать как версию кода, так и версию drag n 'drop gui. Ни один из которых я не могу работать.
Это то, что я вижу: когда он запустится, он может мигать для секунды секунды белого, где должно быть объявление, но тем не менее, нет добавок. Он распознает, что именно там я его размещаю, когда я помещаю его над кнопкой, кнопка становится незаметной. Все, что говорят, не появляется по умолчанию "реклама для Microsoft". Я установил SDK объявлений и с легкостью смог показать рекламу в другом проекте.
Что дает? Это очень простая страница, и я не могу понять, что не так. Также кажется, что я не могу разместить объявление ни на одной из других страниц... У меня есть Microsoft.Advertising.Mobile и Microsoft.Advertising. Mobile.UI включен в проект, и мой интернет работает (у меня одновременно открыт проект с рекламой и он работает)
<phone:PhoneApplicationPage
x:Class="AppName.AdPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
shell:SystemTray.IsVisible="True"
xmlns:my="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI">
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Margin="12,17,12,28">
<TextBlock x:Name="PageTitle" Text="Thank You!" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}" Width="334" />
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0" Height="569" VerticalAlignment="Top">
<Button Content="Ok" Height="72" HorizontalAlignment="Center" Margin="0,428,0,0" Name="button1" VerticalAlignment="Top" Width="160" Click="button1_Click" />
<my:AdControl AdUnitId="Image480_80" ApplicationId="test_client" Height="80" HorizontalAlignment="Left" Margin="-12,458,0,0" Name="adControl1" VerticalAlignment="Top" Width="480" />
</Grid>
</Grid>
</phone:PhoneApplicationPage>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Advertising.Mobile.UI;
using Microsoft.Advertising.Mobile;
namespace Stickey_Note_v._1
{
public partial class AdPage : PhoneApplicationPage
{
public AdPage()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}
}
}
Ответы
Ответ 1
У меня была такая же проблема, и я написал сообщение в блоге об этом. Вот важный материал:
Симптомы проблемы с SDK AdControl
кажутся довольно последовательными: страница загружается, элемент управления мерцает кратко, показывая намек на 1 пиксельный кадр, а затем, poof. Он рушится в ничто, оставляя только черную дыру.
Теоретически настройка AdControl
проста. В документации от Microsoft описываются основы:
- Загрузите и установите Microsoft Advertising SDK.
- Добавить ссылку на
Microsoft.Advertising.Mobile.UI
.
- Перетащите элемент управления на страницу в дизайнере Visual Studio.
- Задайте свойства
AdUnitId
и ApplicationId
либо для проверки значений, либо для реальных значений в реальном времени, которые вы можете получить в Microsoft pubCenter.
Но это не могло быть так просто. Я внимательно следил за документацией, но ничего не работало. Я даже не смог получить тестовые объявления, которые казались действительно странными. Я даже вернулся к старой версии моего приложения (yay source control!) И упал в новую .dll. Неудача.
Наконец, я нашел ключ в сообщении неясного форума.
В документации Microsoft не упоминается несколько важных деталей. Вы должны обратить особое внимание на следующее, если вы обновляете существующий проект до SDK Mango ad, так как я был:
- Вы должны указать высоту и ширину для
AdControl
. Если вы не укажете атрибуты Height
и Width
или установите их на auto
, это вызовет слезы разочарования. Я бы рекомендовал 80 пикселей в высоту и 480 пикселей в ширину, так же как и собственный размер объявлений, которые Microsoft обслуживает.
- Кажется, что вы не можете иметь две
AdControls
на одной странице или, по крайней мере, не в одном и том же родительском элементе. Второй рухнет. Возможно, так и было, но я обнаружил это, создавая свое демо-приложение и не хотел преследовать решение.
- Вы должны должны указать определенные возможности в вашем файле
WMAppManifest.xml
. Поскольку я обновлял свое приложение, у меня не было объявлено о новых объявленных возможностях. Тот, который вызывал все проблемы, был ID_CAP_IDENTITY_USER
. Для правильной работы элемента управления требуются следующие возможности:
<Capabilities>
<Capability Name="ID_CAP_IDENTITY_USER"/>
<Capability Name="ID_CAP_MEDIALIB"/>
<Capability Name="ID_CAP_NETWORKING"/>
<Capability Name="ID_CAP_PHONEDIALER"/>
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
</Capabilities>
Надеюсь, что это поможет!
Ответ 2
Я думаю, что ваша проблема может возникнуть (если вы не удалили ее для публикации здесь):
<my:AdControl AdUnitId="Image480_80" ApplicationId="test_client" Height="80" HorizontalAlignment="Left" Margin="-12,458,0,0" Name="adControl1" VerticalAlignment="Top" Width="480" />
</Grid>
Вы должны использовать AdUnitId и ApplicationId, которые вы получаете от pubCenter.
Ответ 3
Еще один пример для тех, кто все еще борется
xmlns:ads="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
<ads:AdControl Height="80"
Width="480"
AdUnitId="Image480_80"
ApplicationId="test_client" />
Как в примере. Объявление объявлений и пространство имен очень важно.
В моем проекте я только что вставил элемент adcontrol alt + enter для resharper, чтобы выполнить оставшуюся часть работы, которую он не сделал. Он заменяет объявления пользовательским интерфейсом, и не было компиляции ошибок, пока объявления не будут отображаться. Когда я сам объявил объявления и изменил пространство имен adcontrol. Все работало нормально.