Creazione di un'applicazione BlackBerry in cui viene visualizzata la pubblicità

Utilizzando l'API Advertising Service, è possibile integrare annunci pubblicitari nelle applicazioni senza dover scrivere grandi quantità di codice Java®.

Procedura consigliata: visualizzazione della pubblicità in un'applicazione

La modalità con la quale viene visualizzata la pubblicità nelle applicazioni può avere un impatto sulle prestazioni degli annunci pubblicitari.

Attenersi alle seguenti istruzioni:

  • Posizionare la pubblicità nelle schermate con il maggior traffico dell'applicazione. Ad esempio, posizionare un annuncio pubblicitario nella schermata di apertura dell'applicazione e non in una schermata che richiede molti clic per essere visualizzata.
  • Posizionare la pubblicità in punti strategici nelle schermate. Scegliere la parte superiore della schermata può contribuire a rendere più visibile un annuncio pubblicitario agli utenti BlackBerry®.
  • Inviare i metadati con le richieste di pubblicità. Maggiori sono le informazioni che le reti pubblicitarie dispongono sugli utenti finali dell'applicazione, più saranno mirati gli annunci pubblicitari che possono essere proposti.
  • Evitare di affollare il contenuto dell'applicazione con la pubblicità. La pubblicità deve saltare all'occhio in modo da poter invogliare gli utenti a interagire con essa.
  • Personalizzare l'area di visualizzazione in modo che si integri con il layout dell'interfaccia utente dell'applicazione.

Utilizzo della classe Banner per visualizzare la pubblicità

La classe Banner, inclusa nell'API di Advertising Service, consente di visualizzare la pubblicità nelle applicazioni. Se si crea un'istanza della classe Banner e si posiziona l'oggetto in una schermata, viene creato un segnaposto che invia periodicamente richieste di pubblicità e visualizza gli annunci pubblicitari restituiti.

Se si crea un oggetto Banner, è necessario passare il parametro placementId che Research In Motion ha assegnato all'applicazione. L'applicazione invia il parametro placementId al livello di mediazione di Advertising Service con ogni richiesta di pubblicità. Quando il livello di mediazione riceve una richiesta di pubblicità, il server valuta la richiesta in base alle statistiche associate all'ID posizione, invia la richiesta alla rete pubblicitaria appropriata e restituisce un annuncio pubblicitario all'applicazione. Un parametro placementId può essere utilizzato con più oggetti Banner nell'applicazione.

Nel costruttore dell'oggetto Banner, è possibile anche definire la frequenza con cui l'applicazione deve inviare le richieste di pubblicità, un oggetto Hashtable che contiene i metadati che l'applicazione invia con ogni richiesta di pubblicità e un'immagine segnaposto per l'area di visualizzazione.

Per visualizzare la pubblicità, l'API di Advertising Service crea un campo browser (browser.field per i dispositivi BlackBerry che utilizzano BlackBerry® Device Software 4.7.1 e versioni precedenti e browser.field2 per i dispositivi che utilizzano BlackBerry Device Software 5.0 e versioni successive) per visualizzare il contenuto dell'annuncio pubblicitario e inserisce il campo browser nell'oggetto Banner.

Per ulteriori informazioni sull'utilizzo della classe Banner, visitare il sito www.blackberry.com/developers/docs/advertising/1.0api/ e leggere il riferimento API di Advertising Service.

Ulteriori considerazioni

  • L'API di Advertising Service supporta fino a due oggetti Banner attivi alla volta in una schermata (uno solo con BlackBerry 6).
  • Se l'applicazione visualizza più di un annuncio pubblicitario (anche in schermate diverse), creare un oggetto Banner separato per il posizionamento di ogni annuncio. Il riutilizzo dello stesso oggetto Banner in più posizioni, può compromettere la visualizzazione della pubblicità.
  • Non tentare di rimuovere un oggetto Banner da una schermata senza rimuovere anche il gestore di campo che lo contiene, perché si potrebbero verificare problemi con gli altri oggetti Banner.
  • L'utilizzo di un oggetto FlowFieldManager per visualizzare oggetti Banner può compromettere la visualizzazione della pubblicità.

Impostazioni delle dimensioni dell'area di visualizzazione per la pubblicità

