Création d'une application BlackBerry qui affiche une publicité

En utilisant l'API Advertising Service, vous pouvez intégrer des publicités à vos applications sans écrire une grande quantité de code Java®.

Méthode recommandée : affichage de publicités dans une application

La façon dont vous affichez les publicités dans votre application peut avoir une incidence sur leurs performances.

Prenez en compte les recommandations suivantes :

  • Placez les publicités sur les écrans qui reçoivent le trafic le plus important dans votre application (par exemple, sur l'écran qui s'affiche à l'ouverture de l'application plutôt que sur un écran qui apparaît après une succession de clics).
  • Placez les publicités à des emplacements bien visibles sur vos écrans. Les publicités insérées en haut de l'écran peuvent être mieux repérées par les utilisateurs de terminaux BlackBerry®.
  • Envoyez des métadonnées avec les demandes de publicité. Plus les réseaux publicitaires disposent d'informations sur le public cible de votre application, plus les publicités pourront être efficaces.
  • Évitez d'encombrer les publicités avec les autres contenus de votre application. Les publicités doivent être clairement visibles, de manière à faciliter l'interaction de l'utilisateur avec celles-ci.
  • Personnalisez la zone d'affichage des publicités en fonction de l'aspect de l'interface utilisateur de votre application.

Utilisation de la classe Banner pour afficher une annonce

La classe Banner, qui est incluse dans l'API Advertising Service, vous permet d'afficher des publicités dans vos applications. Lorsque vous créez une instance de la classe Banner et placez l'objet sur un écran, vous créez en fait un espace réservé qui envoie les demandes de publicités périodiques et affiche les publicités qui sont renvoyées.

Lorsque vous créez un objet Banner vous devez transmettre le paramètre placementId que Research In Motion vous attribue pour votre application. Votre application envoie le paramètre placementId à la couche de médiation Advertising Service avec chaque demande de publicité. Lorsque la couche de médiation reçoit une demande de publicité, le serveur évalue la demande en fonction des statistiques associées à l'ID d'emplacement, envoie la demande au réseau publicitaire approprié et renvoie une publicité à votre application. Un placementId peut être utilisé avec plusieurs objets Banner dans votre application.

Dans le constructeur pour un objet Banner, vous pouvez également définir la fréquence à laquelle l'application fait les demandes de publicités, un objet Hashtable qui contient les métadonnées que l'application envoie avec chaque demande de publicités et une image de substitution pour la zone d'affichage.

Pour afficher la publicité, l'API Advertising Service crée un champ de navigateur (browser.field pour les terminaux BlackBerry qui exécutent BlackBerry® Device Software version 4.7.1 et antérieure et browser.field2 pour les terminaux qui exécutent BlackBerry Device Software version 5.0 et ultérieure) pour afficher le contenu de la publicité et insérer le champ du navigateur dans l'objet Banner.

Pour plus d'informations à propos de l'utilisation de la classe Banner, consultez www.blackberry.com/developers/docs/advertising/1.0api/ pour voir la référence de l'API Advertising Service .

Autres remarques

  • L'API Advertising Service peut prendre en charge jusqu'à deux objets actifs Banner sur un écran en même temps (un seul pour BlackBerry 6).
  • Si votre application affiche plusieurs publicités (même sur des écrans différents), vous devez créer un objet séparé Banner pour chaque emplacement d'annonce. La réutilisation d'un objet Banner dans plusieurs emplacements peut entraîner un affichage incorrect des publicités.
  • Vous ne devez pas tenter de supprimer un objet Banner d'un écran sans supprimer également le gestionnaire de champs le contenant, car cela peut entraîner des problèmes avec les autres objets Banner.
  • L'utilisation d'un objet FlowFieldManager pour afficher des objets Banner peut entraîner un affichage incorrect des publicités.

Définir la taille de la zone d'affichage d'une publicité

Lorsque vous créez un objet Banner, vous pouvez spécifier la taille des publicités que vous souhaitez que votre application affiche. Lorsque votre application envoie une demande de publicité, la couche de médiation Advertising Service renvoie une publicité dont la taille correspond à celle que vous avez spécifiée. Advertising Service prend en charge les tailles suivantes de publicités, en pixels :
  • 320 x 53 : Banner.MMA_SIZE_EXTRA_LARGE (taille requise pour les annonces Rich Media)
  • 216 x 36 : Banner.MMA_SIZE_LARGE
  • 168 x 28 : Banner.MMA_SIZE_MEDIUM
  • 120 x 20 : Banner.MMA_SIZE_SMALL

