2012-03-17 3 views
12

Я пытаюсь интегрировать объявления в уже успешно развернутое приложение. Однако независимо от того, что я делаю, я не могу заставить рекламу работать. Я попытался использовать как версию кода, так и версию drag n 'drop gui. Ни один из которых я не могу работать.Объявления для телефонов Windows не работают

Это то, что я вижу: когда он запустится, он может мигать на долю секунды белого, где должно быть объявление, но тем не менее, нет добавок. Он распознает, что именно там я его размещаю, когда я помещаю его над кнопкой, кнопка становится незаметной. Все, что говорят, не появляется по умолчанию «реклама для 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)); 
     } 
    } 
} 

ответ

20

У меня была та же проблема и написал об этом blog post. Вот важные вещи:

Симптомов проблемы с SDK, AdControl, кажется, довольно последовательно: загружается страница, управление кратко мерцает, показывая намек на 1 пиксель кадр а, а затем, пуфа. Он рушится в ничто, оставляя только черную дыру.

В теории, настройка AdControl проста. documentation from Microsoft изложены основы:

  • Скачать и установить Microsoft Advertising SDK.
  • Добавить ссылку на Microsoft.Advertising.Mobile.UI.
  • Перетащите элемент управления на страницу в дизайнере Visual Studio.
  • Задайте свойства AdUnitId и ApplicationId для проверки значений или фактических значений в реальном времени, которые вы можете получить в Microsoft pubCenter.

Но это не может быть так просто. Я внимательно следил за документацией, но ничего не работало. Я даже не смог получить тестовые объявления, которые казались действительно странными. Я даже вернулся к старой версии моего приложения (yay source control!) И упал в новую .dll. Провал.

Наконец-то я нашел ключ в obscure forum post.

В документации Microsoft не упоминается несколько важных деталей. Вы должны обратить особое внимание на следующее, если вы хотите обновить существующий проект в рекламном SDK Манго, как я:

  • Вы должны указать высоту и ширину для 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> 

Надежда, что помогает!

+1

Вы, сэр, больше, чем просто исключительно полезны :) Оказалось, что я не сделал include lol go figure –

+1

Hah, nice. :) Рад помочь. –

+0

Если вы хотите привязать данные. https://gist.github.com/1927879 –

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.

+1

Да, у меня есть учетные данные, но для тестирования учетные данные там будут (должны) отображать изображение по умолчанию вместо фактического объявления –

0

более думать отметить для тех, кто еще борется один

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 + введите для resharper, чтобы выполнить оставшуюся часть работы, которую он не сделал. Он заменяет объявления пользовательским интерфейсом, и не было компиляции ошибок, пока объявления не будут отображаться. Когда я сам объявил объявления и изменил пространство имен adcontrol. Все работало нормально.

Смежные вопросы