Quando si crea un oggetto Banner, è possibile specificare le dimensioni con cui visualizzare gli annunci pubblicitari nell'applicazione. Quando l'applicazione invia una richiesta di pubblicità, il livello di mediazione di Advertising Service restituisce un annuncio con le dimensioni specificate. Advertising Service supporta le seguenti dimensioni di annunci pubblicitari, espresse in pixel:
  • 320 x 53: Banner.MMA_SIZE_EXTRA_LARGE (richieste per la pubblicità con contenuti multimediali interattivi)
  • 216 x 36: Banner.MMA_SIZE_LARGE
  • 168 x 28: Banner.MMA_SIZE_MEDIUM
  • 120 x 20: Banner.MMA_SIZE_SMALL

A seconda della versione di BlackBerry® Device Software in cui verrà eseguita l'applicazione, potrebbe non essere necessario impostare le dimensioni dell'area di visualizzazione. Se l'applicazione viene eseguita in BlackBerry Device Software 5.0 o versione successiva e non si impostano le dimensioni nel codice dell'applicazione, l'oggetto Banner si ridimensiona automaticamente in base alle dimensioni dell'annuncio restituito dal livello di mediazione. Se si consente il ridimensionamento automatico dell'oggetto Banner, è necessario assicurarsi che il layout della schermata possa supportare dimensioni diverse.

Se l'applicazione viene eseguita in una versione di BlackBerry Device Software precedente alla 5.0, è necessario richiamare setMMASize() in un oggetto Banner. Tuttavia, se si richiama setMMASize(Banner.MMA_SIZE_AUTO), si consente all'oggetto Banner di ridimensionarsi automaticamente, poiché questo è il comportamento predefinito per le applicazioni che vengono eseguite in BlackBerry Device Software 5.0 o versioni successive.

Visualizzazione di un annuncio pubblicitario in una schermata

  1. Importare le classi e le interfacce richieste.
    import net.rimlib.blackberry.api.advertising.app.Banner;
    import net.rim.device.api.ui.container.MainScreen;
    import net.rim.device.api.ui.UiApplication;
  2. Creare il framework dell'applicazione estendendo la classe UiApplication. In main(), creare un'istanza della nuova classe e richiamare enterEventDispatcher() per abilitare l'applicazione a ricevere gli eventi. Nel costruttore dell'applicazione, richiamare pushScreen() per visualizzare la schermata personalizzata per l'applicazione. La classe AdDemoScreen, descritta nel passaggio 3, rappresenta la schermata in cui viene visualizzata la pubblicità.
    public class AdDemo extends UiApplication
    {
       public static void main(String[] args)
       {
          AdDemo theApp = new AdDemo();
          theApp.enterEventDispatcher();
       }
       public AdDemo()
       {
          pushScreen(new AdDemoScreen());
       }
    }
  3. Creare la schermata personalizzata estendendo la classe MainScreen.
    class AdDemoScreen extends MainScreen
    {
       public AdDemoScreen()
       {
       }
    }
  4. Nel costruttore della schermata, creare un'istanza della classe Banner, passare l'ID posizione dell'applicazione come parametro e, se non si desidera che l'applicazione invii i metadati con le richieste di annunci pubblicitari, impostare il secondo parametro su null. Richiamare setMMASize() e specificare le dimensioni per l'oggetto Banner. Aggiungere Banner alla schermata.
    Banner bannerAd = new Banner(placementId, null);            
    bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);            
    add(bannerAd);

    Il risultato dell'esecuzione del codice di esempio è riportato nella figura seguente.

Esempio di codice: visualizzazione di un annuncio pubblicitario in una schermata

import net.rimlib.blackberry.api.advertising.app.Banner;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.UiApplication;
public class AdDemo extends UiApplication
{
   public static void main(String[] args)
   {
      AdDemo theApp = new AdDemo();
      theApp.enterEventDispatcher();
   }
   public AdDemo()
   {
      pushScreen(new AdDemoScreen());
   }
}
class AdDemoScreen extends MainScreen
{
   public AdDemoScreen()
   {
      Banner bannerAd = new Banner(placementId, null);            
      bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);            
      add(bannerAd);
   }
}

Invio di metadati

Se si sceglie di inviare i metadati in forma anonima con le richieste di pubblicità, le reti pubblicitarie possono utilizzare tali informazioni (insieme alle informazioni che vengono inviate automaticamente, quali il modello di dispositivo BlackBerry®, la versione di BlackBerry® Device Software e il paese) per identificare gli utenti finali per il posizionamento della pubblicità. I metadati possono contenere informazioni in forma anonima sull'utente del dispositivo, quali l'età, il sesso e il reddito.

