Advertising delle app Windows Phone
Mi sono scontrato con due problemi, secondo me piuttosto oscuri, mentre lavoravo sull’advertising di una mia app per Windows Phone. Piuttosto oscuri perchè su Internet ho trovato ben poco.
Parto dal presupposto che sappiate già di cosa parlo: controllo AdControl, registrazione su PubCenter, qualche concetto di XAML, capabilities di un’app Windows Phone, etc.
Il primo problema è il seguente: nonostante voi mettiate il controllo AdControl sulla vostra pagina XAML, quando mandate in esecuzione l’app esso improvvisamente scompare. Questo vale sia all’interno del simulatore, sia su un device vero e proprio. E continua a valere anche se impostate i valori delle seguenti proprietà:
- proprietà ApplicationId a “test_client”
- proprietà AdUnitId a “Image480_80”
Questo due valori permettono di testare il motore di advertising, senza realmente accedere ai banner pubblicitari veri e propri. A design-time vedete il vostro bel controllo, ma se mandate in esecuzione sparisce tutto nel giro di un decimo di secondo. Attenzione: non sto dicendo che non vedete alcun banner: è proprio il controllo che sparisce dalla Page. Beh, se questa cosa capita anche a voi, fate una bella cosa: sottoscrivete l’evento ErrorOccured nello XAML e nel code-behind della pagina potete semplicemente scrivere (vado a memoria):
MessageBox.Show(e.Error.ToString())
Nel mio caso, mancavano alcune capabilities necessarie per far funzionare l’advertising, ovvero:
- ID_CAP_PHONEDIALER
- ID_CAP_IDENTITY_USER
- ID_CAP_MEDIALIB
- ID_CAP_WEBBROWSERCOMPONENT
Se non mettete queste capabilities nella vostra app, l’advertising non andrà mai.
L’altro problema, invece, è ancora più oscuro, almeno fintantochè non trovate e capite la soluzione. Sempre grazie all’evento ErrorOccured citato prima, potreste ottenere una AdException con pressapoco un errore simile a “An unexpected error occured during response processing (Name: ECN)”. Non state a sbatterci la testa: impostate la lingua del telefono su inglese e riprovate. Se funziona, significa che le categorie impostate sulla unità di annunci non hanno banner per la lingua italiana. Quindi o tornare su PubCenter e provate a cambiare categorie, oppure boh! L’importante è che avete capito è che non avete un errore nel codice o nello XAML della vostra app, ma è semplicemente qualcosa che riguarda la configurazione del vostro advertising server-side. A meno che, chiaramente, non dobbiate cambiare ApplicationId o AdUnitId nello XAML.