18

Ho trovato alcune risposte sparse a problemi simili (principalmente con Windows Phone 7) ma volevo pubblicare una risposta che contenesse tutti i requisiti per Windows Phone 8 Ads.Impostazione di annunci in Windows Phone 8

Ho riscontrato alcuni problemi nell'impostazione di un annuncio in Windows Phone 8. Ogni volta che eseguivo l'emulatore mi sono imbattuto in un problema in cui l'app veniva eseguita ma l'annuncio non veniva visualizzato.

L'applicazione ha funzionato correttamente, ma ho notato nella console di output che la seguente eccezione è stato registrato:

An exception of type 'Microsoft.Advertising.Shared.AdException' occurred in Microsoft.Advertising.Mobile.DLL and wasn't handled before a managed/native boundary 

annunci presentarsi bene in una sola app sto sviluppando ma non un altro e l'eccezione non mostra alcuna utile informazione.

risposta

49

Ho scoperto come rilevare l'eccezione e vedere qual era il problema (che era una grande quantità di funzionalità mancanti nel mio file Manifest). Per provare a rilevare l'eccezione da AdControl e ottenere i dati necessari, ho aggiunto quanto segue alla mia pagina.

errori di controllo Cattura Ad

public MainPage() 
    { 
     InitializeComponent(); 

     AdUnit.ErrorOccurred += AdUnit_ErrorOccurred; 
    } 

    void AdUnit_ErrorOccurred(object sender, Microsoft.Advertising.AdErrorEventArgs e) 
    { 
     throw new NotImplementedException(); 
    } 

Il che mi ha dimostrato che mi mancava il permesso mediaLib e il permesso PHONEDIALER. Ho eseguito alcuni test e ha stabilito che qualsiasi applicazione che gestisce gli annunci richiederà le seguenti autorizzazioni:

Autorizzazioni necessarie

ID_CAP_IDENTIFY_USER 
ID_CAP_MEDIALIB_PHOTO 
ID_CAP_NETWORKING 
ID_CAP_PHONEDIALER 
ID_CAP_WEBBROWSERCOMPONENT 

Imposta parametri

Da altri post che ho letto E ' importante anche per assicurarti di impostare le unità pubblicitarie larghezza/altezza in modo corretto su 480/80, se è auto e non ha le demensioni minime, quindi l'annuncio non verrà mostrato.

Assicurarsi di visualizzarlo nell'emulatore è possibile utilizzare solo test ApplicationId and AdUnitId. Le credenziali di PubCenter funzionano solo in un'applicazione pubblicata.

<UI:AdControl x:Name="AdUnit" Height="80" Width="480" 
    AdUnitId="Image480_80" ApplicationId="test_client" /> 

Nascondere o Swap Failed/Vuoto annuncio Controlli

Se l'AdControl non lascia un grande spazio vuoto nel tuo annuncio. Puoi nasconderla o scambiarla con un annuncio proveniente da un'altra rete. Per fare questo, intercettare l'eccezione come indicato sopra (AdUnit_ErrorOccurred) e aggiunto il seguente:

da nascondere:

AdUnit.Height = 0; 
AdUnit.Visibility = System.Windows.Visibility.Collapsed; 

Impostazione della visibilità non ha funzionato da solo, l'altezza deve essere impostato su 0 pure.

Swap annuncio:

Invece di nascondere l'AdControl, si potrebbe mostrare un bar annuncio sostitutivo da un servizio come http://www.adduplex.com.

+4

Vorrei poterlo sorpassare due volte! –

+0

Ho seguito le tue linee guida e l'unità di aggiunta ha funzionato. Tuttavia, ora quando l'ho presentato al marketplace (ancora in fase di firma) sotto i dettagli posso vedere "Aggiungi unità - nessuno" che mi preoccupa un po '. È normale? – Booyaches

+1

@Booyaches Credo che sia per le unità pubblicitarie che hai impostato utilizzando il passaggio facoltativo "Aggiungi pubblicità in-app" quando invii la tua app. Questo passaggio non sembra essere ancora abilitato per gli account pubCenter esistenti, quindi la maggior parte delle persone non può utilizzarlo. I tuoi annunci dovrebbero comunque essere visualizzati correttamente, se possibile testarli su un dispositivo reale per assicurarti che le tue impostazioni siano corrette. – ellemayo