Erweiterte Beispiele für Push-Benachrichtigungen
Im folgenden Leitfaden finden Sie einige erweiterte Beispiele für Push-Benachrichtigungen für das Braze SDK.
Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das Android Braze SDK integrieren. Sie müssen außerdem Push-Benachrichtigungen einrichten.
Angepasstes Benachrichtigungslayout
Braze-Benachrichtigungen werden als Daten-Nachrichten versendet. Das bedeutet, dass Ihre Anwendung immer die Möglichkeit hat, zu reagieren und ein entsprechendes Verhalten auszuführen, auch im Hintergrund (im Gegensatz zu Benachrichtigungsnachrichten, die vom System automatisch verarbeitet werden können, wenn Ihre App im Hintergrund läuft). So hat Ihre Anwendung die Möglichkeit, das Erlebnis anzupassen, indem sie beispielsweise personalisierte UI-Elemente in der Benachrichtigung anzeigt, die dem Benachrichtigungsfach zugestellt wird. Auch wenn diese Art der Implementierung von Push für einige ungewohnt sein mag, ist eines unserer bekannten Features bei Braze, Push Stories, ein Paradebeispiel für die Verwendung angepasster Ansichtskomponenten, um ein ansprechendes Erlebnis zu schaffen!

Android schränkt ein, welche Komponenten für die Implementierung angepasster Benachrichtigungsansichten verwendet werden können. Layouts für Benachrichtigungsansichten dürfen nur Ansichtsobjekte enthalten, die mit dem RemoteViews-Framework kompatibel sind.
Sie können die IBrazeNotificationFactory-Schnittstelle verwenden, um anzupassen, wie Push-Benachrichtigungen von Braze angezeigt werden. Durch die Erweiterung von BrazeNotificationFactory ruft Braze die Methode createNotification() Ihrer Factory auf, bevor die Benachrichtigung den Nutzer:innen angezeigt wird. Anschließend wird eine Nutzlast übergeben, die angepasste Schlüssel-Wert-Paare enthält, die über das Braze-Dashboard oder die REST API gesendet werden.
In diesem Abschnitt arbeiten Sie mit Superb Owl zusammen, dem Moderator einer neuen Spielshow, in der Teams zur Rettung von Wildtieren gegeneinander antreten, um zu sehen, wer die meisten Eulen retten kann. Sie möchten in ihrer Android-App Live-Update-Benachrichtigungen nutzen, um den Status eines laufenden Spiels anzuzeigen und dynamische Updates der Benachrichtigung in Echtzeit vorzunehmen.