En fonction de la version de BlackBerry® Device Software sur laquelle votre application est conçue pour s'exécuter, vous pouvez ou non devoir définir la taille de la zone d'affichage. Si votre application s'exécute sur BlackBerry Device Software 5.0 ou version ultérieure, et que vous ne définissez pas la taille dans le code de l'application, l'objet Banner se redimensionne automatiquement pour correspondre à la taille de la publicité que la couche de médiation renvoie. Si vous permettez à l'objet Banner de se redimensionner automatiquement, il est recommandé de vérifier que la mise en page de votre écran peut prendre en charge chacune des tailles différentes.

Si votre application s'exécute sur une version antérieure à BlackBerry Device Software 5.0, vous devez alors appeler setMMASize() sur un objet Banner. Cependant, l'appel de setMMASize(Banner.MMA_SIZE_AUTO) permet à l'objet Banner de se redimensionner automatiquement. Il s'agit du comportement par défaut dans les applications s'exécutant sur BlackBerry Device Software 5.0 ou version ultérieure.

Afficher une publicité sur un écran

  1. Importez les classes et les interfaces requises.
    import net.rimlib.blackberry.api.advertising.app.Banner;
    import net.rim.device.api.ui.container.MainScreen;
    import net.rim.device.api.ui.UiApplication;
  2. Créez le cadre d'application en développant la classe UiApplication. Dans main(), créez une instance de la nouvelle classe et appelez enterEventDispatcher() pour activer l'application et recevoir des événements. Dans le constructeur d'application, appelez pushScreen() pour afficher l'écran personnalisé de l'application. La classe AdDemoScreen, décrite à l'étape 3, représente l'écran sur lequel apparaît l'annonce.
    public class AdDemo extends UiApplication
    {
       public static void main(String[] args)
       {
          AdDemo theApp = new AdDemo();
          theApp.enterEventDispatcher();
       }
       public AdDemo()
       {
          pushScreen(new AdDemoScreen());
       }
    }
  3. Créez l'écran personnalisé en développant la classe MainScreen.
    class AdDemoScreen extends MainScreen
    {
       public AdDemoScreen()
       {
       }
    }
  4. Dans le constructeur d'écran, créez une instance de la classe Banner, transmettez l'ID d'emplacement de votre application comme paramètre, et, si vous ne souhaitez pas que votre application envoie des métadonnées avec les demandes de publicité, définissez le deuxième paramètre sur null. Appelez setMMASize() et spécifiez une taille pour l'objet Banner. Ajoutez l'objet Banner à l'écran.
    Banner bannerAd = new Banner(placementId, null);            
    bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);            
    add(bannerAd);

    Vous pouvez voir les résultats de l'exécution de l'échantillon de code ci-dessus dans le graphique suivant :

Échantillon de code : affichage d'une publicité sur un écran

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

Envoi de métadonnées

Si vous choisissez d'envoyer des métadonnées anonymes avec les demandes de publicités, les réseaux publicitaires peuvent utiliser ces informations (de même que les informations automatiquement envoyées, telles que le modèle de terminal BlackBerry®, la version de BlackBerry® Device Software et le pays) pour identifier un public cible afin de positionner la publicité. Les métadonnées peuvent contenir des informations anonymes concernant un utilisateur de terminal, telles que son âge, son sexe et ses revenus.

Par défaut, la couche de médiation Advertising Service prend en charge les métadonnées suivantes :

Catégorie de métadonnées

Valeurs acceptables

age

Un nombre entier représentant l'âge de l'utilisateur (par exemple, « 27 »)

gender

« male » ou « female »

zip

Un code postal valide (par exemple, « 75039 »)

marital

« single », « married » ou « divorced »

income

Un nombre entier représentant les revenus de l'utilisateur (par exemple, « 50000 »)

lat

Une latitude valide mesurée en degrés (par exemple, « 32.0678 »)

long

Une longitude valide mesurée en degrés (par exemple, « 101.0890 »)

ethnicity

« caucasian », « asian », « hispanic », « african american », « native american » ou « other »

search

Tout terme de recherche qu'un utilisateur saisit dans votre application (en raison de la source incohérente de ce type de métadonnées, certains termes de recherche peuvent en réalité ne pas être utiles pour l'affichage de publicités plus pertinentes)