Per impostazione predefinita, il livello di mediazione di Advertising Service supporta i metadati seguenti:

Chiave metadati

Valori accettabili

age

Numero intero che rappresenta l'età dell'utente (ad esempio, "27")

gender

"male" o "female"

zip

Codice postale valido (ad esempio, "75039" o "N2L3X2")

marital

"single", "married" o "divorced"

income

Numero intero che rappresenta il reddito dell'utente (ad esempio, "50000")

lat

Latitudine valida espressa in gradi (ad esempio, "32.0678")

long

Longitudine valida espressa in gradi (ad esempio, "101.0890")

ethnicity

"caucasian", "asian", "hispanic", "african american", "native american" o "other"

search

Qualsiasi termine di ricerca che un utente immette nell'applicazione (a causa delle diverse origini di questo tipo di metadati, alcuni termini di ricerca potrebbero non essere di aiuto per restituire annunci pubblicitari più pertinenti)

Oltre a quando espresso sopra, molte delle rete pubblicitarie coinvolte supportano altri tipi di metadati. Se si richiede il supporto per altri tipi di metadati, è possibile inviare a Research In Motion l'insieme di tipi e valori di metadati che si desidera utilizzare. Ad esempio, è possibile fornire il supporto per le informazioni sugli interessi sportivi o le preferenze alimentari degli utenti. Quando il livello di mediazione riceve una richiesta di pubblicità, invia i metadati alle reti pubblicitarie in un formato supportato dalle rete.

Per consentire il supporto dei diversi tipi di metadati, inviare un messaggio e-mail a advertisingservice@blackberry.com.

Invio di metadati con una richiesta di pubblicità

  1. Importare le classi e le interfacce richieste.
    import net.rimlib.blackberry.api.advertising.app.Banner;
    import net.rim.device.api.ui.container.MainScreen;
    import net.rim.device.api.ui.UiApplication;
    import java.util.Hashtable;
  2. Creare il framework dell'applicazione estendendo la classe UiApplication. In main(), creare un'istanza della nuova classe e richiamare enterEventDispatcher() per abilitare l'applicazione a ricevere gli eventi. Nel costruttore dell'applicazione, richiamare pushScreen() per visualizzare la schermata personalizzata per l'applicazione. La classe AdDemoScreen, descritta nel passaggio 3, rappresenta la schermata in cui viene visualizzata la pubblicità.
    public class AdDemo extends UiApplication
    {
       public static void main(String[] args)
       {
          AdDemo theApp = new AdDemo();
          theApp.enterEventDispatcher();
       }
       public AdDemo()
       {
          pushScreen(new AdDemoScreen());
       }
    }
  3. Creare la schermata personalizzata estendendo la classe MainScreen.
    class AdDemoScreen extends MainScreen
    {
       public AdDemoScreen()
       {
       }
    }
  4. Nel costruttore della schermata, creare un'istanza della classe Hashtable e richiamare put() per ogni insieme di valori di metadati da aggiungere alla tabella hash.
    Hashtable metadata = new Hashtable();
    metadata.put("age", "21");
    metadata.put("gender", "female");
    metadata.put("income", "100000");
    metadata.put("lat", "36.164");
    metadata.put("lon", "-96.321");
    metadata.put("search", "car dealerships");
  5. Creare un'istanza della classe Banner e passare l'ID posizione dell'applicazione e l'oggetto Hashtable creati come parametri. Richiamare setMMASize() per specificare la dimensione dell'oggetto Banner e aggiungere Banner alla schermata.
    Banner bannerAd = new Banner(placementId, metadata);            
    bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);            
    add(bannerAd);

Esempio di codice: invio di metadati con una richiesta di pubblicità

import net.rimlib.blackberry.api.advertising.app.Banner;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.UiApplication;
import java.util.Hashtable;
public class AdDemo extends UiApplication
{
   public static void main(String[] args)
   {
      AdDemo theApp = new AdDemo();
      theApp.enterEventDispatcher();
   }
   public AdDemo()
   {
      pushScreen(new AdDemoScreen());
   }
}
class AdDemoScreen extends MainScreen
{
   public AdDemoScreen()
   {
      Hashtable metadata = new Hashtable();
      metadata.put("age", "21");
      metadata.put("gender", "female");
      metadata.put("income", "100000");
      metadata.put("lat", "36.164");
      metadata.put("lon", "-96.321");
      metadata.put("search", "car dealerships");
      Banner bannerAd = new Banner(placementId, metadata);            
      bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);            
      add(bannerAd);
   }
}