1. Schritt: Ein angepasstes Layout hinzufügen
Sie können ein oder mehrere angepasste RemoteView-Layouts für Benachrichtigungen zu Ihrem Projekt hinzufügen. Diese sind hilfreich, um zu steuern, wie Benachrichtigungen im eingeklappten oder ausgeklappten Zustand angezeigt werden. Ihre Verzeichnisstruktur sollte in etwa so aussehen:
1
2
3
4
5
6
.
├── app/
└── res/
└── layout/
├── liveupdate_collapsed.xml
└── liveupdate_expanded.xml
Erstellen Sie in jeder XML-Datei ein angepasstes Layout. Superb Owl hat die folgenden Layouts für ihre eingeklappten und ausgeklappten RemoteView-Layouts erstellt:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/notification_title"
style="@style/TextAppearance.Compat.Notification.Title"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
2. Schritt: Eine angepasste Benachrichtigungs-Factory erstellen
Erstellen Sie in Ihrer Anwendung eine neue Datei namens MyCustomNotificationFactory.kt, die BrazeNotificationFactory erweitert, um zu steuern, wie angepasste RemoteView-Layouts angezeigt werden.
Im folgenden Beispiel hat Superb Owl eine angepasste Benachrichtigungs-Factory erstellt, um ein RemoteView-Layout für laufende Spiele anzuzeigen. Im nächsten Schritt erstellen sie eine neue Methode namens getTeamInfo, um die Daten eines Teams der Aktivität zuzuordnen.
Beispielcode anzeigen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import android.app.Notification
import android.widget.RemoteViews
import androidx.core.app.NotificationCompat
import com.braze.models.push.BrazeNotificationPayload
import com.braze.push.BrazeNotificationFactory
import com.braze.push.BrazeNotificationUtils.getOrCreateNotificationChannelId
import com.braze.support.BrazeLogger.brazelog
class MyCustomNotificationFactory : BrazeNotificationFactory() {
override fun createNotification(payload: BrazeNotificationPayload): Notification? {
if (payload.extras.containsKey("live_update")) {
val kvp = payload.extras
val notificationChannelId = getOrCreateNotificationChannelId(payload)
val context = payload.context
if (context == null) {
brazelog { "BrazeNotificationPayload has null context. Not creating notification" }
return null
}
val team1 = kvp["team1"]
val team2 = kvp["team2"]
val score1 = kvp["score1"]
val score2 = kvp["score2"]
val time = kvp["time"]
val quarter = kvp["quarter"]
// Superb Owl will define the 'getTeamInfo' method in the next step.
val (team1name, team1icon) = getTeamInfo(team1)
val (team2name, team2icon) = getTeamInfo(team2)
// Get the layouts to use in the custom notification.
val notificationLayoutCollapsed = RemoteViews(BuildConfig.APPLICATION_ID, R.layout.liveupdate_collapsed)
val notificationLayoutExpanded = RemoteViews(BuildConfig.APPLICATION_ID, R.layout.liveupdate_expanded)
// Very simple notification for the small layout
notificationLayoutCollapsed.setTextViewText(
R.id.notification_title,
"$team1 $score1 - $score2 $team2\n$time $quarter"
)
notificationLayoutExpanded.setTextViewText(R.id.score, "$score1 - $score2")
notificationLayoutExpanded.setTextViewText(R.id.team1name, team1name)
notificationLayoutExpanded.setTextViewText(R.id.team2name, team2name)
notificationLayoutExpanded.setTextViewText(R.id.timeInfo, "$time - $quarter")
notificationLayoutExpanded.setImageViewResource(R.id.team1logo, team1icon)
notificationLayoutExpanded.setImageViewResource(R.id.team2logo, team2icon)
val customNotification = NotificationCompat.Builder(context, notificationChannelId)
.setSmallIcon(R.drawable.notification_small_icon)
.setStyle(NotificationCompat.DecoratedCustomViewStyle())
.setCustomContentView(notificationLayout)
.setCustomBigContentView(notificationLayoutExpanded)
.build()
return customNotification
} else {
// Use the BrazeNotificationFactory for all other notifications
return super.createNotification(payload)
}
}
}
3. Schritt: Angepasste Daten zuordnen
Erstellen Sie in MyCustomNotificationFactory.kt eine neue Methode zur Verarbeitung von Daten, wenn Live Updates angezeigt werden.
Superb Owl hat die folgende Methode erstellt, um den Namen und das Logo jedes Teams den ausgeklappten Live Updates zuzuordnen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class CustomNotificationFactory : BrazeNotificationFactory() {
override fun createNotification(payload: BrazeNotificationPayload): Notification? {
// Your existing code
return super.createNotification(payload)
}
// Your new method
private fun getTeamInfo(team: String?): Pair<String, Int> {
return when (team) {
"WBF" -> Pair("Wild Bird Fund", R.drawable.team_wbf)
"OWL" -> Pair("Owl Rehab", R.drawable.team_owl)
else -> Pair("Unknown", R.drawable.notification_small_icon)
}
}
}
4. Schritt: Die angepasste Benachrichtigungs-Factory festlegen
Verwenden Sie in Ihrer Anwendungsklasse customBrazeNotificationFactory, um Ihre angepasste Benachrichtigungs-Factory festzulegen.
1
2
3
4
5
6
7
8
9
10
import com.braze.Braze
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// Tell Braze to use your custom factory for notifications
Braze.customBrazeNotificationFactory = MyCustomNotificationFactory()
}
}
5. Schritt: Die Aktivität senden
Sie können den REST-API-Endpunkt /messages/send verwenden, um eine Push-Benachrichtigung an das Android-Gerät einer Nutzer:in zu senden.
Beispiel-curl-Befehl
Superb Owl hat die Anfrage mit dem folgenden curl-Befehl gesendet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
curl -X POST "https://BRAZE_REST_ENDPOINT/messages/send" \
-H "Authorization: Bearer {REST_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"external_user_ids": ["USER_ID"],
"messages": {
"android_push": {
"title": "WBF vs OWL",
"alert": "2 to 4 1:33 Q4",
"extra": {
"live_update": "true",
"team1": "WBF",
"team2": "OWL",
"score1": "2",
"score2": "4",
"time": "1:33",
"quarter": "Q4"
},
"notification_id": "ASSIGNED_NOTIFICATION_ID"
}
}
}'