Outre les éléments mentionnés ci-dessus, un grand nombre de réseaux publicitaires participants prennent en charge d'autres types de métadonnées. Si vous souhaitez que d'autres types de métadonnées soient pris en charge, vous pouvez envoyer l'ensemble des types et des valeurs de métadonnées que vous voulez utiliser à Research In Motion. Par exemple, il se peut que vous souhaitiez offrir la prise en charge d'informations concernant les intérêts sportifs ou les restaurants préférés des utilisateurs. Lorsque la couche de médiation reçoit une demande de publicité, elle envoie les métadonnées aux réseaux publicitaires dans des formats que les réseaux prennent en charge.

Pour activer la prise en charge des différents types de métadonnées, envoyez un e-mail à advertisingservice@blackberry.com.

Envoyer des métadonnées avec une demande de publicité

  1. Importez les classes et les interfaces requises.
    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. Créez le cadre d'application en développant la classe UiApplication. Dans main(), créez une instance de la nouvelle classe et appelez enterEventDispatcher() pour activer l'application et recevoir des événements. Dans le constructeur d'application, appelez pushScreen() pour afficher l'écran personnalisé de l'application. La classe AdDemoScreen, décrite à l'étape 3, représente l'écran sur lequel apparaît l'annonce.
    public class AdDemo extends UiApplication
    {
       public static void main(String[] args)
       {
          AdDemo theApp = new AdDemo();
          theApp.enterEventDispatcher();
       }
       public AdDemo()
       {
          pushScreen(new AdDemoScreen());
       }
    }
  3. Créez l'écran personnalisé en développant la classe MainScreen.
    class AdDemoScreen extends MainScreen
    {
       public AdDemoScreen()
       {
       }
    }
  4. Dans le constructeur d'écran, créez une instance de la classe Hashtable et appelez put() pour chaque ensemble de valeurs de métadonnées que vous voulez ajouter à la table de cryptage.
    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. Créez une instance de la classe Banner et transmettez l'ID d'emplacement de votre application et l'objet Hashtable que vous avez créé comme paramètres. Appelez setMMASize() pour spécifier une taille pour l'objet Banner et ajoutez Banner à l'écran.
    Banner bannerAd = new Banner(placementId, metadata);            
    bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);            
    add(bannerAd);

Échantillon de code : envoi de métadonnées avec une demande de publicité

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

Personnalisation de l'apparence et du comportement de la zone d'affichage d'une publicité

Vous pouvez personnaliser l'apparence et le comportement de la zone d'affichage d'une publicité pour qu'elle s'adapte à la conception de l'interface utilisateur de votre application.

Article

Description

Effet de transition

Par défaut, lorsqu'une application charge une nouvelle publicité ou des transitions entre publicités, elle affiche un effet de transition noir qui permet de faire apparaître les publicités en fondu (ouverture et fermeture). Vous pouvez désactiver l'effet de transition en appelant enableBannerTransition(false). Vous pouvez modifier la couleur de l'effet de transition en appelant setBannerTransitionColor() et en spécifiant une couleur prise en charge par la classe Color dans BlackBerry® Java® SDK. Par exemple, pour définir la couleur de transition sur bleu, vous pouvez appeler setBannerTransitionColor(Color.BLUE).

Comportement de la cible

Par défaut, lorsqu'un utilisateur de terminal BlackBerry® sélectionne une publicité, l'application affiche une bordure bleue autour de la publicité. Vous pouvez modifier la couleur de la bordure en appelant setBorderColor() et en spécifiant une couleur prise en charge par la classe Color dans BlackBerry Java SDK. Par exemple, pour définir la couleur de la bordure sur rouge, vous pouvez appeler setBorderColor(Color.RED).

Vous pouvez ignorer le comportement de la cible par défaut d'un objet Banner en définissant le comportement de la cible dans le gestionnaire de disposition la contenant et en forçant l'objet Banner à hériter du nouveau comportement. Vous pouvez empêcher l'API Advertising Service de traiter le comportement de la cible en appelant setFocusOverrideFlag(true).

Image de substitution

Par défaut, lorsqu'une application attend de recevoir une publicité d'un réseau publicitaire, l'application affiche une image de substitution transparente dotée d'une bordure. Si vous voulez créer votre propre image de substitution, vous pouvez créer un objet Bitmap et le transmettre comme paramètre lorsque vous créez un objet Banner.

Si vous créez votre propre image de substitution, vérifiez qu'elle a les mêmes dimensions que les publicités que votre application reçoit.

Personnaliser la zone d'affichage pour une publicité

Cette tâche montre comment vous pouvez modifier l'image de substitution, les couleurs de la bordure cible et l'effet de transition de la zone d'affichage d'une publicité.

