Erstellen einer BlackBerry Application, die eine Anzeige anzeigt
Mithilfe der Advertising Service-API können Sie Anzeigen in Ihre Anwendungen integrieren, ohne eine große Menge von Java®-Code zu schreiben.
Bewährtes Verfahren: Schalten von Anzeigen in einer Anwendung
Die Art, wie Sie Anzeigen in Ihrer Anwendung zeigen, kann Auswirkungen auf die Leistung der Anzeigen haben.
Befolgen Sie die folgenden Anweisungen:
- Platzieren Sie Anzeigen auf den Bildschirmen, die den meisten Verkehr für Ihre Anwendung aufweisen (Platzieren Sie z. B. eine Anzeige auf einem Bildschirm, der angezeigt wird, wenn eine Anwendung geöffnet wird, und nicht auf einem Bildschirm, der mehrere Klicks erfordert, um dorthin zu navigieren).
- Platzieren Sie Anzeigen an auffallenden Stellen auf Ihren Bildschirmen. Platzieren Sie Anzeigen oben auf dem Bildschirm, um sie für BlackBerry®-Gerätebenutzer besser sichtbar zu machen.
- Senden Sie Metadaten mit Anzeigenanforderungen. Je mehr Informationen die Anzeigennetzwerke zur Zielgruppe für Ihre Anwendung haben, desto effektiver können die Anzeigen sein.
- Vermeiden Sie Anzeigen, die den übrigen Inhalt Ihrer Anwendung verdrängen. Anzeigen sollten deutlich sichtbar sein, damit die Interaktion mit ihnen einfacher ist.
- Passen Sie den Bildschirmbereich für Anzeigen an, damit diese der Gestaltung Ihrer Benutzeroberfläche entsprechen.
Verwenden der Bannerklasse zum Schalten von Anzeigen
Die Banner-Klasse, die in der Advertising Service-API enthalten ist, lässt zu, dass Sie Anzeigen in Ihren Anwendungen schalten. Wenn Sie eine Instanz der Banner-Klasse erstellen und das Objekt auf einem Bildschirm platzieren, erstellen Sie im Grunde einen Platzhalter, der regelmäßig Anzeigenanforderungen sendet und die zurückgegebenen Anzeigen anzeigt.
Wenn Sie ein Banner-Objekt erstellen, müssen Sie den placementId-Parameter weitergeben, den Research In Motion Ihnen für Ihre Anwendung zuweist. Ihre Anwendung sendet den placementId-Parameter mit jeder Anzeigenanforderung an den Advertising Service-Vermittlungslayer. Nachdem der Vermittlungslayer eine Anzeigenanforderung empfängt, evaluiert der Server die Anforderung basierend auf den Statistiken, die mit der Platzierungs-ID verknüpft sind, sendet dem entsprechenden Anzeigennetzwerk die Anforderung und gibt eine Anzeige zu Ihrer Anwendung zurück. Ein placementId kann mit mehreren Banner-Objekten in Ihrer Anwendung verwendet werden.
Im Konstruktor für ein Banner-Objekt können Sie außerdem Folgendes definieren: die Häufigkeit, mit der die Anwendung Anzeigenanforderungen stellt, ein Hashtable-Objekt, das die Metadaten enthält, die die Anwendung mit jeder Anzeigenanforderung sendet, und ein Platzhalterbild für den Bildschirmbereich.
Um die Anzeige zu anzeigen, erstellt die Advertising Service-API ein Browserfeld (browser.field für BlackBerry-Geräte, auf denen die BlackBerry® Device Software 4.7.1 und früher ausgeführt wird, und browser.field2 für Geräte, auf denen die BlackBerry Device Software 5.0 und später ausgeführt wird), das Inhalte der Anzeige ausgibt, und fügt das Browserfeld in das Banner-Objekt ein.
Weitere Informationen zum Verwenden der Banner-Klasse finden Sie unter www.blackberry.com/developers/docs/advertising/1.0api im Advertising Service API-Referenzhandbuch.
Zusätzliche Überlegungen
- Die Advertising Service-API kann bis zu zwei aktive Banner-Objekte auf einem Bildschirm gleichzeitig unterstützen (nur eines für BlackBerry 6).
- Wenn Ihre Anwendung mehr als eine Anzeige anzeigt (selbst wenn dies auf verschiedenen Bildschirmen geschieht), sollten Sie ein separates Banner-Objekt für jede Anzeigenplatzierung erstellen. Das Wiederverwenden eines Banner-Objekts an mehreren Orten kann dazu führen, dass Anzeigen falsch angezeigt werden.
- Sie sollten nicht versuchen, ein Banner-Objekt von einem Bildschirm zu entfernen, ohne den enthaltenden Feld-Manager ebenso zu entfernen, da dies zu Problemen mit anderen Banner-Objekten führen kann.
- Das Verwenden eines FlowFieldManager-Objekts, um Banner-Objekte anzuzeigen, kann dazu führen, dass Anzeigen falsch angezeigt werden.
Festlegen der Größe des Bildschirmsbereichs für eine Anzeige
Abhängig von der BlackBerry® Device Software Version, für die Ihre Anwendung gedacht ist, müssen Sie die Größe des Bildschirmbereichs festlegen oder nicht. Wenn Ihre Anwendung mit BlackBerry Device Software 5.0 oder höher ausgeführt wird und Sie keine Größe im Anwendungscode festlegen, ändert das Banner-Objekt selbst automatisch seine Größe, sodass sie der vom Vermittlungslayer zurückgegebenen Anzeige entspricht. Wenn Sie zulassen, dass das Banner-Objekt selbst automatisch seine Größe ändert, sollten Sie sicherstellen, dass das Layout Ihres Bildschirms jede der verschiedenen Größen unterstützen kann.
Wenn Ihre Anwendung mit einer BlackBerry Device Software Version vor 5.0 ausgeführt wird, müssen Sie setMMASize() auf einem Banner-Objekt aufrufen. Allerdings ermöglicht das Aufrufen von setMMASize(Banner.MMA_SIZE_AUTO) es dem Banner-Objekt, selbst automatisch seine Größe zu ändern, da dies das Standardverhalten in Anwendungen ist, die unter BlackBerry Device Software 5.0 oder höher ausgeführt werden.
Codebeispiel: Anzeigen einer Anzeige auf einem Bildschirm
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);
}
}
Senden von Metadaten
Wenn Sie auswählen, anonyme Metadaten mit Anzeigenanforderungen zu senden, können Anzeigennetzwerke diese Informationen (zusammen mit Informationen, die automatisch gesendet werden, wie z. B. das BlackBerry®-Gerätemodell, die BlackBerry® Device Software Version und das Land) verwenden, um eine Zielgruppe für eine Anzeigenplatzierung zu identifizieren. Die Metadaten können anonyme Informationen zu einem Gerätebenutzer, wie z. B. das Alter des Benutzers, das Geschlecht und das Einkommen, enthalten.
| Metadatenschlüssel |
Akzeptable Werte |
|---|---|
| age |
Eine Ganzzahl, die das Alter des Benutzers darstellt (z. B. "27") |
| gender |
"male" oder "female" |
| zip |
Eine gültige Postleitzahl (z. B. "75039" oder "N2L3X2") |
| marital |
"single", "married" oder "divorced" |
| income |
Eine Ganzzahl, die das Alter des Benutzers darstellt (z. B. "50000") |
| lat |
Ein gültiger Breitengrad (z. B. "32.0678") |
| long |
Ein gültiger Längengrad (z. B. "101.0890") |
| ethnicity |
"caucasian", "asian", "hispanic", "african american", "native american" oder "other" |
| search |
Irgendein Suchbegriff, den ein Benutzer in Ihrer Anwendung eingibt (da die Quelle dieser Art von Metadaten inkonsistent ist, könnten einige Suchbegriffe nicht wirklich nützlich sein für das Zurückgeben relevanterer Anzeigen) |
Zusätzlich zu dem oben Erwähnten unterstützen viele der teilnehmenden Anzeigennetzwerke zusätzliche Arten von Metadaten. Wenn Sie Unterstützung für zusätzliche Arten von Metadaten benötigen, können Sie Research In Motion den Satz von Metadatenarten und -werten senden, die Sie verwenden wollen. Zum Beispiel möchten Sie vielleicht Unterstützung für Informationen zu den Sportinteressen oder Essenpräferenzen von Benutzern bereitstellen. Nachdem der Vermittlunglayer eine Anzeigenanforderung empfängt, sendet er den Anzeigennetzwerken die Metadaten in Formaten, die die Netzwerke verstehen.
Um Unterstützung für verschiedene Arten von Metadaten zu erhalten, senden Sie eine E-Mail an advertisingservice@blackberry.com.
Codebeispiel: Senden von Metadaten mit einer Anzeigenanforderung
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);
}
}
Anpassen des Aussehens und Verhaltens des Bildschirmbereichs für eine Anzeige
Sie können das Aussehen und das Verhalten des Bildschirmbereichs für eine Anzeige so anpassen, dass sie mit dem Entwurf Ihrer Benutzeroberfläche übereinstimmen.
| Objekt |
Beschreibung |
|---|---|
| Übergangseffekt |
Wenn eine Anwendung eine neue Anzeige oder Übergänge zwischen Anzeigen lädt, zeigt die Anwendung standardmäßig einen schwarzen Übergangseffekt an, der die Anzeigen so erscheinen lässt, als ob sie ein- bzw. ausgeblendet werden. Sie können den Übergangseffekt durch Aufrufen von enableBannerTransition(false) ausschalten. Sie können die Farbe des Übergangseffekts durch Aufrufen von setBannerTransitionColor() und Angabe einer Farbe ändern, die von der Color-Klasse in BlackBerry® Java® SDK unterstützt wird. Um die Übergangsfarbe zu Blau zu ändern, können Sie z. B. setBannerTransitionColor(Color.BLUE) aufrufen. |
| Fokusverhalten |
Wenn ein BlackBerry®-Gerätebenutzer eine Anzeige auswählt, zeigt die Anwendung standardmäßig einen blauen Rahmen um die Anzeige an. Sie können die Farbe des Rahmens durch Aufrufen von setBorderColor() und Angabe einer Farbe ändern, die von der Color-Klasse in BlackBerry Java SDK unterstützt wird. Um die Rahmenfarbe zu Rot zu ändern, können Sie z. B. setBorderColor(Color.RED) aufrufen. Sie können das Standardfokusverhalten für ein Banner-Objekt durch Einstellen des Fokusverhaltens im entsprechenden Layout-Manager überschreiben, indem das Banner-Objekt gezwungen wird, das neue Verhalten zu erben. Sie können verhindern, dass die Advertising Service-API das Fokusverhalten verarbeitet, indem Sie setFocusOverrideFlag(true) aufrufen. |
| Platzhalterbild |
Wenn eine Anwendung darauf wartet, dass sie eine Anzeige von einem Anzeigennetzwerk empfängt, zeigt die Anwendung standardmäßig ein transparentes Platzhalterbild mit einem Rahmen an. Wenn Sie Ihr eigenes Platzhalterbild erstellen wollen, können Sie ein Bitmap-Objekt erstellen und es als Parameter weitergeben, wenn Sie ein Banner-Objekt erstellen. Wenn Sie Ihr eigenes Platzhalterbild erstellen, überprüfen Sie, dass es die gleichen Maße wie die Anzeigen hat, die Ihre Anwendung empfängt. |
Anpassen des Bildschirms für eine Anzeige
Diese Aufgabe zeigt, wie Sie das Platzhalterbild, die Farben des Fokusrahmens und den Übergangseffekt für den Bildschirmbereich für eine Anzeige ändern können.
Codebeispiel: Anpassen des Bildschirmbereichs für eine Anzeige
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);
}
}
Positionieren des Bildschirmbereich für eine Anzeige
Die Art, wie Sie ein Banner-Objekt auf einem Bildschirm positionieren, kann die Leistung der Anzeigen betreffen, die Ihre Anwendung zeigt. Je besser die Anzeigen auf dem Bildschirm zu sehen sind, desto einfacher kann es für BlackBerry®-Gerätebenutzer sein, die Anzeigen zu sehen und mit ihnen zu interagieren. Sie können die Layout-Manager in BlackBerry® Java® SDK verwenden, um Anzeigen in Ihrem restlichen Anwendungsinhalt zu platzieren.
Sie sollten die Verwendung von FlowFieldManager-Objekten vermeiden, um Bildschirme zu verwalten, die Anzeigen enthalten, weil die FlowFieldManager-Klasse nicht für das Anzeigen von Browserfeldern gedacht ist.
Eine häufige Strategie für das Positionieren von Anzeigen besteht darin, die Anzeige oben oder unten im Bildschirm zu platzieren. Wenn Ihr Bildschirm MainScreen erweitert, können Sie ein Banner-Objekt in den Titelbereich des Bildschirms stellen, damit die Anzeige immer oben angezeigt wird, oder im Statusabereich, damit die Anzeige immer unten angezeigt wird. Indem Sie Ihr Banner-Objekt in einem HorizontalFieldManager platzieren, bevor Sie es dem Bildschirm hinzufügen, können Sie die Position und das Aussehen des Banner-Objekts durch Anwenden der entsprechenden Stile ändern.
Codebeispiel: Positionieren einer Anzeige in der Mitte oben im Bildschirm
Das folgende Codebeispiel zeigt, wie Sie Feld-Manager verwenden, um eine Anzeige in der Mitte oben im Bildschirm anzuzeigen.
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);
}
}
Sie können die Ergebnisse der Ausführung des obigen Codebeispiels in der folgenden Grafik sehen:

Weitere Informationen zu Layout-Managern finden Sie im BlackBerry Java SDK UI and Navigation Development Guide (Entwicklungshandbuch für BlackBerry Java SDK – Benutzeroberfläche und Navigation) unter www.blackberry.com/go/devguides.
Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.




