Не работает реклама Windows Phone - PullRequest
12 голосов
/ 17 марта 2012

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

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

Ответы [ 3 ]

20 голосов
/ 17 марта 2012

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

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

Теоретически, установка AdControl проста.Документация от Microsoft описывает основы:

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

Но это не может быть так просто.Я внимательно следил за документацией, но ничего не получалось.Я даже не смог показать тестовую рекламу, которая казалась действительно странной.Я даже вернулся к более старой версии моего приложения (да, контроль над исходниками!) И зашел в новую .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 голосов
/ 17 марта 2012

Я думаю, что ваша проблема может возникнуть (если вы не удалили ее для публикации здесь):

 <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 .

0 голосов
/ 09 июня 2013

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

  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. Все работало нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...