Auch wenn curl-Befehle für Tests hilfreich sind, empfehlen wir, diesen Aufruf in Ihrem Backend abzuwickeln, wo Sie bereits Ihre iOS-Live-Aktivitäten verwalten.
Anfrageparameter
| Schlüssel | Beschreibung |
|---|---|
REST_API_KEY |
Ein Braze-REST-API-Schlüssel mit messages.send-Berechtigungen. Dieser kann im Braze-Dashboard unter Einstellungen > API-Schlüssel erstellt werden. |
BRAZE_REST_ENDPOINT |
Ihre REST-Endpunkt-URL. Ihr Endpunkt hängt von der Braze-URL für Ihre Instanz ab. |
USER_ID |
Die ID der Nutzer:in, an die Sie die Benachrichtigung senden. |
messages.android_push.title |
Der Titel der Nachricht. Standardmäßig wird dieser nicht für die Live-Benachrichtigungen der angepassten Benachrichtigungs-Factory verwendet, kann aber als Fallback dienen. |
messages.android_push.alert |
Der Text der Nachricht. Standardmäßig wird dieser nicht für die Live-Benachrichtigungen der angepassten Benachrichtigungs-Factory verwendet, kann aber als Fallback dienen. |
messages.extra |
Schlüssel-Wert-Paare, die die angepasste Benachrichtigungs-Factory für Live-Benachrichtigungen verwendet. Sie können diesem Wert einen beliebigen String zuweisen—im obigen Beispiel wird jedoch live_updates verwendet, um festzustellen, ob es sich um eine Standard- oder eine Live-Push-Benachrichtigung handelt. |
ASSIGNED_NOTIFICATION_ID |
Die Benachrichtigungs-ID, die Sie der Live-Benachrichtigung der gewählten Nutzer:in zuweisen möchten. Die ID muss für dieses Spiel eindeutig sein und muss verwendet werden, um die bestehende Benachrichtigung später zu aktualisieren. |
6. Schritt: Die Aktivität aktualisieren
Um die bestehende RemoteView-Benachrichtigung mit neuen Daten zu aktualisieren, ändern Sie die entsprechenden Schlüssel-Wert-Paare, die messages.extra zugewiesen sind, und rufen Sie dann mit derselben notification_id den Endpunkt /messages/send erneut auf.
Personalisierte Push-Benachrichtigungen
Push-Benachrichtigungen können nutzerspezifische Informationen innerhalb einer angepassten Ansichtshierarchie anzeigen. Im folgenden Beispiel wird ein API-Trigger verwendet, um eine personalisierte Push-Benachrichtigung an eine Nutzer:in zu senden, damit diese ihren aktuellen Fortschritt nach Abschluss einer bestimmten Aufgabe in der App überprüfen kann.