Avant de commencer : créez une image de substitution personnalisée ayant les mêmes dimensions que les publicités que votre application reçoit et stockez l'image avec les ressources de votre projet d'application BlackBerry®.
  1. Importez les classes et les interfaces requises.
    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. Créez le cadre d'application en développant la classe UiApplication. Dans main(), créez une instance de la nouvelle classe et appelez enterEventDispatcher() pour activer l'application et recevoir des événements. Dans le constructeur d'application, appelez pushScreen() pour afficher l'écran personnalisé de l'application. La classe AdDemoScreen, décrite à l'étape 3, représente l'écran sur lequel apparaît l'annonce.
    public class AdDemo extends UiApplication
    {
       public static void main(String[] args)
       {
          AdDemo theApp = new AdDemo();
          theApp.enterEventDispatcher();
       }
       public AdDemo()
       {
          pushScreen(new AdDemoScreen());
       }
    }
  3. Créez l'écran personnalisé en développant la classe MainScreen.
    class AdDemoScreen extends MainScreen
    {
       public AdDemoScreen()
       {
       }
    }
  4. Dans le constructeur d'écran, créez une instance de la classe Bitmap en appelant getBitmapResource() et en transmettant le nom de l'image de substitution personnalisée comme paramètre.
    Bitmap customPlaceholder = Bitmap.getBitmapResource("placeholder.png");
  5. Créez une instance de la classe Banner et transmettez l'ID d'emplacement de votre application, les intervalles auxquels l'application fait les demandes de publicité et l'objet Bitmap que vous avez créé comme paramètres.
    Banner bannerAd = new Banner(placementId, null, 100000, customPlaceholder);
  6. Appelez setBorderColor() et setBannerTransitionColor() pour modifier la couleur de la bordure et l'effet de transition.
    bannerAd.setBorderColor(Color.RED);
    bannerAd.setBannerTransitionColor(Color.RED);
  7. Appelez setMMASize() et spécifiez une taille pour l'objet Banner. Ajoutez l'objet Banner à l'écran.
    bannerAd.setMMASize(Banner.MMA_SIZE_EXTRA_LARGE);
    add(bannerAd);

    Vous pouvez voir les résultats de l'exécution de l'échantillon de code ci-dessus dans les graphiques suivants.

    Image de substitution personnalisée :

    Image de substitution personnalisée en fondu avec effet de transition vert :

    Publicité en fondu avec effet de transition vert :

    Publicité avec bordure cible verte :

Échantillon de code : personnalisation de la zone d'affichage d'une publicité

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

Positionnement de la zone d'affichage d'une publicité

La façon dont vous disposez un objet Banner sur un écran peut affecter les performances des publicités que votre application affiche. Plus les publicités sont visibles sur l'écran, plus il peut être facile pour les utilisateurs de terminaux BlackBerry® de consulter et d'interagir avec ces dernières. Vous pouvez utiliser les gestionnaires de disposition dans BlackBerry® Java® SDK pour organiser les publicités au sein du reste du contenu de votre application.

Nous vous recommandons d'éviter l'utilisation d'objets FlowFieldManager pour gérer des écrans qui contiennent des publicités car la classe FlowFieldManager n'est pas conçue pour afficher des champs de navigateur.

Une méthode courante pour disposer les publicités est de placer ces dernières en haut ou en bas de l'écran. Si votre écran développe MainScreen, vous pouvez placer un objet Banner dans la zone de titre de l'écran pour que la publicité apparaisse toujours en haut, ou dans la zone d'état pour que la publicité apparaissent toujours en bas. En plaçant votre objet Banner dans un objet HorizontalFieldManager avant de l'ajouter à l'écran, vous pouvez modifier la position et l'apparence de l'objet Banner en appliquant les styles appropriés.

Échantillon de code : positionnement centré d'une publicité en haut de l'écran

L'échantillon de code suivant indique comment utiliser les gestionnaires de champ pour afficher une publicité centrée en haut de l'écran.

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

Vous pouvez voir les résultats de l'exécution de l'échantillon de code ci-dessus dans le graphique suivant :

Ce graphique représente un écran qui contient une publicité centrée en haut de l'écran.

Pour plus d'informations à propos des gestionnaires de disposition, consultez le guide BlackBerry Java SDK UI and Navigation Development Guide (BlackBerry Java SDK - Guide de développement - Interface utilisateur et navigation) à l'adresse : www.blackberry.com/go/devguides.


Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.