2012-03-17 17 views
12

Intento integrar anuncios en una aplicación desplegada que ya ha tenido éxito. Sin embargo, no importa lo que haga, parece que no puedo hacer que los anuncios funcionen. He intentado usar tanto la versión de código como la versión de drag n 'drop gui. Ninguno de los cuales puedo llegar a trabajar.Los anuncios de Windows no funcionan

Esto es lo que veo: Cuando se pone en marcha puede parpadear durante una fracción de segundo blanco, donde se supone que el anuncio de ser, pero, no obstante, no se añade. Reconoce que es donde lo coloco, cuando lo coloco sobre un botón, el botón deja de ser cliqueable. Dicho todo esto, no aparece ninguna imagen predeterminada de "publicidad de Microsoft". Instalé el SDK del anuncio y pude mostrar anuncios fácilmente en otro proyecto con facilidad.

Lo que da? Esta es una página muy simple y no puedo entender qué está mal. También parece que no puedo colocar un anuncio en ninguna de las otras páginas ... Tengo los anuncios de Microsoft.Advertising.Mobile y Microsoft.Advertising. Mobile.UI incluido en el proyecto y mi internet está trabajando (no tengo un proyecto abierto al mismo tiempo con anuncios y funciona)

<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)); 
     } 
    } 
} 

Respuesta

20

que tenían el mismo problema y escribió un blog post al respecto. Aquí está la materia importante:

Los síntomas de un problema del SDK AdControl parece ser bastante consistente: Las cargas de la página, el control parpadea brevemente, mostrando el toque de un marco de 1 pixel, y luego, puf. Se derrumba en la nada, dejando solo un agujero negro de dispair.

En teoría, la creación de la AdControl es simple. El documentation from Microsoft describe los elementos básicos:

  • descargar e instalar el Microsoft Advertising SDK.
  • Agregue una referencia a Microsoft.Advertising.Mobile.UI.
  • Arrastre el control a la página en el diseñador de Visual Studio.
  • Establecer las propiedades AdUnitId y ApplicationId a cualquiera de los valores de prueba o valores reales en vivo, que se puede obtener de Microsoft pubCenter.

Pero no podía ser tan fácil. Seguí la documentación cuidadosamente, pero nada funcionaba. Ni siquiera podía conseguir anuncios de prueba para aparecer, lo que parecía realmente extraño. Incluso volví a una versión anterior de mi aplicación (¡yay, control de fuente!) Y dejé caer el nuevo .dll. Fracaso.

Finalmente, encontré una pista en un obscure forum post.

La documentación de Microsoft omite mencionar varios detalles importantes. Es necesario prestar especial atención a lo siguiente si va a actualizar un proyecto existente para el anuncio del SDK de mango, como yo:

  • debe especificar una altura y anchura para el AdControl.Si no se especifican los atributos Height y Width, o si se establecen en auto, se producirán lágrimas de frustración. Recomendaría 80 píxeles de alto y 480 píxeles de ancho, ya que es el tamaño nativo de los anuncios que sirve Microsoft.
  • Parece que no puede tener dos AdControls en la misma página, o al menos no en el mismo elemento principal. El segundo se colapsará. Puede haber una forma de evitar esto, pero lo descubrí mientras construía mi aplicación de demostración y no me interesaba buscar una solución.
  • Debe debe especificar ciertas capacidades en su archivo WMAppManifest.xml. Desde que estaba actualizando mi aplicación, no tenía declaradas algunas de las capacidades más nuevas. El que causaba todos los problemas era ID_CAP_IDENTITY_USER. Las siguientes capacidades son todos los necesarios para el control de la función correctamente:
<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> 

espero que ayude!

+1

Usted señor, son más que simplemente excepcionalmente útil :) Resultó que no lo hice incluir lol ir figura –

+1

Hah, agradable. :) Contento de estar en servicio. –

+0

Si desea enlazar datos. https://gist.github.com/1927879 –

2

Creo que su problema podría venir de (si no lo hiciste t quitarlo por publicar aquí):

<my:AdControl AdUnitId="Image480_80" ApplicationId="test_client" Height="80" HorizontalAlignment="Left" Margin="-12,458,0,0" Name="adControl1" VerticalAlignment="Top" Width="480" /> 
     </Grid> 

usted tiene que utilizar AdUnitId y Id de Aplicación, que obtiene del pubCenter.

+1

Sí, he recibido las credenciales, pero para las pruebas, las credenciales allí (deberían) mostrar una imagen predeterminada en lugar de un anuncio real –

0

Uno más piensa tener en cuenta para los que siguen luchando

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" /> 

Como en el ejemplo. Declarar anuncios y el espacio de nombres es muy importante. En mi proyecto, simplemente inserté la parte de control de anuncios alt + enter para reafilar para hacer el resto del trabajo que él no hizo. Reemplaza los anuncios con la interfaz de usuario y no había compilación de errores que los anuncios no mostraban. Cuando declare los anuncios yo mismo y cambie el espacio de nombres de control de anuncios. Todo funcionó bien

Cuestiones relacionadas