Um einen personalisierten Push im Dashboard einzurichten, registrieren Sie die spezifische Kategorie, die angezeigt werden soll, und legen Sie dann alle relevanten Nutzerattribute fest, die Sie mit Liquid anzeigen möchten.

Voraussetzungen
Bevor Sie dieses Feature nutzen können, müssen Sie das Swift Braze SDK integrieren. Sie müssen außerdem Push-Benachrichtigungen einrichten.

Dieser Implementierungsleitfaden konzentriert sich auf eine Swift-Implementierung. Für Interessierte werden jedoch Objective-C-Snippets bereitgestellt.
App-Erweiterungen für Benachrichtigungsinhalte

App-Erweiterungen für Benachrichtigungsinhalte bieten Ihnen eine hervorragende Möglichkeit zur Anpassung von Push-Benachrichtigungen. Sie zeigen eine angepasste Oberfläche für die Benachrichtigungen Ihrer App an, wenn eine Push-Benachrichtigung erweitert wird.
Push-Benachrichtigungen können auf drei verschiedene Arten erweitert werden:
- Langes Drücken auf das Push-Banner
- Auf dem Push-Banner nach unten streichen
- Das Banner nach links streichen und „Anzeigen“ auswählen
Diese angepassten Ansichten bieten intelligente Möglichkeiten für das Engagement Ihrer Kund:innen, indem sie verschiedene Arten von Inhalten anzeigen – darunter interaktive Benachrichtigungen, mit Nutzerdaten gefüllte Benachrichtigungen und sogar Push-Nachrichten, die Informationen wie Telefonnummern und E-Mail-Adressen erfassen können. Eines unserer bekannten Features bei Braze, Push Stories, ist ein Paradebeispiel dafür, wie eine App-Erweiterung für Push-Benachrichtigungsinhalte aussehen kann!
Voraussetzungen

- Push-Benachrichtigungen erfolgreich in Ihre App integriert
- Die folgenden Dateien, die von Xcode basierend auf Ihrer Programmiersprache generiert werden:
Swift
NotificationViewController.swiftMainInterface.storyboard
Objective-C
NotificationViewController.hNotificationViewController.mMainInterface.storyboard
Interaktive Push-Benachrichtigung
Push-Benachrichtigungen können auf Aktionen von Nutzer:innen innerhalb einer App-Erweiterung reagieren. Für Nutzer:innen mit iOS 12 oder höher bedeutet dies, dass Sie Ihre Push-Benachrichtigungen in vollständig interaktive Nachrichten verwandeln können! Dies bietet eine spannende Möglichkeit, Interaktivität in Ihre Aktionen und Anwendungen einzuführen. Ihre Push-Benachrichtigung kann zum Beispiel ein Spiel, ein Glücksrad für Rabatte oder einen „Gefällt mir“-Button zum Speichern eines Eintrags oder Songs enthalten.
Das folgende Beispiel zeigt eine Push-Benachrichtigung, bei der Nutzer:innen innerhalb der erweiterten Benachrichtigung ein Zuordnungsspiel spielen können.

Dashboard-Konfiguration
Um eine interaktive Push-Benachrichtigung zu erstellen, müssen Sie in Ihrem Dashboard eine angepasste Ansicht einrichten.
- Klicken Sie auf der Seite Campaigns auf Create Campaign, um eine neue Push-Benachrichtigungskampagne zu starten.
- Schalten Sie auf dem Tab Compose die Notification Buttons ein.
- Geben Sie eine angepasste iOS-Kategorie in das Feld iOS Notification Category ein.
- Legen Sie in der
.plistIhres Notification Content Extension Target das AttributUNNotificationExtensionCategoryauf Ihre angepasste iOS-Kategorie fest. Der hier angegebene Wert muss mit dem übereinstimmen, der im Braze-Dashboard unter iOS Notification Category eingestellt ist. - Setzen Sie den Schlüssel
UNNotificationExtensionInteractionEnabledauftrue, um Nutzerinteraktionen in einer Push-Benachrichtigung zu aktivieren.