Personalizzazione dell'aspetto e del comportamento dell'area di visualizzazione della pubblicità

È possibile personalizzare l'aspetto e il comportamento dell'area di visualizzazione della pubblicità in modo che si integri nella struttura dell'interfaccia utente dell'applicazione.

Elemento

Descrizione

Effetto di transizione

Per impostazione predefinita, quando un'applicazione carica un nuovo annuncio pubblicitario o le transizioni tra gli annunci, l'applicazione visualizza un effetto di transizione di colore nero per far apparire o sparire gli annunci in dissolvenza. È possibile disattivare l'effetto di transizione richiamando enableBannerTransition(false). È possibile cambiare il colore dell'effetto di transizione richiamando setBannerTransitionColor() e specificando un colore supportato dalla classe Color in BlackBerry® Java® SDK. Ad esempio, per impostare il colore di transizione su blu, è possibile richiamare setBannerTransitionColor(Color.BLUE).

Comportamento di evidenziazione

Per impostazione predefinita, se un utente BlackBerry® seleziona un annuncio pubblicitario, l'applicazione visualizza un bordo blu attorno all'annuncio. È possibile cambiare il colore del bordo richiamando setBorderColor() e specificando un colore supportato dalla classe Color in BlackBerry Java SDK. Ad esempio, per impostare il bordo sul colore rosso, è possibile richiamare setBorderColor(Color.RED).

È possibile ignorare il comportamento di evidenziazione predefinito per un oggetto Banner impostando il comportamento di evidenziazione nel gestore di layout, impostando l'oggetto Banner in modo che erediti il nuovo comportamento. È possibile impedire all'API Advertising Service di gestire il comportamento di evidenziazione richiamando setFocusOverrideFlag(true).

Immagine segnaposto

Per impostazione predefinita, quando un'applicazione è in attesa di ricevere la pubblicità da una rete pubblicitaria, l'applicazione visualizza un'immagine segnaposto trasparente con un bordo. Se si desidera creare una propria immagine segnaposto, è possibile creare un oggetto Bitmap e passarlo come parametro quando si crea un oggetto Banner.

Se si crea una propria immagine segnaposto, verificare che abbia le stesse dimensioni della pubblicità che verrà ricevuta dall'applicazione.

Personalizzazione dell'area di visualizzazione per la pubblicità

Questa attività mostra in che modo è possibile cambiare l'immagine segnaposto, i colori del bordo evidenziato e l'effetto di transizione dell'area di visualizzazione della pubblicità.

Prima di iniziare: Creare un'immagine segnaposto personalizzata con le stesse dimensioni degli annunci pubblicitari che l'applicazione deve ricevere e memorizzare l'immagine con le risorse del progetto dell'applicazione BlackBerry®.
  1. Importare le classi e le interfacce richieste.
    import net.rimlib.blackberry.api.advertising.app.Banner;
    import net.rim.device.api.system.Bitmap;
    import net.rim.device.api.ui.Color;
    import net.rim.device.api.ui.container.MainScreen;
    import net.rim.device.api.ui.UiApplication;
  2. Creare il framework dell'applicazione estendendo la classe UiApplication. In main(), creare un'istanza della nuova classe e richiamare enterEventDispatcher() per abilitare l'applicazione a ricevere gli eventi. Nel costruttore dell'applicazione, richiamare pushScreen() per visualizzare la schermata personalizzata per l'applicazione. La classe AdDemoScreen, descritta nel passaggio 3, rappresenta la schermata in cui viene visualizzata la pubblicità.
    public class AdDemo extends UiApplication
    {
       public static void main(String[] args)
       {
          AdDemo theApp = new AdDemo();
          theApp.enterEventDispatcher();
       }
       public AdDemo()
       {
          pushScreen(new AdDemoScreen());
       }
    }
  3. Creare la schermata personalizzata estendendo la classe MainScreen.
    class AdDemoScreen extends MainScreen
    {
       public AdDemoScreen()
       {
       }
    }
  4. Nel costruttore della schermata, creare un'istanza della classe Bitmap richiamando getBitmapResource() e passando il nome dell'immagine segnaposto personalizzata come parametro.
    Bitmap customPlaceholder = Bitmap.getBitmapResource("placeholder.png");
  5. Creare un'istanza della classe Banner e passare l'ID posizione dell'applicazione, gli intervalli con cui l'applicazione effettua le richieste di pubblicità e l'oggetto Bitmap creati come parametri.
    Banner bannerAd = new Banner(placementId, null, 100000, customPlaceholder);
  6. Richiamare setBorderColor() e setBannerTransitionColor() per cambiare il colore del bordo e l'effetto di transizione.
    bannerAd.setBorderColor(Color.RED);
    bannerAd.setBannerTransitionColor(Color.RED);
  7. Richiamare setMMASize() e specificare le dimensioni per l'oggetto Banner. Aggiungere Banner alla schermata.
    bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);
    add(bannerAd);

    Il risultato dell'esecuzione del codice di esempio è riportato nella figura seguente.

    Il segnaposto personalizzato:

    Il segnaposto personalizzato si dissolve con un effetto di transizione di colore verde:

    L'annuncio pubblicitario appare in dissolvenza con un effetto di transizione di colore verde:

    L'annuncio pubblicitario con bordo evidenziato di colore verde:

Esempio di codice: personalizzazione dell'area di visualizzazione per la pubblicità

import net.rimlib.blackberry.api.advertising.app.Banner;
import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.UiApplication;
public class AdDemo extends UiApplication
{
   public static void main(String[] args)
   {
      AdDemo theApp = new AdDemo();
      theApp.enterEventDispatcher();
   }
   public AdDemo()
   {
      pushScreen(new AdDemoScreen());
   }
}
class AdDemoScreen extends MainScreen
{
   public AdDemoScreen()
   {
      Bitmap customPlaceholder = Bitmap.getBitmapResource("placeholder.png");
      Banner bannerAd = new Banner(placementId, null, 100000, customPlaceholder);
      bannerAd.setBorderColor(Color.RED);
      bannerAd.setBannerTransitionColor(Color.RED);
      bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);
      add(bannerAd);
   }
}

Posizionamento dell'area di visualizzazione della pubblicità

La posizione dell'oggetto Banner in una schermata può influenzare le prestazioni della pubblicità visualizzata nell'applicazione. Più la pubblicità è messa in evidenza in una schermata, maggiori saranno le probabilità che un utente BlackBerry® la legga e interagisca con essa. È possibile utilizzare i gestori di layout in BlackBerry® Java® SDK per organizzare la pubblicità insieme al contenuto dell'applicazione.

Evitare l'utilizzo di oggetti FlowFieldManager per gestire schermate che contengono pubblicità, poiché la classe FlowFieldManager non è progettata per visualizzare i campi nel browser.

Una strategia comune per il posizionamento della pubblicità è quella di inserire gli annunci nella parte superiore o inferiore della schermata. Se la schermata estende MainScreen, è possibile posizionare un oggetto Banner nella sezione del titolo della schermata in modo che la pubblicità venga sempre visualizzata in alto oppure nella sezione dello stato per visualizzare la pubblicità sempre in fondo nella schermata. Posizionando l'oggetto Banner in un elemento HorizontalFieldManager, prima di aggiungerlo alla schermata è possibile cambiare la posizione e l'aspetto dell'oggetto Banner applicando gli stili appropriati.

Esempio di codice: posizionamento della pubblicità in alto al centro nella schermata

L'esempio di codice seguente mostra come utilizzare i gestori di campo per visualizzare la pubblicità in alto al centro nella schermata.

class AdDemoScreen extends MainScreen
{
    public AdDemoScreen()
    {
        Banner bannerAd = new Banner(15380, null);
        bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);
        VerticalFieldManager vfm = new VerticalFieldManager
            (VerticalFieldManager.NO_VERTICAL_SCROLL 
            | VerticalFieldManager.NO_VERTICAL_SCROLLBAR 
            | VerticalFieldManager.USE_ALL_WIDTH);
        HorizontalFieldManager hfm = new HorizontalFieldManager
            (HorizontalFieldManager.FIELD_HCENTER 
            | HorizontalFieldManager.FIELD_VCENTER);
        hfm.add(bannerAd);
        vfm.add(hfm);
        add(vfm);
    }
}

Il risultato dell'esecuzione dell'esempio di codice è riportato nella figura seguente.

Nella figura è riportata una schermata con la pubblicità inserita in alto al centro nella schermata.

Per ulteriori informazioni sui gestori layout, vedere Guida a BlackBerry Java SDK per sviluppatori - Navigazione e interfaccia utente all'indirizzo www.blackberry.com/go/devguides.

Argomento successivo: Esecuzione di un'applicazione

Le informazioni sono state utili? Inviateci i vostri commenti.