Personalisierte Push-Benachrichtigungen

Push-Benachrichtigungen können nutzerspezifische Informationen innerhalb einer Inhaltserweiterung anzeigen. So können Sie nutzerfokussierte Push-Inhalte erstellen, z. B. die Option, Ihren Fortschritt auf verschiedenen Plattformen zu teilen, freigeschaltete Erfolge anzuzeigen oder Onboarding-Checklisten darzustellen. Dieses Beispiel zeigt eine Push-Benachrichtigung, die einer Person angezeigt wird, nachdem sie eine bestimmte Aufgabe im Braze-Lernkurs abgeschlossen hat. Durch Erweitern der Benachrichtigung können die Nutzer:innen ihren Fortschritt auf ihrem Lernpfad sehen. Die hier bereitgestellten Informationen sind nutzerspezifisch und können über einen API-Trigger ausgelöst werden, wenn eine Sitzung abgeschlossen ist oder eine bestimmte Nutzeraktion durchgeführt wird.
Dashboard-Konfiguration
Um eine personalisierte Push-Benachrichtigung zu erstellen, müssen Sie in Ihrem Dashboard eine angepasste Ansicht einrichten.
- Klicken Sie auf der Seite Campaigns auf Create Campaign, um eine neue Push-Benachrichtigungskampagne zu starten.
- Schalten Sie auf dem Tab Compose die Notification Buttons ein.
- Geben Sie eine angepasste iOS-Kategorie in das Feld iOS Notification Category ein.
- Erstellen Sie auf dem Tab Settings Schlüssel-Wert-Paare mit Standard-Liquid. Legen Sie die entsprechenden Nutzerattribute fest, die in der Nachricht angezeigt werden sollen. Diese Ansichten können basierend auf bestimmten Nutzerattributen eines bestimmten Nutzerprofils personalisiert werden.
- Legen Sie in der
.plistIhres Notification Content Extension Target das AttributUNNotificationExtensionCategoryauf Ihre angepasste iOS-Kategorie fest. Der hier angegebene Wert muss mit dem übereinstimmen, der im Braze-Dashboard unter iOS Notification Category eingestellt ist.

Umgang mit Schlüssel-Wert-Paaren
Die Methode didReceive wird aufgerufen, wenn die App-Erweiterung für Benachrichtigungsinhalte eine Benachrichtigung erhalten hat. Diese Methode finden Sie in NotificationViewController. Die im Dashboard bereitgestellten Schlüssel-Wert-Paare werden im Code durch die Verwendung eines userInfo-Wörterbuchs dargestellt.
Schlüssel-Wert-Paare aus Push-Benachrichtigungen parsen
1
2
3
4
5
6
7
8
9
func didReceive(_ notification: UNNotification) {
let userInfo = notification.request.content.userInfo
guard let value = userInfo["YOUR-KEY-VALUE-PAIR"] as? String,
let otherValue = userInfo["YOUR-OTHER-KEY-VALUE-PAIR"] as? String,
else { fatalError("Key-Value Pairs are incorrect.")}
...
}
1
2
3
4
5
6
7
8
9
10
11
- (void)didReceiveNotification:(nonnull UNNotification *)notification {
NSDictionary *userInfo = notification.request.content.userInfo;
if (userInfo[@"YOUR-KEY-VALUE-PAIR"] && userInfo[@"YOUR-OTHER-KEY-VALUE-PAIR"]) {
...
} else {
[NSException raise:NSGenericException format:@"Key-Value Pairs are incorrect"];
}
}
Push-Benachrichtigung zur Informationserfassung
Push-Benachrichtigungen können Nutzerinformationen innerhalb einer Inhaltserweiterung erfassen und so die Grenzen dessen erweitern, was mit einem Push möglich ist. Durch das Anfordern von Nutzereingaben über Push-Benachrichtigungen können Sie nicht nur grundlegende Informationen wie Name oder E-Mail abfragen, sondern Nutzer:innen auch auffordern, Feedback zu geben oder ein unvollständiges Nutzerprofil zu vervollständigen.

Weitere Informationen finden Sie unter Protokollierung von Daten für Push-Benachrichtigungen.
Im folgenden Ablauf kann die angepasste Ansicht auf Zustandsänderungen reagieren. Diese Zustandsänderungskomponenten werden in jedem Bild dargestellt.
- Die Person erhält eine Push-Benachrichtigung.
- Der Push wird geöffnet. Nach dem Erweitern fordert der Push zur Eingabe von Informationen auf. In diesem Beispiel wird die E-Mail-Adresse abgefragt, aber Sie können jede beliebige Information anfordern.
- Die Informationen werden eingegeben, und wenn sie im erwarteten Format vorliegen, wird der Registrierungs-Button angezeigt.
- Die Bestätigungsansicht wird angezeigt und der Push wird geschlossen.
Dashboard-Konfiguration
Um eine Push-Benachrichtigung zur Informationserfassung zu erstellen, müssen Sie in Ihrem Dashboard eine angepasste Ansicht einrichten.
- Klicken Sie auf der Seite Campaigns auf Create Campaign, um eine neue Push-Benachrichtigungskampagne zu starten.
- Schalten Sie auf dem Tab Compose die Notification Buttons ein.
- Geben Sie eine angepasste iOS-Kategorie in das Feld iOS Notification Category ein.
- Erstellen Sie auf dem Tab Settings Schlüssel-Wert-Paare mit Standard-Liquid. Legen Sie die entsprechenden Nutzerattribute fest, die in der Nachricht angezeigt werden sollen.
- Legen Sie in der
.plistIhres Notification Content Extension Target das AttributUNNotificationExtensionCategoryauf Ihre angepasste iOS-Kategorie fest. Der hier angegebene Wert muss mit dem übereinstimmen, der im Braze-Dashboard unter iOS Notification Category eingestellt ist.
Wie im Beispiel zu sehen, können Sie auch ein Bild in Ihre Push-Benachrichtigung einfügen. Dazu müssen Sie Rich-Benachrichtigungen integrieren, den Benachrichtigungsstil in Ihrer Campaign auf Rich-Benachrichtigung einstellen und ein Rich-Push-Bild einfügen.

Verarbeitung von Button-Aktionen
Jeder Aktions-Button ist eindeutig gekennzeichnet. Der Code prüft, ob der Antwort-Bezeichner mit dem actionIdentifier übereinstimmt, und weiß dann, dass die Person auf den Aktions-Button geklickt hat.
Verarbeitung von Antworten auf Aktions-Buttons in Push-Benachrichtigungen
1
2
3
4
5
6
7
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
if response.actionIdentifier == "YOUR-REGISTER-IDENTIFIER" {
// do something
} else {
// do something else
}
}
1
2
3
4
5
6
7
- (void)didReceiveNotificationResponse:(UNNotificationResponse *)response completionHandler:(void (^)(UNNotificationContentExtensionResponseOption))completion {
if ([response.actionIdentifier isEqualToString:@"YOUR-REGISTER-IDENTIFIER"]) {
completion(UNNotificationContentExtensionResponseOptionDismiss);
} else {
completion(UNNotificationContentExtensionResponseOptionDoNotDismiss);
}
}
Ausblenden von Pushes
Push-Benachrichtigungen können durch Drücken eines Aktions-Buttons automatisch ausgeblendet werden. Es gibt drei vorgefertigte Optionen zum Ausblenden von Push-Nachrichten, die wir empfehlen:
completion(.dismiss)– Blendet die Benachrichtigung auscompletion(.doNotDismiss)– Die Benachrichtigung bleibt geöffnetcompletion(.dismissAndForward)– Der Push wird ausgeblendet und die Person wird in die Anwendung weitergeleitet