Skip to content

Push-Benachrichtigungen

Push-Benachrichtigungen ermöglichen es Ihnen, von Ihrer App aus Benachrichtigungen über wichtige Ereignisse zu versenden. Sie können eine Push-Benachrichtigung senden, wenn Sie neue Nachrichten zugestellt haben, aktuelle Nachrichten senden oder die neueste Folge der Lieblingssendung Ihrer Nutzer:innen zum Herunterladen für die Offline-Nutzung bereitstellen. Sie sind auch effizienter als Hintergrundabrufe, da Ihre Anwendung nur bei Bedarf gestartet wird.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Internet Braze SDK integrieren.

Push-Protokolle

Web-Push-Benachrichtigungen werden mithilfe des W3C-Push-Standards implementiert, den die meisten gängigen Browser unterstützen. Weitere Informationen über die spezifischen Push-Protokollstandards und die Browserunterstützung finden Sie in den Ressourcen von Apple , Mozilla und Microsoft.

Push-Benachrichtigungen einrichten

Schritt 1: Konfigurieren Sie Ihr Service-Teammitglied

Fügen Sie in der Datei service-worker.js Ihres Projekts das folgende Snippet hinzu und setzen Sie die manageServiceWorkerExternally Initialisierungsoption auf true, wenn Sie das Internet SDK initialisieren.

Schritt 2: Registrieren Sie den Browser

Um sofort die Push-Berechtigungen eines Nutzers:innen anzufordern, damit sein Browser Push-Benachrichtigungen empfangen kann, rufen Sie braze.requestPushPermission() auf. Um zunächst zu testen, ob Push in ihrem Browser unterstützt wird, rufen Sie braze.isPushSupported() auf.

Sie können dem Nutzer:innen auch eine Soft-Push-Eingabeaufforderung senden, bevor Sie die Push-Erlaubnis anfordern, um Ihre eigene Push-bezogene UI anzuzeigen.

Schritt 3: Deaktivieren Sie skipWaiting (optional)

Die Datei des Service-Teammitglieds von Braze ruft bei der Installation automatisch skipWaiting auf. Wenn Sie diese Funktion deaktivieren möchten, fügen Sie nach dem Import von Braze den folgenden Code in Ihre Service-Teammitglied-Datei ein:

Abmelden eines Nutzer:in

Um einen Nutzer:innen abzumelden, rufen Sie braze.unregisterPush() auf.

Alternative Domains

Für die Integration von Web-Push muss Ihre Domain sicher sein, was im Allgemeinen bedeutet: https, localhost und andere Ausnahmen, die im W3C-Push-Standard definiert sind. Sie müssen auch in der Lage sein, ein Service-Teammitglied im Stammverzeichnis Ihrer Domain zu registrieren oder zumindest die HTTP-Header für diese Datei zu kontrollieren. Dieser Artikel beschreibt, wie Sie Braze Web-Push in eine andere Domain integrieren.

Anwendungsfälle

Wenn Sie nicht alle Kriterien des W3C-Push-Standards erfüllen können, können Sie stattdessen diese Methode verwenden, um Ihrer Website einen Push-Dialog hinzuzufügen. Dies kann hilfreich sein, wenn Sie Ihren Nutzer:innen das Opt-in von einer Website http oder einem Popup-Fenster einer Browsererweiterung ermöglichen möchten, das die Anzeige Ihrer Push-Anfrage verhindert.

Überlegungen

Denken Sie daran, dass sich die Browser, wie viele andere Lösungen im Internet, ständig weiterentwickeln und dass diese Methode in Zukunft möglicherweise nicht mehr praktikabel ist. Bevor Sie fortfahren, vergewissern Sie sich, dass:

  • Sie besitzen eine eigene sichere Domain (https://) und die Berechtigung, ein Service-Teammitglied in dieser Domain zu registrieren.
  • Die Nutzer:innen sind auf Ihrer Website angemeldet, so dass die Push-Tokens dem richtigen Profil zugeordnet werden können.

Einrichten einer alternativen Push Domain

Um das folgende Beispiel zu verdeutlichen, verwenden wir http://insecure.com und https://secure.com als unsere beiden Domains mit dem Ziel, Besucher dazu zu bringen, sich für Push auf http://insecure.com zu registrieren. Dieses Beispiel könnte auch auf ein chrome-extension:// Schema für die Popup-Seite einer Browser-Erweiterung angewendet werden.

Schritt 1: Prompting Flow initiieren

Auf insecure.com öffnen Sie ein neues Fenster zu Ihrer sicheren Domain, indem Sie einen URL-Parameter verwenden, um die externe ID des aktuell angemeldeten Nutzers zu übergeben.

http://insecure.com

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<button id="opt-in">Opt-In For Push</button>
<script>
// the same ID you would use with `braze.changeUser`:
const user_id = getUserIdSomehow();
// pass the user ID into the secure domain URL:
const secure_url = `https://secure.com/push-registration.html?external_id=${user_id}`;

// when the user takes some action, open the secure URL in a new window
document.getElementById("opt-in").onclick = function(){
    if (!window.open(secure_url, 'Opt-In to Push', 'height=500,width=600,left=150,top=150')) {
        window.alert('The popup was blocked by your browser');
    } else {
        // user is shown a popup window
        // and you can now prompt for push in this window
    }
}
</script>

Schritt 2: Für Push registrieren

An dieser Stelle öffnet secure.com ein Popup-Fenster, in dem Sie das Braze Web SDK für dieselbe Nutzer-ID initialisieren und die Nutzererlaubnis für Web-Push anfordern können.

https://secure.com/push-registration.html

Schritt 3: Kommunikation zwischen Domains (optional)

Jetzt, da die Nutzer über diesen Workflow auf insecure.com ein Opt-in durchführen können, möchten Sie vielleicht Ihre Website anpassen, je nachdem, ob der Nutzer bereits ein Opt-in hat oder nicht. Es macht keinen Sinn, die Nutzer aufzufordern, sich für Push zu registrieren, wenn sie bereits registriert sind.

Sie können iFrames und die postMessage-API verwenden, um zwischen Ihren beiden Domains zu kommunizieren.

insecure.com

Auf unserer Domain insecure.com fragen wir die sichere Domain (auf der Push tatsächlich registriert ist) nach Informationen über die Push-Registrierung des aktuellen Nutzers:innen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- Create an iframe to the secure domain and run getPushStatus onload-->
<iframe id="push-status" src="https://secure.com/push-status.html" onload="getPushStatus()" style="display:none;"></iframe>

<script>
function getPushStatus(event){
    // send a message to the iframe asking for push status
    event.target.contentWindow.postMessage({type: 'get_push_status'}, 'https://secure.com');
    // listen for a response from the iframe's domain
    window.addEventListener("message", (event) => {
        if (event.origin === "http://insecure.com" && event.data.type === 'set_push_status') {
            // update the page based on the push permission we're told
            window.alert(`Is user registered for push? ${event.data.isPushPermissionGranted}`);
        }
    }   
}
</script>

secure.com/Push-status.html

Häufig gestellte Fragen (FAQ)

Service-Teammitglieder

Was ist, wenn ich ein Service-Teammitglied nicht im Stammverzeichnis registrieren kann?

Standardmäßig kann ein Service-Teammitglied nur in demselben Verzeichnis verwendet werden, in dem es registriert ist. Wenn Ihr Service-Teammitglied z.B. in /assets/service-worker.js vorhanden ist, können Sie es nur in example.com/assets/* oder einem Unterverzeichnis des Ordners assets registrieren, nicht aber auf Ihrer Homepage (example.com/). Aus diesem Grund empfiehlt es sich, das Service-Teammitglied im Stammverzeichnis (z. B. https://example.com/service-worker.js) zu hosten und zu registrieren.

Wenn Sie kein Service-Teammitglied in Ihrer Root-Domain registrieren können, besteht eine Alternative darin, den HTTP-Header Service-Worker-Allowed zu verwenden, wenn Sie Ihre Service-Teammitglied-Datei bereitstellen. Wenn Sie Ihren Server so konfigurieren, dass in der Antwort für das Service-Teammitglied Service-Worker-Allowed: / zurückgegeben wird, weist dies den Browser an, den Geltungsbereich zu erweitern und die Verwendung aus einem anderen Verzeichnis zuzulassen.

Kann ich ein Service-Teammitglied mit Hilfe eines Tag Managers erstellen?

Nein, Service-Teammitglieder müssen auf dem Server Ihrer Website gehostet werden und können nicht über den Tag Manager geladen werden.

Sicherheit vor Ort

Ist HTTPS erforderlich?

Ja Die Internet-Standards verlangen, dass die Domain, die die Erlaubnis zur Push-Benachrichtigung anfragt, sicher ist.

Wann gilt eine Website als “sicher”?

Eine Website gilt als sicher, wenn sie einem der folgenden Muster für die sichere Herkunft entspricht. Braze Web-Push-Benachrichtigungen basieren auf diesem offenen Standard, so dass Man-in-the-Middle-Angriffe verhindert werden.

  • (https, , *)
  • (wss, *, *)
  • (, localhost, )
  • (, .localhost, *)
  • (, 127/8, )
  • (, ::1/128, *)
  • (file, *, —)
  • (chrome-extension, *, —)

Was ist, wenn eine sichere Website nicht verfügbar ist?

Obwohl es sich bewährt hat, die gesamte Website zu sichern, können Kunden, die ihre Domain nicht sichern können, diese Anforderung durch die Verwendung eines sicheren Modals umgehen. Lesen Sie mehr in unserer Anleitung zur Verwendung von Alternate push domain oder sehen Sie sich eine funktionierende Demo an.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Android Braze SDK integrieren.

Eingebaute Features

Die folgenden Features sind in das Braze Android SDK integriert. Um andere Features für Push-Benachrichtigungen zu nutzen, müssen Sie für Ihre App Push-Benachrichtigungen einrichten.

Feature Beschreibung
Push Stories Android-Push Stories sind standardmäßig in das Braze Android SDK integriert. Weitere Informationen finden Sie unter Push Stories.
Push Primer Push-Primer-Campaigns ermutigen Ihre Nutzer:innen, Push-Benachrichtigungen auf ihrem Gerät für Ihre App zu aktivieren. Dies kann ohne SDK-Anpassung mit unserem No-Code-Push-Primer geschehen.

Über den Lebenszyklus der Push-Benachrichtigung

Das folgende Flussdiagramm zeigt, wie Braze den Lebenszyklus der Push-Benachrichtigung handhabt, z. B. die Aufforderung zur Erteilung von Berechtigungen, die Generierung von Token und die Zustellung von Nachrichten.

---
config:
  theme: neutral
---
flowchart TD

%% Permission flow
subgraph Permission[Push Permissions]
    B{Android version of the device?}
    B -->|Android 13+| C["requestPushPermissionPrompt() called"]
    B -->|Android 12 and earlier| D[No permissions required]

    %% Connect Android 12 path to Braze state
    D --> H3[Braze: user subscription state]
    H3 --> J3[Defaults to 'subscribed' when user profile created]

    C --> E{Did the user grant push permission?}
    E -->|Yes| F[POST_NOTIFICATIONS permission granted]
    E -->|No| G[POST_NOTIFICATIONS permission denied]

    %% Braze subscription state updates
    F --> H1[Braze: user subscription state]
    G --> H2[Braze: user subscription state]

    H1 --> I1{Automatically opt in after permission granted?}
    I1 -->|true| J1[Set to 'opted-in']
    I1 -->|false| J2[Remains 'subscribed']

    H2 --> K1[Remains 'subscribed'<br/>or 'unsubscribed']

    %% Subscription state legend
    subgraph BrazeStates[Braze subscription states]
        L1['Subscribed' - default state<br/>when user profile created]
        L2['Opted-in' - user explicitly<br/>wants push notifications]
        L3['Unsubscribed' - user explicitly<br/>opted out of push]
    end

    %% Note about user-level states
    note1[Note: These states are user-level<br/>and apply across all devices for the user]

    %% Connect states to legend
    J1 -.-> L2
    J2 -.-> L1
    J3 -.-> L1
    K1 -.-> L3
    note1 -.-> BrazeStates
end

%% Styling
classDef permissionClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef tokenClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef sdkClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef configClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef displayClass fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef deliveryClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef brazeClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px

class A,B,C,E,F,G permissionClass
class H,I tokenClass
class J,K sdkClass
class N,O,P configClass
class R,S,S1,T,U,V displayClass
class W,X,X1,X2,Y,Z deliveryClass
class H1,H2,H3,I1,J1,J2,J3,K1,L1,L2,L3,note1 brazeClass
---
config:
  theme: neutral
---
flowchart TD

%% Token generation flow
subgraph Token[Token Generation]
    H["Braze SDK initialized"] --> Q{Is FCM auto-registration enabled?}
    Q -->|Yes| L{Is required configuration present?}
    Q -->|No| M[No FCM token generated]
    L -->|Yes| I[Generate FCM token]
    L -->|No| M
    I --> K[Register token with Braze]

    %% Configuration requirements
    subgraph Config[Required configuration]
        N['google-services.json' file is present]
        O['com.google.firebase:firebase-messaging' in gradle]
        P['com.google.gms.google-services' plugin in gradle]
    end

    %% Connect config to check
    N -.-> L
    O -.-> L
    P -.-> L
end

%% Styling
classDef permissionClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef tokenClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef sdkClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef configClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef displayClass fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef deliveryClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef brazeClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px

class A,B,C,E,F,G permissionClass
class H,I tokenClass
class J,K sdkClass
class N,O,P configClass
class R,S,S1,T,U,V displayClass
class W,X,X1,X2,Y,Z deliveryClass
class H1,H2,H3,I1,J1,J2,J3,K1,L1,L2,L3,note1 brazeClass
---
config:
  theme: neutral
  fontSize: 10
---
flowchart TD

subgraph Display[Push Display]
    %% Push delivery flow
    W[Push sent to FCM servers] --> X{Did FCM receive push?}
    X -->|App is terminated| Y[FCM cannot deliver push to the app]
    X -->|Delivery conditions met| X1[App receives push from FCM]
    X1 --> X2[Braze SDK receives push]
    X2 --> R[Push type?]

    %% Push Display Flow
    R -->|Standard push| S{Is push permission required?}
    R -->|Silent push| T[Braze SDK processes silent push]
    S -->|Yes| S1{Did the user grant push permission?}
    S -->|No| V[Notification is shown to the user]
    S1 -->|Yes| V
    S1 -->|No| U[Notification is not shown to the user]
end

%% Styling
classDef permissionClass fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef tokenClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef sdkClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef configClass fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef displayClass fill:#ffebee,stroke:#c62828,stroke-width:2px
classDef deliveryClass fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef brazeClass fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px

class A,B,C,E,F,G permissionClass
class H,I tokenClass
class J,K sdkClass
class N,O,P configClass
class R,S,S1,T,U,V displayClass
class W,X,X1,X2,Y,Z deliveryClass
class H1,H2,H3,I1,J1,J2,J3,K1,L1,L2,L3,note1 brazeClass

Push-Benachrichtigungen einrichten

Rate-Limits

Die Firebase Cloud Messaging (FCM) API hat ein standardmäßiges Rate-Limit von 600.000 Anfragen pro Minute. Wenn Sie dieses Limit erreichen, wird Braze es in einigen Minuten automatisch erneut versuchen. Um eine Erhöhung anzufordern, wenden Sie sich an den Firebase Support.

1. Schritt: Firebase zu Ihrem Projekt hinzufügen

Fügen Sie zunächst Firebase zu Ihrem Android-Projekt hinzu. Eine schrittweise Anleitung finden Sie in der Firebase-Einrichtungsanleitung von Google.

2. Schritt: Cloud Messaging zu Ihren Abhängigkeiten hinzufügen

Als Nächstes fügen Sie die Cloud-Messaging-Bibliothek zu Ihren Projektabhängigkeiten hinzu. Öffnen Sie in Ihrem Android-Projekt die Datei build.gradle und fügen Sie die folgende Zeile zum dependencies-Block hinzu.

1
implementation "google.firebase:firebase-messaging:+"

Ihre Abhängigkeiten sollten in etwa wie folgt aussehen:

1
2
3
4
dependencies {
  implementation project(':android-sdk-ui')
  implementation "com.google.firebase:firebase-messaging:+"
}

3. Schritt: Firebase Cloud Messaging API aktivieren

Wählen Sie in Google Cloud das Projekt aus, das Ihre Android-App verwendet, und aktivieren Sie dann die Firebase Cloud Messaging API.

Firebase Cloud Messaging API aktiviert

4. Schritt: Ein Dienstkonto erstellen

Als Nächstes erstellen Sie ein neues Dienstkonto, damit Braze bei der Registrierung von FCM-Token autorisierte API-Aufrufe tätigen kann. Gehen Sie in Google Cloud zu Service Accounts und wählen Sie dann Ihr Projekt aus. Wählen Sie auf der Seite Service Accounts die Option Create Service Account.

Die Startseite des Dienstkontos eines Projekts, auf der „Create Service Account“ hervorgehoben ist.

Geben Sie einen Namen, eine ID und eine Beschreibung für das Dienstkonto ein und wählen Sie Create and continue.

Suchen Sie im Feld Role nach Firebase Cloud Messaging API Admin und wählen Sie den Eintrag in der Liste der Rollen aus. Für einen restriktiveren Zugriff erstellen Sie eine angepasste Rolle mit der Berechtigung cloudmessaging.messages.create und wählen diese stattdessen aus der Liste aus. Wenn Sie fertig sind, wählen Sie Done.

Das Formular „Grant this service account access to project“ mit der ausgewählten Rolle „Firebase Cloud Messaging API Admin“.

5. Schritt: JSON-Zugangsdaten generieren

Als Nächstes generieren Sie JSON-Zugangsdaten für Ihr FCM-Dienstkonto. Gehen Sie in Google Cloud IAM & Admin zu Service Accounts und wählen Sie Ihr Projekt aus. Suchen Sie das FCM-Dienstkonto, das Sie zuvor erstellt haben, und wählen Sie dann  Actions > Manage Keys.

Die Startseite des Dienstkontos des Projekts mit geöffnetem Menü „Actions“.

Wählen Sie Add Key > Create new key.

Das ausgewählte Dienstkonto mit dem geöffneten Menü „Add Key“.

Wählen Sie JSON und dann Create. Wenn Sie Ihr Dienstkonto mit einer anderen Google-Cloud-Projekt-ID als Ihrer FCM-Projekt-ID erstellt haben, müssen Sie den der project_id zugewiesenen Wert in Ihrer JSON-Datei manuell aktualisieren.

Merken Sie sich, wo Sie den Schlüssel heruntergeladen haben—Sie brauchen ihn im nächsten Schritt.

Das Formular zum Erstellen eines Private Keys mit ausgewählter Option „JSON“.

6. Schritt: JSON-Zugangsdaten zu Braze hochladen

Als Nächstes laden Sie Ihre JSON-Zugangsdaten in Ihr Braze-Dashboard hoch. Wählen Sie in Braze  Settings > App Settings.

Das geöffnete Menü „Settings“ in Braze, wobei „App Settings“ hervorgehoben ist.

Wählen Sie in den Push Notification Settings Ihrer Android-App Firebase aus, wählen Sie dann Upload JSON File und laden Sie die Zugangsdaten hoch, die Sie zuvor generiert haben. Wenn Sie fertig sind, wählen Sie Save.

Das Formular für „Push Notification Settings“ mit „Firebase“ als ausgewähltem Push-Anbieter.

7. Schritt: Automatische Token-Registrierung einrichten

Wenn einer Ihrer Nutzer:innen Push-Benachrichtigungen per Opt-in aktiviert, muss Ihre App ein FCM-Token auf dem Gerät generieren, bevor Sie Push-Benachrichtigungen senden können. Mit dem Braze SDK können Sie die automatische FCM-Token-Registrierung für das Gerät jedes Nutzers bzw. jeder Nutzerin in den Braze-Konfigurationsdateien Ihres Projekts aktivieren.

Gehen Sie zunächst zur Firebase Console, öffnen Sie Ihr Projekt und wählen Sie dann  Settings > Project settings.

Das Firebase-Projekt mit geöffnetem Menü „Settings“.

Wählen Sie Cloud Messaging und kopieren Sie dann unter Firebase Cloud Messaging API (V1) die Nummer im Feld Sender ID.

Die Seite „Cloud Messaging“ des Firebase-Projekts mit hervorgehobener „Sender ID“.

Als Nächstes öffnen Sie Ihr Android-Studio-Projekt und verwenden Ihre Firebase-Sender-ID, um die automatische Registrierung von FCM-Token in Ihrer braze.xml oder BrazeConfig zu aktivieren.

Um die automatische FCM-Token-Registrierung zu konfigurieren, fügen Sie die folgenden Zeilen in Ihre braze.xml-Datei ein:

1
2
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>

Ersetzen Sie FIREBASE_SENDER_ID durch den Wert, den Sie aus den Einstellungen Ihres Firebase-Projekts kopiert haben. Ihre braze.xml sollte etwa so aussehen:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string translatable="false" name="com_braze_api_key">12345ABC-6789-DEFG-0123-HIJK456789LM</string>
  <bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">603679405392</string>
</resources>

Um die automatische FCM-Token-Registrierung zu konfigurieren, fügen Sie die folgenden Zeilen in Ihre BrazeConfig ein:

1
2
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")
1
2
.setIsFirebaseCloudMessagingRegistrationEnabled(true)
.setFirebaseCloudMessagingSenderIdKey("FIREBASE_SENDER_ID")

Ersetzen Sie FIREBASE_SENDER_ID durch den Wert, den Sie aus den Einstellungen Ihres Firebase-Projekts kopiert haben. Ihre BrazeConfig sollte etwa so aussehen:

1
2
3
4
5
6
7
8
9
10
BrazeConfig brazeConfig = new BrazeConfig.Builder()
  .setApiKey("12345ABC-6789-DEFG-0123-HIJK456789LM")
  .setCustomEndpoint("sdk.iad-01.braze.com")
  .setSessionTimeout(60)
  .setHandlePushDeepLinksAutomatically(true)
  .setGreatNetworkDataFlushInterval(10)
  .setIsFirebaseCloudMessagingRegistrationEnabled(true)
  .setFirebaseCloudMessagingSenderIdKey("603679405392")
  .build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
6
7
8
9
10
val brazeConfig = BrazeConfig.Builder()
  .setApiKey("12345ABC-6789-DEFG-0123-HIJK456789LM")
  .setCustomEndpoint("sdk.iad-01.braze.com")
  .setSessionTimeout(60)
  .setHandlePushDeepLinksAutomatically(true)
  .setGreatNetworkDataFlushInterval(10)
  .setIsFirebaseCloudMessagingRegistrationEnabled(true)
  .setFirebaseCloudMessagingSenderIdKey("603679405392")
  .build()
Braze.configure(this, brazeConfig)

8. Schritt: Automatische Anfragen in Ihrer Application-Klasse entfernen

Um zu verhindern, dass Braze jedes Mal unnötige Netzwerkanfragen auslöst, wenn Sie stille Push-Benachrichtigungen senden, entfernen Sie alle automatischen Netzwerkanfragen, die in der onCreate()-Methode Ihrer Application-Klasse konfiguriert sind. Weitere Informationen finden Sie unter Android Developer Reference: Application.

Anzeigen von Benachrichtigungen

1. Schritt: Braze Firebase Messaging Service registrieren

Sie können entweder einen neuen, einen bestehenden oder einen nicht von Braze stammenden Firebase Messaging Service erstellen. Wählen Sie die Option, die am besten zu Ihren Anforderungen passt.

Braze enthält einen Dienst, der den Push-Empfang und das Öffnen von Intents verarbeitet. Die Klasse BrazeFirebaseMessagingService muss in Ihrer AndroidManifest.xml registriert werden:

1
2
3
4
5
6
<service android:name="com.braze.push.BrazeFirebaseMessagingService"
  android:exported="false">
  <intent-filter>
    <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter>
</service>

Unser Benachrichtigungscode verwendet ebenfalls BrazeFirebaseMessagingService, um das Tracking von Öffnungen und Klick-Aktionen zu verarbeiten. Dieser Dienst muss in der AndroidManifest.xml registriert sein, um korrekt zu funktionieren. Beachten Sie auch, dass Braze Benachrichtigungen aus unserem System mit einem eindeutigen Schlüssel versieht, sodass nur Benachrichtigungen gerendert werden, die von unseren Systemen gesendet wurden. Sie können zusätzliche Dienste separat registrieren, um Benachrichtigungen von anderen FCM-Diensten anzuzeigen. Siehe AndroidManifest.xml in der Firebase-Push-Beispiel-App.

Wenn Sie bereits einen Firebase Messaging Service registriert haben, können Sie RemoteMessage-Objekte über BrazeFirebaseMessagingService.handleBrazeRemoteMessage() an Braze übergeben. Diese Methode zeigt nur dann eine Benachrichtigung an, wenn das RemoteMessage-Objekt von Braze stammt, und ignoriert es andernfalls sicher.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyFirebaseMessagingService extends FirebaseMessagingService {
  @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
      // This Remote Message originated from Braze and a push notification was displayed.
      // No further action is needed.
    } else {
      // This Remote Message did not originate from Braze.
      // No action was taken and you can safely pass this Remote Message to other handlers.
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
class MyFirebaseMessagingService : FirebaseMessagingService() {
  override fun onMessageReceived(remoteMessage: RemoteMessage?) {
    super.onMessageReceived(remoteMessage)
    if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
      // This Remote Message originated from Braze and a push notification was displayed.
      // No further action is needed.
    } else {
      // This Remote Message did not originate from Braze.
      // No action was taken and you can safely pass this Remote Message to other handlers.
    }
  }
}

Wenn Sie einen weiteren Firebase Messaging Service verwenden möchten, können Sie auch einen Fallback-Firebase-Messaging-Dienst angeben, der aufgerufen wird, wenn Ihre Anwendung einen Push erhält, der nicht von Braze stammt.

Geben Sie in Ihrer braze.xml Folgendes an:

1
2
<bool name="com_braze_fallback_firebase_cloud_messaging_service_enabled">true</bool>
<string name="com_braze_fallback_firebase_cloud_messaging_service_classpath">com.company.OurFirebaseMessagingService</string>

oder konfigurieren Sie es über die Laufzeitkonfiguration:

1
2
3
4
5
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setFallbackFirebaseMessagingServiceEnabled(true)
        .setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
val brazeConfig = BrazeConfig.Builder()
        .setFallbackFirebaseMessagingServiceEnabled(true)
        .setFallbackFirebaseMessagingServiceClasspath("com.company.OurFirebaseMessagingService")
        .build()
Braze.configure(this, brazeConfig)

2. Schritt: Kleine Symbole an die Designrichtlinien anpassen

Allgemeine Informationen über Android-Benachrichtigungssymbole finden Sie in der Übersicht über Benachrichtigungen.

Ab Android N sollten Sie kleine Benachrichtigungssymbole, die Farbe enthalten, aktualisieren oder entfernen. Das Android-System (nicht das Braze SDK) ignoriert alle Nicht-Alpha- und Transparenzkanäle in Aktionssymbolen und dem kleinen Benachrichtigungssymbol. Mit anderen Worten: Android wandelt alle Teile Ihres kleinen Benachrichtigungssymbols in einfarbig um, mit Ausnahme der transparenten Bereiche.

So erstellen Sie ein kleines Benachrichtigungssymbol, das korrekt angezeigt wird:

  • Entfernen Sie alle Farben mit Ausnahme von Weiß aus dem Bild.
  • Alle anderen nicht-weißen Bereiche des Assets sollten transparent sein.

Die nachfolgend abgebildeten großen und kleinen Symbole sind Beispiele für richtig gestaltete Symbole:

Ein kleines Symbol, das in der unteren Ecke eines großen Symbols neben einer Nachricht mit dem Text „Hey I'm on my way to the bar but..“ erscheint.

3. Schritt: Benachrichtigungssymbole konfigurieren

Symbole in braze.xml festlegen

Braze ermöglicht es Ihnen, Ihre Benachrichtigungssymbole zu konfigurieren, indem Sie Drawable-Ressourcen in Ihrer braze.xml angeben:

1
2
<drawable name="com_braze_push_small_notification_icon">REPLACE_WITH_YOUR_ICON</drawable>
<drawable name="com_braze_push_large_notification_icon">REPLACE_WITH_YOUR_ICON</drawable>

Die Angabe eines kleinen Benachrichtigungssymbols ist erforderlich. Wenn Sie keines festlegen, verwendet Braze standardmäßig das Anwendungssymbol als kleines Benachrichtigungssymbol, was möglicherweise nicht optimal aussieht.

Die Angabe eines großen Benachrichtigungssymbols ist optional, wird aber empfohlen.

Akzentfarbe des Symbols festlegen

Die Akzentfarbe des Benachrichtigungssymbols kann in Ihrer braze.xml überschrieben werden. Wenn keine Farbe angegeben wird, ist die Standardfarbe das gleiche Grau, das Lollipop für Systembenachrichtigungen verwendet.

1
<integer name="com_braze_default_notification_accent_color">0xFFf33e3e</integer>

Optional können Sie auch eine Farbreferenz verwenden:

1
<color name="com_braze_default_notification_accent_color">@color/my_color_here</color>

Um Braze zu ermöglichen, Ihre App und alle Deeplinks automatisch zu öffnen, wenn auf eine Push-Benachrichtigung geklickt wird, setzen Sie com_braze_handle_push_deep_links_automatically in Ihrer braze.xml auf true:

1
<bool name="com_braze_handle_push_deep_links_automatically">true</bool>

Dieses Flag kann auch über die Laufzeitkonfiguration gesetzt werden:

1
2
3
4
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setHandlePushDeepLinksAutomatically(true)
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
val brazeConfig = BrazeConfig.Builder()
        .setHandlePushDeepLinksAutomatically(true)
        .build()
Braze.configure(this, brazeConfig)

Wenn Sie Deeplinks individuell verarbeiten möchten, müssen Sie einen Push-Callback erstellen, der auf empfangene und geöffnete Push-Intents von Braze reagiert. Weitere Informationen finden Sie unter Verwendung eines Callbacks für Push-Ereignisse.

Behandlung von Vordergrund-Benachrichtigungen

Standardmäßig wird eine Push-Benachrichtigung, die eingeht, während sich Ihre App auf Android im Vordergrund befindet, vom System automatisch angezeigt. Damit Braze die Push-Benachrichtigungsdaten verarbeiten kann (für Analytics-Tracking, Deeplink-Verarbeitung und angepasste Verarbeitung), leiten Sie die eingehenden Push-Daten innerhalb Ihrer FirebaseMessagingService.onMessageReceived-Methode an Braze weiter.

Funktionsweise

Wenn Sie BrazeFirebaseMessagingService.handleBrazeRemoteMessage aufrufen, ermittelt Braze, ob es sich bei der Nutzlast um eine Braze-Push-Benachrichtigung handelt. Ist dies der Fall, wird die Benachrichtigung mit der NotificationManagerCompat-Methode erstellt und angezeigt. Im Gegensatz zu iOS zeigt Android Benachrichtigungen unabhängig davon an, ob sich die App im Vordergrund oder im Hintergrund befindet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example.push;

import com.braze.push.BrazeFirebaseMessagingService;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        // Let Braze process the payload and display the notification
        if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
            // Braze successfully handled the push notification
        } else {
            // Handle non-Braze messages
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.example.push

import com.braze.push.BrazeFirebaseMessagingService
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage

class MyFirebaseMessagingService : FirebaseMessagingService() {
    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        super.onMessageReceived(remoteMessage)

        // Let Braze process the payload and display the notification
        if (BrazeFirebaseMessagingService.handleBrazeRemoteMessage(this, remoteMessage)) {
            // Braze successfully handled the push notification
        } else {
            // Handle non-Braze messages
        }
    }
}

Weitere Informationen finden Sie im Firebase-Integrationsbeispiel im Braze Android SDK-Repository.

Anpassen des Vordergrund-Verhaltens

Wenn Sie ein angepasstes Vordergrund-Verhalten wünschen, z. B. das Unterdrücken der Systembenachrichtigung oder das Anzeigen einer In-App-UI, können Sie Folgendes tun:

  • Verwenden Sie subscribeToPushNotificationEvents, um auf Push-Ereignisse zu reagieren und Deeplinks mit der Methode BrazeNotificationUtils.routeUserWithNotificationOpenedIntent zu verarbeiten. Weitere Informationen finden Sie im Firebase-Push-Beispiel.
  • Erstellen und veröffentlichen Sie Ihre eigene Benachrichtigung mithilfe einer angepassten IBrazeNotificationFactory oder unterdrücken Sie die Benachrichtigung, indem Sie notificationManager.notify in Ihrem Verarbeitungspfad nicht aufrufen.

Weitere Informationen zum Anpassen von Benachrichtigungen finden Sie unter Angepasste Benachrichtigungsfabrik.

Befolgen Sie die Anweisungen in der Android-Entwicklerdokumentation zum Thema Deeplinking, wenn Sie Ihrer App noch keine Deeplinks hinzugefügt haben. Weitere Informationen zu Deeplinks finden Sie in unserem FAQ-Artikel.

Das Braze-Dashboard unterstützt das Setzen von Deeplinks oder Web-URLs in Push-Benachrichtigungs-Campaigns und Canvases, die beim Klick auf die Benachrichtigung geöffnet werden.

Die Einstellung „On Click Behavior“ im Braze-Dashboard, wobei „Deep Link Into Application“ aus dem Dropdown-Menü ausgewählt wurde.

Anpassen des Back-Stack-Verhaltens

Standardmäßig platziert das Android SDK die Hauptaktivität Ihrer Host-App im Back Stack, wenn Push-Deeplinks verfolgt werden. Braze ermöglicht es Ihnen, eine angepasste Aktivität festzulegen, die im Back Stack anstelle der Hauptaktivität des Launchers geöffnet wird, oder den Back Stack ganz zu deaktivieren.

Um beispielsweise eine Aktivität namens YourMainActivity als Back-Stack-Aktivität festzulegen, verwenden Sie die Laufzeitkonfiguration:

1
2
3
4
5
BrazeConfig brazeConfig = new BrazeConfig.Builder()
        .setPushDeepLinkBackStackActivityEnabled(true)
        .setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
        .build();
Braze.configure(this, brazeConfig);
1
2
3
4
5
val brazeConfig = BrazeConfig.Builder()
        .setPushDeepLinkBackStackActivityEnabled(true)
        .setPushDeepLinkBackStackActivityClass(YourMainActivity.class)
        .build()
Braze.configure(this, brazeConfig)

Die entsprechende Konfiguration für Ihre braze.xml sieht wie folgt aus. Beachten Sie, dass der Klassenname derselbe sein muss wie der von Class.forName() zurückgegebene.

1
2
<bool name="com_braze_push_deep_link_back_stack_activity_enabled">true</bool>
<string name="com_braze_push_deep_link_back_stack_activity_class_name">your.package.name.YourMainActivity</string>

5. Schritt: Benachrichtigungskanäle definieren

Das Braze Android SDK unterstützt Android-Benachrichtigungskanäle. Wenn eine Braze-Benachrichtigung keine ID für einen Benachrichtigungskanal enthält oder eine ungültige Kanal-ID hat, zeigt Braze die Benachrichtigung mit dem im SDK definierten Standard-Benachrichtigungskanal an. Unternehmensnutzer:innen verwenden Android-Benachrichtigungskanäle innerhalb der Plattform, um Benachrichtigungen zu gruppieren.

Um den für Nutzer:innen sichtbaren Namen des Standard-Braze-Benachrichtigungskanals festzulegen, verwenden Sie BrazeConfig.setDefaultNotificationChannelName().

Um die für Nutzer:innen sichtbare Beschreibung des Standard-Braze-Benachrichtigungskanals festzulegen, verwenden Sie BrazeConfig.setDefaultNotificationChannelDescription().

Aktualisieren Sie alle API-Campaigns mit dem Parameter Android-Push-Objekt, um das Feld notification_channel aufzunehmen. Wenn dieses Feld nicht angegeben wird, sendet Braze die Benachrichtigungsnutzdaten mit der Kanal-ID des Dashboard-Fallback-Kanals.

Außer dem Standard-Benachrichtigungskanal erstellt Braze keine weiteren Kanäle. Alle anderen Kanäle müssen programmatisch von der Host-App definiert und dann im Braze-Dashboard eingetragen werden.

Der Standardname und die Beschreibung des Kanals können auch in braze.xml konfiguriert werden.

1
2
<string name="com_braze_default_notification_channel_name">Your channel name</string>
<string name="com_braze_default_notification_channel_description">Your channel description</string>

6. Schritt: Anzeige und Analytics von Benachrichtigungen testen

Anzeige testen

Jetzt sollten Sie die von Braze gesendeten Benachrichtigungen sehen können. Um dies zu testen, gehen Sie auf die Seite Campaigns in Ihrem Braze-Dashboard und erstellen Sie eine Push Notification-Campaign. Wählen Sie Android Push und gestalten Sie Ihre Nachricht. Klicken Sie dann auf das Augensymbol im Composer, um den Test-Sender aufzurufen. Geben Sie die Nutzer-ID oder E-Mail-Adresse Ihres aktuellen Nutzers bzw. Ihrer aktuellen Nutzerin ein und klicken Sie auf Send Test. Die Push-Benachrichtigung sollte auf Ihrem Gerät erscheinen.

Die Registerkarte „Test“ einer Push-Benachrichtigungs-Campaign im Braze-Dashboard.

Bei Problemen mit der Push-Anzeige lesen Sie bitte unsere Anleitung zur Fehlerbehebung.

Analytics testen

Zu diesem Zeitpunkt sollte auch das Analytics-Logging für Push-Benachrichtigungsöffnungen funktionieren. Wenn Sie auf die eingehende Benachrichtigung klicken, sollte sich der Wert für Direct Opens auf der Ergebnisseite Ihrer Campaign um 1 erhöhen. In unserem Artikel über Push-Berichte finden Sie eine ausführliche Aufschlüsselung der Push-Analytics.

Bei Problemen mit Push-Analytics lesen Sie bitte unsere Anleitung zur Fehlerbehebung.

Testen über die Kommandozeile

Wenn Sie In-App- und Push-Benachrichtigungen über die Befehlszeilenschnittstelle testen möchten, können Sie über cURL und die Messaging-API eine einzelne Benachrichtigung über das Terminal senden. Sie müssen die folgenden Felder durch die richtigen Werte für Ihren Testfall ersetzen:

  • YOUR_API_KEY (Gehen Sie zu Settings > API Keys.)
  • YOUR_EXTERNAL_USER_ID (Suchen Sie auf der Seite Search Users nach einem Profil.)
  • YOUR_KEY1 (optional)
  • YOUR_VALUE1 (optional)
1
2
3
4
5
6
7
8
9
10
11
12
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_API_KEY}" -d '{
  "external_user_ids":["YOUR_EXTERNAL_USER_ID"],
  "messages": {
    "android_push": {
      "title":"Test push title",
      "alert":"Test push",
      "extra": {
        "YOUR_KEY1":"YOUR_VALUE1"
      }
    }
  }
}' https://rest.iad-01.braze.com/messages/send

Dieses Beispiel verwendet die Instanz US-01. Wenn Sie sich nicht in dieser Instanz befinden, ersetzen Sie den US-01-Endpunkt durch Ihren Endpunkt.

Push-Benachrichtigungen für Konversationen

Die People-and-Conversations-Initiative ist eine mehrjährige Android-Initiative, die darauf abzielt, Menschen und Gespräche in den Systemoberflächen des Smartphones hervorzuheben. Diese Priorität beruht auf der Tatsache, dass die Kommunikation und Interaktion mit anderen Menschen für die Mehrheit der Android-Nutzer:innen über alle Bevölkerungsgruppen hinweg nach wie vor der am meisten geschätzte und wichtigste Funktionsbereich ist.

Voraussetzungen

  • Dieser Benachrichtigungstyp erfordert das Braze Android SDK v15.0.0+ und Geräte mit Android 11+.
  • Bei nicht unterstützten Geräten oder SDKs wird auf eine standardmäßige Push-Benachrichtigung zurückgegriffen.

Dieses Feature ist nur über die Braze REST API verfügbar. Weitere Informationen finden Sie im Android-Push-Objekt.

Fehler bei überschrittener FCM-Quote

Wenn Ihr Limit für Firebase Cloud Messaging (FCM) überschritten wird, gibt Google den Fehler „Quota exceeded“ zurück. Der Standardgrenzwert für FCM liegt bei 600.000 Anfragen pro Minute. Braze wiederholt den Versand gemäß den von Google empfohlenen Best Practices. Eine große Anzahl dieser Fehler kann jedoch die Sendezeit um mehrere Minuten verlängern. Um mögliche Auswirkungen abzumildern, sendet Braze Ihnen eine Warnung, dass das Rate-Limit überschritten wird, und welche Schritte Sie unternehmen können, um die Fehler zu vermeiden.

Um Ihr aktuelles Limit zu überprüfen, gehen Sie zu Google Cloud Console > APIs & Services > Firebase Cloud Messaging API > Quotas & System Limits oder besuchen Sie die Seite FCM API Quotas.

Best Practices

Wir empfehlen die folgenden Best Practices, um die Fehlerquote niedrig zu halten.

Erhöhung des Rate-Limits bei FCM anfordern

Um eine Erhöhung des Rate-Limits bei FCM anzufordern, können Sie sich direkt an den Firebase Support wenden oder wie folgt vorgehen:

  1. Gehen Sie zur Seite FCM API Quotas.
  2. Suchen Sie die Quote für Send requests per minute.
  3. Wählen Sie Edit Quota.
  4. Geben Sie einen neuen Wert ein und senden Sie Ihre Anfrage ab.

Workspace-Rate-Limit anwenden

Sie können ein Workspace-Rate-Limit für Android-Push-Benachrichtigungen festlegen. Dies kann helfen, die Zustellrate Ihrer ausgehenden Nachrichten zu regulieren. Weitere Details finden Sie unter Workspace-Messaging-Rate-Limits.

Rate-Limits

Push-Benachrichtigungen unterliegen Rate-Limits – Sie können also bedenkenlos so viele senden, wie Ihre Anwendung benötigt. iOS und die Apple Push Notification Service (APNs)-Server steuern, wie oft sie zugestellt werden, und es gibt keine Probleme, wenn Sie zu viele senden. Wenn Ihre Push-Benachrichtigungen gedrosselt werden, werden sie möglicherweise verzögert, bis das Gerät das nächste Mal ein Keep-Alive-Paket sendet oder eine andere Benachrichtigung erhält.

Push-Benachrichtigungen einrichten

1. Schritt: Laden Sie Ihr APNs-Token hoch

Bevor Sie eine iOS Push-Benachrichtigung mit Braze versenden können, müssen Sie Ihre .p8 Push-Benachrichtigungsdatei hochladen, wie beschrieben in der Entwickler:in Dokumentation von Apple:

  1. Gehen Sie in Ihrem Apple Entwickler-Account zu Zertifikate, Bezeichner & Profile.
  2. Wählen Sie unter Schlüssel die Option Alle und klicken Sie auf die Schaltfläche Hinzufügen (+) in der oberen rechten Ecke.
  3. Geben Sie unter Schlüsselbeschreibung einen eindeutigen Namen für den Signierschlüssel ein.
  4. Aktivieren Sie unter Wichtige Dienste das Kontrollkästchen Apple Push Notification Service (APNs) und klicken Sie dann auf Weiter. Klicken Sie auf Bestätigen.
  5. Notieren Sie sich die ID des Schlüssels. Klicken Sie auf Download, um den Schlüssel zu generieren und herunterzuladen. Stellen Sie sicher, dass Sie die heruntergeladene Datei an einem sicheren Ort speichern, da Sie sie nur einmal herunterladen können.
  6. Gehen Sie in Braze zu Einstellungen > App-Einstellungen und laden Sie die Datei .p8 unter Apple Push Certificate hoch. Sie können entweder Ihr Entwicklungs- oder Ihr Produktions-Push-Zertifikat hochladen. Um Push-Benachrichtigungen zu testen, nachdem Ihre App live im App Store ist, empfiehlt es sich, einen separaten Arbeitsbereich für die Entwicklungsversion Ihrer App einzurichten.
  7. Wenn Sie dazu aufgefordert werden, geben Sie die Bundle ID, die Key ID und die Team ID Ihrer App ein. Sie müssen auch angeben, ob die Benachrichtigungen an die Entwicklungs- oder die Produktionsumgebung Ihrer App gesendet werden sollen, die durch ihr Bereitstellungsprofil definiert ist.
  8. Wenn Sie fertig sind, wählen Sie Speichern.

2. Schritt: Push-Funktionen aktivieren

Öffnen Sie in Xcode den Abschnitt Signing & Capabilities des Haupt-App-Ziels und fügen Sie die Push-Benachrichtigungsfunktion hinzu.

Der Abschnitt „Signing & Capabilities“ in einem Xcode-Projekt.

3. Schritt: Push-Verarbeitung einrichten

Sie können das Swift SDK verwenden, um die Verarbeitung von Remote-Benachrichtigungen, die von Braze empfangen werden, zu automatisieren. Dies ist die einfachste Methode zur Verarbeitung von Push-Benachrichtigungen und die empfohlene Vorgehensweise.

Schritt 3.1: Automatisierung in der Push-Eigenschaft aktivieren

Um die automatische Push-Integration zu aktivieren, setzen Sie die Eigenschaft automation der push-Konfiguration auf true:

1
2
let configuration = Braze.Configuration(apiKey: "{YOUR-BRAZE-API-KEY}", endpoint: "{YOUR-BRAZE-API-ENDPOINT}")
configuration.push.automation = true
1
2
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"{YOUR-BRAZE-API-KEY}" endpoint:@"{YOUR-BRAZE-API-ENDPOINT}"];
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];

Dies weist das SDK an:

  • Ihre Anwendung für Push-Benachrichtigungen im System zu registrieren.
  • Die Push-Benachrichtigungs-Autorisierung/-Berechtigung bei der Initialisierung anzufordern.
  • Dynamisch Implementierungen für die systembezogenen Delegate-Methoden für Push-Benachrichtigungen bereitzustellen.

Schritt 3.2: Individuelle Konfigurationen überschreiben (optional)

Für eine genauere Kontrolle kann jeder Automatisierungsschritt einzeln aktiviert oder deaktiviert werden:

1
2
3
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = true
configuration.push.automation.requestAuthorizationAtLaunch = false
1
2
3
// Enable all automations and disable the automatic notification authorization request at launch.
configuration.push.automation = [[BRZConfigurationPushAutomation alloc] initEnablingAllAutomations:YES];
configuration.push.automation.requestAuthorizationAtLaunch = NO;

Siehe Braze.Configuration.Push.Automation für alle verfügbaren Optionen und automation für weitere Informationen zum Automatisierungsverhalten.

Schritt 3.1: Für Push-Benachrichtigungen bei APNs registrieren

Fügen Sie das entsprechende Code-Beispiel in die application:didFinishLaunchingWithOptions:-Delegate-Methode Ihrer App ein, damit sich die Geräte Ihrer Nutzer:innen bei APNs registrieren können. Stellen Sie sicher, dass Sie den gesamten Code für die Push-Integration im Hauptthread Ihrer Anwendung aufrufen.

Braze bietet auch Standard-Push-Kategorien für die Unterstützung von Push-Action-Buttons, die manuell zu Ihrem Push-Registrierungscode hinzugefügt werden müssen. Weitere Integrationsschritte finden Sie unter Push-Action-Buttons.

Fügen Sie den folgenden Code in die Methode application:didFinishLaunchingWithOptions: Ihres App-Delegaten ein.

1
2
3
4
5
6
7
8
9
10
11
application.registerForRemoteNotifications()
let center = UNUserNotificationCenter.current()
center.setNotificationCategories(Braze.Notifications.categories)
center.delegate = self
var options: UNAuthorizationOptions = [.alert, .sound, .badge]
if #available(iOS 12.0, *) {
  options = UNAuthorizationOptions(rawValue: options.rawValue | UNAuthorizationOptions.provisional.rawValue)
}
center.requestAuthorization(options: options) { granted, error in
  print("Notification authorization, granted: \(granted), error: \(String(describing: error))")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[application registerForRemoteNotifications];
UNUserNotificationCenter *center = UNUserNotificationCenter.currentNotificationCenter;
[center setNotificationCategories:BRZNotifications.categories];
center.delegate = self;
UNAuthorizationOptions options = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
if (@available(iOS 12.0, *)) {
  options = options | UNAuthorizationOptionProvisional;
}
[center requestAuthorizationWithOptions:options
                      completionHandler:^(BOOL granted, NSError *_Nullable error) {
                        NSLog(@"Notification authorization, granted: %d, "
                              @"error: %@)",
                              granted, error);
}];

Schritt 3.2: Push-Token bei Braze registrieren

Sobald die APNs-Registrierung abgeschlossen ist, übergeben Sie das resultierende deviceToken an Braze, um Push-Benachrichtigungen für die Nutzer:innen zu aktivieren.

Fügen Sie den folgenden Code in die Methode application(_:didRegisterForRemoteNotificationsWithDeviceToken:) Ihrer App ein:

1
AppDelegate.braze?.notifications.register(deviceToken: deviceToken)

Fügen Sie den folgenden Code in die Methode application:didRegisterForRemoteNotificationsWithDeviceToken: Ihrer App ein:

1
[AppDelegate.braze.notifications registerDeviceToken:deviceToken];

Schritt 3.3: Push-Verarbeitung aktivieren

Leiten Sie als Nächstes die empfangenen Push-Benachrichtigungen an Braze weiter. Dieser Schritt ist für die Protokollierung von Push-Analytics und die Link-Verarbeitung erforderlich. Stellen Sie sicher, dass Sie den gesamten Code für die Push-Integration im Hauptthread Ihrer Anwendung aufrufen.

Standard-Push-Verarbeitung

Um die Standard-Push-Verarbeitung von Braze zu aktivieren, fügen Sie den folgenden Code in die Methode application(_:didReceiveRemoteNotification:fetchCompletionHandler:) Ihrer App ein:

1
2
3
4
5
6
7
if let braze = AppDelegate.braze, braze.notifications.handleBackgroundNotification(
  userInfo: userInfo,
  fetchCompletionHandler: completionHandler
) {
  return
}
completionHandler(.noData)

Fügen Sie als Nächstes den folgenden Code in die Methode userNotificationCenter(_:didReceive:withCompletionHandler:) Ihrer App ein:

1
2
3
4
5
6
7
if let braze = AppDelegate.braze, braze.notifications.handleUserNotification(
  response: response,
  withCompletionHandler: completionHandler
) {
  return
}
completionHandler()

Um die Standard-Push-Verarbeitung von Braze zu aktivieren, fügen Sie den folgenden Code in die Methode application:didReceiveRemoteNotification:fetchCompletionHandler: Ihrer Anwendung ein:

1
2
3
4
5
6
7
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleBackgroundNotificationWithUserInfo:userInfo
                                                                                                       fetchCompletionHandler:completionHandler];
if (processedByBraze) {
  return;
}

completionHandler(UIBackgroundFetchResultNoData);

Fügen Sie als Nächstes den folgenden Code in die Methode (void)userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: Ihrer App ein:

1
2
3
4
5
6
7
BOOL processedByBraze = AppDelegate.braze != nil && [AppDelegate.braze.notifications handleUserNotificationWithResponse:response
                                                                                                  withCompletionHandler:completionHandler];
if (processedByBraze) {
  return;
}

completionHandler();
Vordergrund-Push-Verarbeitung

Um Push-Benachrichtigungen im Vordergrund zu aktivieren und Braze diese beim Empfang erkennen zu lassen, implementieren Sie UNUserNotificationCenter.userNotificationCenter(_:willPresent:withCompletionHandler:). Wenn Nutzer:innen auf Ihre Vordergrund-Benachrichtigung tippen, wird der Push-Delegate userNotificationCenter(_:didReceive:withCompletionHandler:) aufgerufen und Braze protokolliert das Push-Klick-Event.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func userNotificationCenter(
  _ center: UNUserNotificationCenter,
  willPresent notification: UNNotification,
  withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions
) -> Void) {
  if let braze = AppDelegate.braze {
    // Forward notification payload to Braze for processing.
    braze.notifications.handleForegroundNotification(notification: notification)
  }

  // Configure application's foreground notification display options.
  if #available(iOS 14.0, *) {
    completionHandler([.list, .banner])
  } else {
    completionHandler([.alert])
  }
}

Um Push-Benachrichtigungen im Vordergrund zu aktivieren und Braze diese beim Empfang erkennen zu lassen, implementieren Sie userNotificationCenter:willPresentNotification:withCompletionHandler:. Wenn Nutzer:innen auf Ihre Vordergrund-Benachrichtigung tippen, wird der Push-Delegate userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: aufgerufen und Braze protokolliert das Push-Klick-Event.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
       willPresentNotification:(UNNotification *)notification
         withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {
  if (AppDelegate.braze != nil) {
    // Forward notification payload to Braze for processing.
    [AppDelegate.braze.notifications handleForegroundNotificationWithNotification:notification];
  }

  // Configure application's foreground notification display options.
  if (@available(iOS 14.0, *)) {
    completionHandler(UNNotificationPresentationOptionList | UNNotificationPresentationOptionBanner);
  } else {
    completionHandler(UNNotificationPresentationOptionAlert);
  }
}

Benachrichtigungen testen

Wenn Sie In-App- und Push-Benachrichtigungen über die Befehlszeile testen möchten, können Sie über CURL und die Messaging-API eine einzelne Benachrichtigung über das Terminal senden. Sie müssen die folgenden Felder durch die richtigen Werte für Ihren Testfall ersetzen:

  • YOUR_API_KEY – verfügbar unter Einstellungen > API-Schlüssel.
  • YOUR_EXTERNAL_USER_ID – verfügbar auf der Seite Nutzer:innen suchen. Weitere Informationen finden Sie unter Nutzer-IDs zuweisen.
  • YOUR_KEY1 (optional)
  • YOUR_VALUE1 (optional)

Im folgenden Beispiel wird die Instanz US-01 verwendet. Wenn Sie sich nicht auf dieser Instanz befinden, sehen Sie in unserer API-Dokumentation nach, an welchen Endpunkt Sie Anfragen stellen müssen.

1
2
3
4
5
6
7
8
9
10
11
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer {YOUR_API_KEY}" -d '{
  "external_user_ids":["YOUR_EXTERNAL_USER_ID"],
  "messages": {
    "apple_push": {
      "alert":"Test push",
      "extra": {
        "YOUR_KEY1":"YOUR_VALUE1"
      }
    }
  }
}' https://rest.iad-01.braze.com/messages/send

Push-Benachrichtigungs-Updates abonnieren

Um auf die von Braze verarbeiteten Push-Benachrichtigungs-Payloads zuzugreifen, verwenden Sie die Methode Braze.Notifications.subscribeToUpdates(payloadTypes:_:).

Mit dem Parameter payloadTypes können Sie angeben, ob Sie Benachrichtigungen über Push-Öffnungs-Events, Push-Empfangs-Events oder beides abonnieren möchten.

1
2
3
4
5
6
// This subscription is maintained through a Braze cancellable, which will observe for changes until the subscription is cancelled.
// You must keep a strong reference to the cancellable to keep the subscription active.
// The subscription is canceled either when the cancellable is deinitialized or when you call its `.cancel()` method.
let cancellable = AppDelegate.braze?.notifications.subscribeToUpdates(payloadTypes: [.open, .received]) { payload in
  print("Braze processed notification with title '\(payload.title)' and body '\(payload.body)'")
}
1
2
3
4
5
NSInteger filtersValue = BRZNotificationsPayloadTypeFilter.opened.rawValue | BRZNotificationsPayloadTypeFilter.received.rawValue;
BRZNotificationsPayloadTypeFilter *filters = [[BRZNotificationsPayloadTypeFilter alloc] initWithRawValue: filtersValue];
BRZCancellable *cancellable = [notifications subscribeToUpdatesWithPayloadTypes:filters update:^(BRZNotificationsPayload * _Nonnull payload) {
  NSLog(@"Braze processed notification with title '%@' and body '%@'", payload.title, payload.body);
}];

Vordergrund-Benachrichtigungen verarbeiten

Standardmäßig zeigt iOS Push-Benachrichtigungen, die eingehen, während sich Ihre App im Vordergrund befindet, nicht automatisch an. Um Push-Benachrichtigungen im Vordergrund anzuzeigen und mit Braze Analytics zu verfolgen, rufen Sie die Methode handleForegroundNotification(notification:) innerhalb Ihrer UNUserNotificationCenterDelegate.userNotificationCenter(_:willPresent:withCompletionHandler:)-Implementierung auf.

Funktionsweise

Wenn Sie handleForegroundNotification(notification:) aufrufen, verarbeitet Braze den Benachrichtigungs-Payload, um Analytics zu protokollieren und Deeplinks oder Button-Aktionen zu verarbeiten. Das tatsächliche Anzeigeverhalten wird durch die UNNotificationPresentationOptions gesteuert, die Sie an den Completion-Handler übergeben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import BrazeKit
import UserNotifications

extension AppDelegate: UNUserNotificationCenterDelegate {
  func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    willPresent notification: UNNotification,
    withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
  ) {
    // Let Braze process the notification payload
    if let braze = AppDelegate.braze {
      braze.notifications.handleForegroundNotification(notification: notification)
    }

    // Control how the notification appears in the foreground
    if #available(iOS 14.0, *) {
      completionHandler([.banner, .list, .sound])
    } else {
      completionHandler([.alert, .sound])
    }
  }
}

Ein vollständiges Beispiel finden Sie im Beispiel zur manuellen Integration von Push-Benachrichtigungen im Braze Swift SDK-Repository.

Push-Primer

Push-Primer-Campaigns ermutigen Ihre Nutzer:innen, Push-Benachrichtigungen auf ihrem Gerät für Ihre App zu aktivieren. Dies kann ohne SDK-Anpassung mit unserem No-Code-Push-Primer umgesetzt werden.

Dynamische APNs-Gateway-Verwaltung

Die dynamische Apple Push Notification Service (APNs)-Gateway-Verwaltung erhöht die Zuverlässigkeit und Effizienz von iOS-Push-Benachrichtigungen, indem sie automatisch die richtige APNs-Umgebung erkennt. Bisher mussten Sie die APNs-Umgebungen (Entwicklung oder Produktion) für Ihre Push-Benachrichtigungen manuell auswählen, was gelegentlich zu falschen Gateway-Konfigurationen, Zustellungsfehlern und BadDeviceToken-Fehlern führte.

Mit der dynamischen APNs-Gateway-Verwaltung erhalten Sie:

  • Verbesserte Zuverlässigkeit: Benachrichtigungen werden stets an die korrekte APNs-Umgebung zugestellt, wodurch fehlgeschlagene Zustellungen reduziert werden.
  • Vereinfachte Konfiguration: Sie müssen die APNs-Gateway-Einstellungen nicht mehr manuell verwalten.
  • Fehlerresistenz: Ungültige oder fehlende Gateway-Werte werden reibungslos verarbeitet, sodass der Dienst ohne Unterbrechung weiterläuft.

Voraussetzungen

Braze unterstützt die dynamische APNs-Gateway-Verwaltung für Push-Benachrichtigungen auf iOS mit der folgenden SDK-Versionsanforderung:

Funktionsweise

Wenn eine iOS-App mit dem Braze Swift SDK integriert wird, sendet sie gerätebezogene Daten, einschließlich aps-environment, an die Braze SDK API, sofern verfügbar. Der apns_gateway-Wert gibt an, ob die App die Entwicklungsumgebung (dev) oder die Produktionsumgebung (prod) von APNs verwendet.

Braze speichert außerdem den gemeldeten Gateway-Wert für jedes Gerät. Wenn ein neuer, gültiger Gateway-Wert empfangen wird, aktualisiert Braze den gespeicherten Wert automatisch.

Wenn Braze eine Push-Benachrichtigung sendet:

  • Wenn für das Gerät ein gültiger Gateway-Wert (dev oder prod) gespeichert ist, verwendet Braze diesen, um die korrekte APNs-Umgebung zu ermitteln.
  • Wenn kein Gateway-Wert gespeichert ist, verwendet Braze standardmäßig die auf der Seite App-Einstellungen konfigurierte APNs-Umgebung.

Häufig gestellte Fragen

Warum wurde dieses Feature eingeführt?

Mit der dynamischen APNs-Gateway-Verwaltung wird automatisch die richtige Umgebung ausgewählt. Bisher mussten Sie das APNs-Gateway manuell konfigurieren, was zu BadDeviceToken-Fehlern, Token-Invalidierung und möglichen APNs-Rate-Limiting-Problemen führen konnte.

Wie wirkt sich dies auf die Zustellungs-Performance aus?

Dieses Feature verbessert die Zustellungsraten, indem Push-Token stets an die richtige APNs-Umgebung weitergeleitet werden, wodurch Fehler aufgrund falsch konfigurierter Gateways vermieden werden.

Kann ich dieses Feature deaktivieren?

Die dynamische APNs-Gateway-Verwaltung ist standardmäßig aktiviert und sorgt für eine verbesserte Zuverlässigkeit. Wenn Sie spezifische Anwendungsfälle haben, die eine manuelle Gateway-Auswahl erfordern, wenden Sie sich an den Braze-Support.

Über Push-Benachrichtigungen für Android TV

Obwohl es sich nicht um ein natives Feature handelt, wird die Push-Integration von Android TV ermöglicht, indem das Braze Android SDK und Firebase Cloud Messaging genutzt werden, um ein Push-Token für Android TV zu registrieren. Es ist jedoch notwendig, eine UI zu erstellen, um die Nutzdaten der Benachrichtigung nach deren Empfang anzuzeigen.

Voraussetzungen

Um dieses Feature nutzen zu können, müssen Sie folgende Schritte ausführen:

Push-Benachrichtigungen einrichten

So richten Sie Push-Benachrichtigungen für Android TV ein:

  1. Erstellen Sie eine angepasste Ansicht in Ihrer App, um Ihre Benachrichtigungen anzuzeigen.
  2. Erstellen Sie eine angepasste Benachrichtigungsfabrik. Damit wird das Standardverhalten des SDK außer Kraft gesetzt und Sie können die Benachrichtigungen manuell anzeigen lassen. Die Rückgabe von null verhindert die Verarbeitung durch das SDK und erfordert angepassten Code, um die Benachrichtigung anzuzeigen. Nachdem diese Schritte abgeschlossen sind, können Sie mit dem Senden von Push-Nachrichten an Android TV beginnen!

  3. (Optional) Um Click Analytics effektiv zu verfolgen, richten Sie Click Analytics Tracking ein. Dies können Sie erreichen, indem Sie einen Push-Callback erstellen, der auf die geöffneten und empfangenen Push-Intents von Braze wartet.

Testen von Android TV Push-Benachrichtigungen

Um zu testen, ob Ihre Push-Implementierung erfolgreich ist, senden Sie eine Benachrichtigung vom Braze-Dashboard aus, wie Sie es normalerweise bei einem Android-Gerät tun würden.

  • Bei geschlossener Anwendung: Die Push-Nachricht zeigt eine Toast-Benachrichtigung auf dem Bildschirm an.
  • Bei geöffneter Anwendung: Sie haben die Möglichkeit, die Nachricht in Ihrer eigenen gehosteten Benutzeroberfläche anzuzeigen. Wir empfehlen, den UI-Stil der In-App-Nachrichten unseres Android Mobile SDK zu übernehmen.

Bewährte Praktiken

Für Marketer, die Braze verwenden, wird das Einführen einer Kampagne für Android TV identisch sein mit dem Einführen eines Push für Android Mobile Apps. Um ausschließlich diese Geräte anzusprechen, empfehlen wir, bei der Segmentierung die Android TV App auszuwählen.

Die zugestellte und angeklickte Antwort, die von FCM zurückgegeben wird, folgt der gleichen Konvention wie bei einem Android-Mobilgerät; daher werden alle Fehler im Nachrichten-Aktivitätsprotokoll angezeigt.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Cordova Braze SDK integrieren. Nach der Integration des SDK sind die grundlegenden Funktionen für Push-Benachrichtigungen standardmäßig aktiviert. Um Rich-Push-Benachrichtigungen und Push-Storys zu verwenden, müssen Sie sie einzeln einrichten. Um iOS-Push-Nachrichten zu verwenden, müssen Sie außerdem ein gültiges Push-Zertifikat hochladen.

Push-Deeplinking aktivieren

Standardmäßig verarbeitet das Braze Cordova SDK Deeplinks aus Push-Benachrichtigungen nicht automatisch. Um Push-Deeplinking zu aktivieren, befolgen Sie bitte die Konfigurationsschritte unter Deep Linking. Weitere Informationen zu diesen und anderen Push-Konfigurationsoptionen finden Sie unter Optionale Konfigurationen.

Deaktivieren grundlegender Push-Benachrichtigungen (nur iOS)

Nachdem Sie das Braze Cordova SDK für iOS integriert haben, ist die grundlegende Funktionalität der Push-Benachrichtigung standardmäßig aktiviert. Um diese Funktion in Ihrer iOS App zu deaktivieren, fügen Sie Folgendes zu Ihrer config.xml Datei hinzu. Weitere Informationen finden Sie unter Optionale Konfigurationen.

1
2
3
4
<platform name="ios">
    <preference name="com.braze.ios_disable_automatic_push_registration" value="NO" />
    <preference name="com.braze.ios_disable_automatic_push_handling" value="NO" />
</platform>

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Flutter Braze SDK integrieren.

Push-Benachrichtigungen einrichten

1. Schritt: Ersteinrichtung abschließen

Schritt 1.1: Für Push registrieren

Registrieren Sie sich für Push mit der Firebase Cloud Messaging (FCM)-API von Google. Eine ausführliche Anleitung finden Sie in den folgenden Schritten der nativen Android-Push-Integrationsanleitung:

  1. Firebase zu Ihrem Projekt hinzufügen.
  2. Cloud Messaging zu Ihren Abhängigkeiten hinzufügen.
  3. Ein Dienstkonto erstellen.
  4. JSON-Zugangsdaten generieren.
  5. Ihre JSON-Zugangsdaten auf Braze hochladen.

Schritt 1.2: Ihre Google Sender ID ermitteln

Gehen Sie zunächst zur Firebase-Konsole, öffnen Sie Ihr Projekt und wählen Sie dann  Settings > Project settings.

Das Firebase-Projekt mit geöffnetem Menü „Settings“.

Wählen Sie Cloud Messaging und kopieren Sie dann unter Firebase Cloud Messaging API (V1) die Sender ID in Ihre Zwischenablage.

Die Seite „Cloud Messaging“ des Firebase-Projekts mit hervorgehobener „Sender ID“.

Schritt 1.3: Ihre braze.xml aktualisieren

Fügen Sie Folgendes zu Ihrer Datei braze.xml hinzu. Ersetzen Sie FIREBASE_SENDER_ID durch die Sender ID, die Sie zuvor kopiert haben.

1
2
<bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
<string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>

Schritt 1.1: APNs-Zertifikate hochladen

Generieren Sie ein Apple Push Notification Service (APNs)-Zertifikat und laden Sie es in das Braze-Dashboard hoch. Eine vollständige Anleitung finden Sie unter Hochladen Ihres APNs-Zertifikats.

Schritt 1.2: Push-Benachrichtigungsunterstützung zu Ihrer App hinzufügen

Folgen Sie der Anleitung für die native iOS-Integration.

2. Schritt: Auf Push-Benachrichtigungsereignisse lauschen (optional)

Um auf Push-Benachrichtigungsereignisse zu lauschen, die Braze erkannt und verarbeitet hat, rufen Sie subscribeToPushNotificationEvents() auf und übergeben Sie ein Argument zur Ausführung.

1
2
3
4
5
6
7
8
9
10
// Create stream subscription
StreamSubscription pushEventsStreamSubscription;

pushEventsStreamSubscription = braze.subscribeToPushNotificationEvents((BrazePushEvent pushEvent) {
  print("Push Notification event of type ${pushEvent.payloadType} seen. Title ${pushEvent.title}\n and deeplink ${pushEvent.url}");
  // Handle push notification events
});

// Cancel stream subscription
pushEventsStreamSubscription.cancel();
Ereignisfelder für Push-Benachrichtigungen

Eine vollständige Liste der Felder für Push-Benachrichtigungen finden Sie in der folgenden Tabelle:

Feldname Typ Beschreibung
payloadType String Gibt den Payload-Typ der Benachrichtigung an. Die beiden Werte, die vom Braze Flutter SDK gesendet werden, sind push_opened und push_received. Unter iOS werden nur push_opened-Ereignisse unterstützt.
url String Gibt die URL an, die durch die Benachrichtigung geöffnet wurde.
useWebview Boolescher Wert Wenn true, wird die URL in der App in einer modalen Webansicht geöffnet. Wenn false, wird die URL im Browser des Geräts geöffnet.
title String Stellt den Titel der Benachrichtigung dar.
body String Stellt den Textkörper oder Inhalt der Benachrichtigung dar.
summaryText String Stellt den zusammenfassenden Text der Benachrichtigung dar. Dieser wird unter iOS von subtitle zugeordnet.
badgeCount Zahl Stellt die Badge-Anzahl der Benachrichtigung dar.
timestamp Zahl Stellt den Zeitpunkt dar, zu dem der Payload von der Anwendung empfangen wurde.
isSilent Boolescher Wert Wenn true, wird der Payload still empfangen. Einzelheiten zum Senden stiller Push-Benachrichtigungen unter Android finden Sie unter Stille Push-Benachrichtigungen unter Android. Einzelheiten zum Senden stiller Push-Benachrichtigungen unter iOS finden Sie unter Stille Push-Benachrichtigungen unter iOS.
isBrazeInternal Boolescher Wert Dies ist true, wenn ein Benachrichtigungs-Payload für eine interne SDK-Funktion gesendet wurde, wie z. B. die Synchronisierung von Feature-Flags oder das Uninstall-Tracking. Der Payload wird für Nutzer:innen still empfangen.
imageUrl String Gibt die URL an, die mit dem Benachrichtigungsbild verknüpft ist.
brazeProperties Objekt Stellt die mit der Campaign verbundenen Braze-Eigenschaften dar (Schlüssel-Wert-Paare).
ios Objekt Stellt iOS-spezifische Felder dar.
android Objekt Stellt Android-spezifische Felder dar.

3. Schritt: Anzeige von Push-Benachrichtigungen testen

So testen Sie Ihre Integration, nachdem Sie Push-Benachrichtigungen in der nativen Schicht konfiguriert haben:

  1. Legen Sie eine:n aktive:n Nutzer:in in der Flutter-Anwendung fest. Dazu initialisieren Sie das Plugin, indem Sie braze.changeUser('your-user-id') aufrufen.
  2. Gehen Sie zu Campaigns und erstellen Sie eine neue Push-Benachrichtigungs-Campaign. Wählen Sie die Plattformen, die Sie testen möchten.
  3. Verfassen Sie Ihre Testbenachrichtigung und gehen Sie auf den Tab Test. Fügen Sie die gleiche user-id wie die:der Testnutzer:in hinzu und klicken Sie auf Send Test.
  4. Sie sollten die Benachrichtigung in Kürze auf Ihrem Gerät erhalten. Wenn sie nicht angezeigt wird, müssen Sie möglicherweise im Benachrichtigungscenter nachsehen oder die Einstellungen aktualisieren.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Android Braze SDK integrieren.

Push-Benachrichtigungen einrichten

Neuere von Huawei hergestellte Telefone sind mit Huawei Mobile Serviceleistungen; Dienste (HMS) ausgestattet - einem Dienst, der Push anstelle von Googles Firebase Cloud Messaging (FCM) zustellt.

Schritt 1: Registrieren Sie sich für ein Huawei-Entwickler:in-Konto

Bevor Sie beginnen, müssen Sie sich registrieren und ein Huawei Entwicklerkonto einrichten. Gehen Sie in Ihrem Huawei-Konto zu Meine Projekte > Projekteinstellungen > App-Informationen und notieren Sie sich die App ID und App secret.

Schritt 2: Erstellen Sie eine neue Huawei App im Braze-Dashboard

Gehen Sie im Braze-Dashboard zu App-Einstellungen, die unter der Navigation Einstellungen aufgeführt sind.

Klicken Sie auf + App hinzufügen, geben Sie einen Namen an (z.B. My Huawei App), wählen Sie Android als Plattform.

Sobald Sie Ihre neue Braze App erstellt haben, suchen Sie die Einstellungen für Push-Benachrichtigungen und wählen Sie Huawei als Push-Anbieter aus. Geben Sie als nächstes Ihre Huawei Client Secret und Huawei App ID an.

Schritt 3: Integrieren Sie das Huawei-Messaging-SDK in Ihre App

Huawei hat ein Android-Integrations-Codelab zur Verfügung gestellt, das die Integration des Huawei-Messaging-Dienstes in Ihre Anwendung beschreibt. Folgen Sie diesen Schritten, um loszulegen.

Nachdem Sie das Codelab abgeschlossen haben, müssen Sie einen angepassten Huawei Serviceleistungen; Dienste erstellen, um Push-Token zu erhalten und Nachrichten an das Braze SDK weiterzuleiten.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class CustomPushService extends HmsMessageService {
  @Override
  public void onNewToken(String token) {
    super.onNewToken(token);
    Braze.getInstance(this.getApplicationContext()).setRegisteredPushToken(token);
  }

  @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    if (BrazeHuaweiPushHandler.handleHmsRemoteMessageData(this.getApplicationContext(), remoteMessage.getDataOfMap())) {
      // Braze has handled the Huawei push notification
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
class CustomPushService: HmsMessageService() {
  override fun onNewToken(token: String?) {
    super.onNewToken(token)
    Braze.getInstance(applicationContext).setRegisteredPushToken(token!!)
  }

  override fun onMessageReceived(hmsRemoteMessage: RemoteMessage?) {
    super.onMessageReceived(hmsRemoteMessage)
    if (BrazeHuaweiPushHandler.handleHmsRemoteMessageData(applicationContext, hmsRemoteMessage?.dataOfMap)) {
      // Braze has handled the Huawei push notification
    }
  }
}

Nachdem Sie Ihren angepassten Push-Dienst hinzugefügt haben, fügen Sie Folgendes zu Ihrem AndroidManifest.xml hinzu:

1
2
3
4
5
6
7
<service
  android:name="package.of.your.CustomPushService"
  android:exported="false">
  <intent-filter>
    <action android:name="com.huawei.push.action.MESSAGING_EVENT" />
  </intent-filter>
</service>

Schritt 4: Behandlung von Vordergrundbenachrichtigungen

Wenn eine Push-Benachrichtigung eingeht, während sich Ihre App im Vordergrund befindet, wird sie von Huawei standardmäßig automatisch angezeigt. Um die Push-Benachrichtigungsdaten von Braze verarbeiten zu lassen (für Analytics-Tracking, Deeplinks und benutzerdefinierte Verarbeitung), leiten Sie die eingehenden Push-Daten innerhalb IhrerHmsMessageService.onMessageReceivedMethode an Braze weiter.

Wenn Sie anrufenBrazeHuaweiPushHandler.handleHmsRemoteMessageData, ermittelt Braze, ob es sich bei der Nutzlast um eine Braze-Push-Benachrichtigung handelt. Ist dies der Fall, wird die Benachrichtigung erstellt und angezeigt. Weitere Informationen finden Sie unter „Behandlung von Vordergrundbenachrichtigungen“ in der Dokumentation zu Android-Push-Benachrichtigungen.

Ein vollständiges Beispiel finden Sie in der Huawei-Handler-Referenz in der Braze Android SDK-Dokumentation.

Schritt 5: Bitte testen Sie Ihre Push-Benachrichtigungen (optional).

Zu diesem Zeitpunkt haben Sie im Braze-Dashboard eine neue Huawei Android App erstellt, diese mit Ihren Zugangsdaten als Huawei-Entwickler:in konfiguriert und die SDKs von Braze und Huawei in Ihre App integriert.

Als Nächstes können wir die Integration testen, indem wir eine neue Push-Kampagne in Braze ausprobieren.

Schritt 5.1: Erstellen Sie eine neue Kampagne mit Push-Benachrichtigungen

Erstellen Sie auf der Seite Kampagnen eine neue Kampagne und wählen Sie Push-Benachrichtigung als Typ Ihrer Nachricht.

Nachdem Sie Ihre Kampagne benannt haben, wählen Sie Android Push als Push-Plattform.

Der Composer zur Erstellung von Kampagnen zeigt die verfügbaren Push-Plattformen an.

Als nächstes stellen Sie Ihre Push-Kampagne mit einem Titel und einer Nachricht zusammen.

Schritt 5.2: Senden Sie einen Test-Push

Geben Sie auf dem Tab Test Ihre Nutzer:innen ID ein, die Sie in Ihrer App mit der MethodechangeUser(USER_ID_STRING) festgelegt haben, und klicken Sie auf Test senden, um einen Push zu senden.

Die Registerkarte „Test“ im Kampagnenerstellungs-Composer zeigt an, dass Sie eine Testnachricht an sich selbst senden können, indem Sie Ihre Benutzer-ID angeben und diese in das Feld „Einzelne Benutzer hinzufügen“ eingeben.

Zu diesem Zeitpunkt sollten Sie eine Push-Benachrichtigung von Braze auf Ihrem Huawei (HMS) Gerät erhalten.

Schritt 5.3: Huawei-Segmentierung einrichten (optional)

Da Ihre Huawei App im Braze-Dashboard auf der Android-Push-Plattform aufbaut, haben Sie die Flexibilität, Push an alle Android-Benutzer zu senden (Firebase Cloud Messaging und Huawei Mobile Serviceleistungen; Dienste), oder Sie können die Zielgruppen Ihrer Kampagne auf bestimmte Apps segmentieren.

Um Push-Benachrichtigungen nur an Huawei-Apps zu senden, erstellen Sie bitte ein neues Segment](/docs/de/user_guide/engagement_tools/segments/creating_a_segment/#step-3-choose-your-app-or-platform) und wählen Sie Ihre Huawei-App im Abschnitt „Apps“ aus.

Wenn Sie denselben Push an alle Android-Push-Anbieter senden möchten, können Sie die App, die an alle im aktuellen Workspace konfigurierten Android-Apps gesendet werden soll, natürlich nicht angeben.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das React Native Braze SDK integrieren.

Push-Benachrichtigungen einrichten

1. Schritt: Ersteinrichtung abschließen

Voraussetzungen

Bevor Sie Expo für Push-Benachrichtigungen verwenden können, müssen Sie das Braze Expo Plugin einrichten.

Schritt 1.1: Ihre app.json-Datei aktualisieren

Aktualisieren Sie als Nächstes Ihre app.json-Datei für Android und iOS:

  • Android: Fügen Sie die Option enableFirebaseCloudMessaging hinzu.
  • iOS: Fügen Sie die Option enableBrazeIosPush hinzu.

Schritt 1.2: Ihre Google-Absender-ID hinzufügen

Gehen Sie zunächst zur Firebase-Konsole, öffnen Sie Ihr Projekt und wählen Sie dann  Settings > Project settings.

Das Firebase-Projekt mit geöffnetem Menü „Settings“.

Wählen Sie Cloud Messaging und kopieren Sie dann unter Firebase Cloud Messaging API (V1) die Sender ID in Ihre Zwischenablage.

Die Seite „Cloud Messaging“ des Firebase-Projekts mit hervorgehobener „Sender ID“.

Öffnen Sie als Nächstes die Datei app.json Ihres Projekts und setzen Sie die Eigenschaft firebaseCloudMessagingSenderId auf die Sender ID in Ihrer Zwischenablage. Zum Beispiel:

1
"firebaseCloudMessagingSenderId": "693679403398"

Schritt 1.3: Den Pfad zu Ihrer Google Services JSON hinzufügen

Fügen Sie in der Datei app.json Ihres Projekts den Pfad zu Ihrer google-services.json-Datei hinzu. Diese Datei wird benötigt, wenn Sie enableFirebaseCloudMessaging: true in Ihrer Konfiguration festlegen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "expo": {
    "android": {
      "googleServicesFile": "PATH_TO_GOOGLE_SERVICES"
    },
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          "androidApiKey": "YOUR-ANDROID-API-KEY",
          "iosApiKey": "YOUR-IOS-API-KEY",
          "enableBrazeIosPush": true,
          "enableFirebaseCloudMessaging": true,
          "firebaseCloudMessagingSenderId": "YOUR-FCM-SENDER-ID",
          "androidHandlePushDeepLinksAutomatically": true
        }
      ],
    ]
  }
}

Beachten Sie, dass Sie diese Einstellungen anstelle der nativen Einrichtungsanweisungen verwenden müssen, wenn Sie auf zusätzliche Push-Benachrichtigungsbibliotheken wie Expo Notifications angewiesen sind.

Wenn Sie das Braze Expo Plugin nicht verwenden oder diese Einstellungen stattdessen nativ konfigurieren möchten, registrieren Sie sich für Push anhand der Anleitung zur nativen Android-Push-Integration.

Wenn Sie das Braze Expo Plugin nicht verwenden oder diese Einstellungen stattdessen nativ konfigurieren möchten, registrieren Sie sich für Push, indem Sie die folgenden Schritte aus der Anleitung zur nativen iOS-Push-Integration befolgen:

Schritt 1.1: Push-Berechtigungen anfordern

Wenn Sie nicht vorhaben, Push-Berechtigungen beim Start der App anzufordern, lassen Sie den Aufruf requestAuthorizationWithOptions:completionHandler: in Ihrem AppDelegate weg. Fahren Sie dann mit Schritt 2 fort. Andernfalls folgen Sie der nativen iOS-Integrationsanleitung.

Schritt 1.2 (optional): Push-Schlüssel migrieren

Wenn Sie zuvor expo-notifications zur Verwaltung Ihres Push-Schlüssels verwendet haben, führen Sie expo fetch:ios:certs aus dem Stammordner Ihrer Anwendung aus. Dadurch wird Ihr Push-Schlüssel (eine .p8-Datei) heruntergeladen, der dann in das Braze-Dashboard hochgeladen werden kann.

2. Schritt: Berechtigung für Push-Benachrichtigungen anfordern

Verwenden Sie die Methode Braze.requestPushPermission() (verfügbar ab v1.38.0), um die Berechtigung für Push-Benachrichtigungen von Nutzer:innen unter iOS und Android 13+ anzufordern. Bei Android 12 und älter hat diese Methode keine Auswirkung.

Diese Methode erwartet einen erforderlichen Parameter, der angibt, welche Berechtigungen das SDK unter iOS von den Nutzer:innen anfordern soll. Diese Optionen haben keine Auswirkungen auf Android.

1
2
3
4
5
6
7
8
const permissionOptions = {
  alert: true,
  sound: true,
  badge: true,
  provisional: false
};

Braze.requestPushPermission(permissionOptions);

Schritt 2.1: Auf Push-Benachrichtigungen lauschen (optional)

Sie können zusätzlich Ereignisse abonnieren, bei denen Braze eine eingehende Push-Benachrichtigung erkannt und verarbeitet hat. Verwenden Sie den Listener-Schlüssel Braze.Events.PUSH_NOTIFICATION_EVENT.

1
2
3
4
Braze.addListener(Braze.Events.PUSH_NOTIFICATION_EVENT, data => {
  console.log(`Push Notification event of type ${data.payload_type} seen. Title ${data.title}\n and deeplink ${data.url}`);
  console.log(JSON.stringify(data, undefined, 2));
});
Ereignisfelder für Push-Benachrichtigungen

Eine vollständige Liste der Felder für Push-Benachrichtigungen finden Sie in der folgenden Tabelle:

Feldname Typ Beschreibung
payload_type String Gibt den Nutzlasttyp der Benachrichtigung an. Die beiden Werte, die vom Braze React Native SDK gesendet werden, sind push_opened und push_received.
url String Gibt die URL an, die durch die Benachrichtigung geöffnet wurde.
use_webview Boolescher Wert Wenn true, wird die URL in der App in einer modalen Webansicht geöffnet. Wenn false, wird die URL im Browser des Geräts geöffnet.
title String Stellt den Titel der Benachrichtigung dar.
body String Stellt den Textkörper oder Inhalt der Benachrichtigung dar.
summary_text String Stellt den zusammenfassenden Text der Benachrichtigung dar. Dieser wird unter iOS aus subtitle zugeordnet.
badge_count Zahl Stellt die Badge-Anzahl der Benachrichtigung dar.
timestamp Zahl Stellt den Zeitpunkt dar, zu dem die Nutzlast von der Anwendung empfangen wurde.
is_silent Boolescher Wert Wenn true, wird die Nutzlast still empfangen. Einzelheiten zum Senden von stillen Push-Benachrichtigungen unter Android finden Sie unter Stille Push-Benachrichtigungen unter Android. Einzelheiten zum Senden von stillen Push-Benachrichtigungen unter iOS finden Sie unter Stille Push-Benachrichtigungen unter iOS.
is_braze_internal Boolescher Wert Dies ist true, wenn eine Benachrichtigungsnutzlast für eine interne SDK-Funktion gesendet wurde, wie z. B. die Synchronisierung von Feature-Flags oder das Uninstall-Tracking. Die Nutzlast wird für die Nutzer:innen unbemerkt empfangen.
image_url String Gibt die URL an, die mit dem Benachrichtigungsbild verknüpft ist.
braze_properties Objekt Stellt die mit der Campaign verbundenen Braze-Eigenschaften dar (Schlüssel-Wert-Paare).
ios Objekt Stellt iOS-spezifische Felder dar.
android Objekt Stellt Android-spezifische Felder dar.

3. Schritt: Deeplinking aktivieren (optional)

Um Braze in die Lage zu versetzen, Deeplinks innerhalb von React-Komponenten zu verarbeiten, wenn auf eine Push-Benachrichtigung geklickt wird, implementieren Sie zunächst die Schritte, die in der Bibliothek React Native Linking beschrieben sind, oder verwenden Sie die Lösung Ihrer Wahl. Folgen Sie dann den weiteren Schritten unten.

Weitere Informationen zu Deeplinks finden Sie in unserem FAQ-Artikel.

Wenn Sie das Braze Expo Plugin verwenden, können Sie Push-Benachrichtigungs-Deeplinks automatisch verarbeiten, indem Sie androidHandlePushDeepLinksAutomatically in Ihrer app.json auf true setzen.

Um Deeplinks stattdessen manuell zu verarbeiten, lesen Sie die native Android-Dokumentation: Deeplinks hinzufügen.

Schritt 3.1: Push-Benachrichtigungs-Nutzlast beim App-Start speichern

Fügen Sie populateInitialPushPayloadFromIntent zur Methode onCreate() Ihrer Hauptaktivität hinzu. Dies muss vor der Initialisierung von React Native aufgerufen werden, um die ursprünglichen Intent-Daten zu erfassen. Zum Beispiel:

1
2
3
4
override fun onCreate(savedInstanceState: Bundle?) {
  BrazeReactUtils.populateInitialPushPayloadFromIntent(intent)
  super.onCreate(savedInstanceState)
}

Zusätzlich zu den Basisszenarien, die von React Native Linking behandelt werden, implementieren Sie die Methode Braze.getInitialPushPayload und rufen den Wert url ab, um Deeplinks von Push-Benachrichtigungen zu berücksichtigen, die Ihre App öffnen, wenn sie nicht läuft. Zum Beispiel:

1
2
3
4
5
6
7
8
// Handles deep links when an app is launched from a hard close via push click.
Braze.getInitialPushPayload(pushPayload => {
  if (pushPayload) {
    console.log('Braze.getInitialPushPayload is ' + pushPayload);
    showToast('Initial URL is ' + pushPayload.url);
    handleOpenUrl({ pushPayload.url });
  }
});

Dazu gehört die Registrierung eines benutzerdefinierten URL-Schemas und die Implementierung eines URL-Handlers in Ihrem AppDelegate. Eine vollständige Einrichtungsanleitung finden Sie unter Deeplinks verarbeiten in der nativen iOS-Dokumentation.

Schritt 3.1: Push-Benachrichtigungs-Nutzlast beim App-Start speichern

Fügen Sie für iOS populateInitialPayloadFromLaunchOptions zur Methode didFinishLaunchingWithOptions des AppDelegate hinzu. Zum Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // ... Perform regular React Native setup

  BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:apiKey endpoint:endpoint];
  configuration.triggerMinimumTimeInterval = 1;
  configuration.logger.level = BRZLoggerLevelInfo;
  Braze *braze = [BrazeReactBridge initBraze:configuration];
  AppDelegate.braze = braze;

  [self registerForPushNotifications];
  [[BrazeReactUtils sharedInstance] populateInitialPayloadFromLaunchOptions:launchOptions];

  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func application(
  _ application: UIApplication,
  didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
  // ... Perform regular React Native setup

  let configuration = Braze.Configuration(apiKey: apiKey, endpoint: endpoint)
  configuration.triggerMinimumTimeInterval = 1
  configuration.logger.level = .info
  let braze = BrazeReactBridge.initBraze(configuration)
  AppDelegate.braze = braze
  registerForPushNotifications()
  BrazeReactUtils.shared().populateInitialPayload(fromLaunchOptions: launchOptions)

  return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

Zusätzlich zu den Basisszenarien, die von React Native Linking behandelt werden, implementieren Sie die Methode Braze.getInitialPushPayload und rufen den Wert url ab, um Deeplinks von Push-Benachrichtigungen zu berücksichtigen, die Ihre App öffnen, wenn sie nicht läuft. Zum Beispiel:

1
2
3
4
5
6
7
8
// Handles deep links when an app is launched from a hard close via push click.
Braze.getInitialPushPayload(pushPayload => {
  if (pushPayload) {
    console.log('Braze.getInitialPushPayload is ' + pushPayload);
    showToast('Initial URL is ' + pushPayload.url);
    handleOpenUrl({ pushPayload.url });
  }
});

Um die Unterstützung für Universal Links zu aktivieren, implementieren Sie einen Braze-Delegaten, der festlegt, ob eine bestimmte URL geöffnet werden soll, und registrieren Sie diesen anschließend bei Ihrer Braze-Instanz.

Erstellen Sie eine BrazeReactDelegate.swift-Datei in Ihrem iOS-Verzeichnis und fügen Sie Folgendes hinzu. Ersetzen Sie YOUR_DOMAIN_HOST durch Ihre tatsächliche Domain.

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
import Foundation
import BrazeKit
import UIKit

class BrazeReactDelegate: NSObject, BrazeDelegate {

  /// This delegate method determines whether to open a given URL.
  /// Reference the context to get additional details about the URL payload.
  func braze(_ braze: Braze, shouldOpenURL context: Braze.URLContext) -> Bool {
    if let host = context.url.host,
       host.caseInsensitiveCompare("YOUR_DOMAIN_HOST") == .orderedSame {
      // Sample custom handling of universal links
      let application = UIApplication.shared
      let userActivity = NSUserActivity(activityType: NSUserActivityTypeBrowsingWeb)
      userActivity.webpageURL = context.url
      // Routes to the `continueUserActivity` method, which should be handled in your AppDelegate.
      application.delegate?.application?(
        application,
        continue: userActivity,
        restorationHandler: { _ in }
      )
      return false
    }
    // Let Braze handle links otherwise
    return true
  }
}

Erstellen und registrieren Sie dann Ihr BrazeReactDelegate in didFinishLaunchingWithOptions der Datei AppDelegate.swift Ihres Projekts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import BrazeKit

class AppDelegate: UIResponder, UIApplicationDelegate {

  static var braze: Braze?

  // Keep a strong reference to the BrazeDelegate so it is not deallocated.
  private var brazeDelegate: BrazeReactDelegate?

  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
  ) -> Bool {
    // Other setup code (e.g., Braze initialization)

    brazeDelegate = BrazeReactDelegate()
    AppDelegate.braze?.delegate = brazeDelegate
    return true
  }
}

Erstellen Sie eine BrazeReactDelegate.h-Datei in Ihrem iOS-Verzeichnis und fügen Sie anschließend das folgende Snippet hinzu.

1
2
3
4
5
6
#import <Foundation/Foundation.h>
#import <BrazeKit/BrazeKit-Swift.h>

@interface BrazeReactDelegate: NSObject<BrazeDelegate>

@end

Erstellen Sie als Nächstes eine Datei BrazeReactDelegate.m und fügen Sie das folgende Code-Snippet ein. Ersetzen Sie YOUR_DOMAIN_HOST durch Ihre tatsächliche Domain.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#import "BrazeReactDelegate.h"
#import <UIKit/UIKit.h>

@implementation BrazeReactDelegate

/// This delegate method determines whether to open a given URL.
///
/// Reference the `BRZURLContext` object to get additional details about the URL payload.
- (BOOL)braze:(Braze *)braze shouldOpenURL:(BRZURLContext *)context {
  if ([[context.url.host lowercaseString] isEqualToString:@"YOUR_DOMAIN_HOST"]) {
    // Sample custom handling of universal links
    UIApplication *application = UIApplication.sharedApplication;
    NSUserActivity* userActivity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
    userActivity.webpageURL = context.url;
    // Routes to the `continueUserActivity` method, which should be handled in your `AppDelegate`.
    [application.delegate application:application
                 continueUserActivity:userActivity restorationHandler:^(NSArray<id<UIUserActivityRestoring>> * _Nullable restorableObjects) {}];
    return NO;
  }
  // Let Braze handle links otherwise
  return YES;
}

@end

Erstellen und registrieren Sie dann Ihr BrazeReactDelegate in didFinishLaunchingWithOptions der Datei AppDelegate.m Ihres Projekts.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import "BrazeReactUtils.h"
#import "BrazeReactDelegate.h"

@interface AppDelegate ()

// Keep a strong reference to the BrazeDelegate to ensure it is not deallocated.
@property (nonatomic, strong) BrazeReactDelegate *brazeDelegate;

@end

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  // Other setup code

  self.brazeDelegate = [[BrazeReactDelegate alloc] init];
  braze.delegate = self.brazeDelegate;
}

Eine beispielhafte Integration finden Sie in unserer Beispiel-App hier.

4. Schritt: Vordergrundbenachrichtigungen behandeln

Die Behandlung von Benachrichtigungen im Vordergrund funktioniert je nach Plattform und Konfiguration unterschiedlich. Wählen Sie den Ansatz, der zu Ihrer Integration passt:

Für iOS entspricht die Verarbeitung von Vordergrundbenachrichtigungen der nativen Swift-Integration. Rufen Sie handleForegroundNotification(notification:) innerhalb Ihrer UNUserNotificationCenterDelegate.userNotificationCenter(_:willPresent:withCompletionHandler:)-Implementierung auf.

Ausführliche Informationen und Code-Beispiele finden Sie unter Vordergrundbenachrichtigungen behandeln in der Dokumentation zu Swift-Push-Benachrichtigungen.

Bei Android entspricht die Verarbeitung von Vordergrundbenachrichtigungen der nativen Android-Integration. Rufen Sie BrazeFirebaseMessagingService.handleBrazeRemoteMessage innerhalb Ihrer FirebaseMessagingService.onMessageReceived-Methode auf.

Ausführliche Informationen und Code-Beispiele finden Sie unter Vordergrundbenachrichtigungen behandeln in der Dokumentation zu Android-Push-Benachrichtigungen.

Im von Expo verwalteten Workflow rufen Sie native Benachrichtigungs-Handler nicht direkt auf. Verwenden Sie stattdessen die Expo Notifications API, um die Vordergrunddarstellung zu steuern, während das Braze Expo Plugin die native Verarbeitung automatisch übernimmt.

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
import * as Notifications from 'expo-notifications';
import Braze from '@braze/react-native-sdk';

// Control foreground presentation in Expo
Notifications.setNotificationHandler({
  handleNotification: async () => ({
    shouldShowAlert: true,    // Show alert while in foreground
    shouldPlaySound: false,
    shouldSetBadge: false,
  }),
});

// React to Braze push events
const subscription = Braze.addListener('pushNotificationEvent', (event) => {
  console.log('Braze push event', {
    type: event.payload_type,   // "push_received" | "push_opened"
    title: event.title,
    url: event.url,
    is_silent: event.is_silent,
  });
  // Handle deep links, custom behavior, etc.
});

// Handle initial payload when app launches via push
Braze.getInitialPushPayload((payload) => {
  if (payload) {
    console.log('Initial push payload', payload);
  }
});

Für Bare-Workflow-Integrationen verwenden Sie stattdessen die nativen Ansätze für iOS und Android.

5. Schritt: Test-Push-Benachrichtigung senden

Sie sollten nun in der Lage sein, Benachrichtigungen an die Geräte zu senden. Führen Sie die folgenden Schritte durch, um Ihre Push-Integration zu testen.

  1. Setzen Sie eine:n aktive:n Nutzer:in in der React Native-Anwendung, indem Sie die Methode Braze.changeUserId('your-user-id') aufrufen.
  2. Gehen Sie zu Campaigns und erstellen Sie eine neue Push-Benachrichtigungs-Campaign. Wählen Sie die Plattformen aus, die Sie testen möchten.
  3. Verfassen Sie Ihre Testbenachrichtigung und wechseln Sie zum Tab Test. Fügen Sie dieselbe user-id als Testnutzer:in hinzu und klicken Sie auf Send Test. Sie sollten die Benachrichtigung in Kürze auf Ihrem Gerät erhalten.

Eine Braze-Push-Campaign, die zeigt, wie Sie Ihre eigene Nutzer-ID als Testempfänger:in hinzufügen können, um Ihre Push-Benachrichtigung zu testen.

Verwendung des Expo-Plugins

Nachdem Sie Push-Benachrichtigungen für Expo eingerichtet haben, können Sie damit die folgenden Verhaltensweisen für Push-Benachrichtigungen verarbeiten—ohne Code in den nativen Android- oder iOS-Schichten schreiben zu müssen.

Weiterleitung von Android-Push an zusätzliche FMS

Wenn Sie einen zusätzlichen Firebase Messaging Service (FMS) verwenden möchten, können Sie einen Fallback-FMS angeben, der aufgerufen wird, wenn Ihre Anwendung einen Push erhält, der nicht von Braze stammt. Zum Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "expo": {
    "plugins": [
      [
        "@braze/expo-plugin",
        {
          ...
          "androidFirebaseMessagingFallbackServiceEnabled": true,
          "androidFirebaseMessagingFallbackServiceClasspath": "com.company.OurFirebaseMessagingService"
        }
      ]
    ]
  }
}

Verwendung von App-Erweiterungen mit Expo Application Services

Wenn Sie Expo Application Services (EAS) verwenden und enableBrazeIosRichPush oder enableBrazeIosPushStories aktiviert haben, müssen Sie die entsprechenden Bundle-Bezeichner für jede App-Erweiterung in Ihrem Projekt deklarieren. Es gibt mehrere Möglichkeiten für diesen Schritt, abhängig davon, wie Ihr Projekt für die Verwaltung der Codesignierung mit EAS konfiguriert ist.

Eine Möglichkeit besteht darin, die Konfiguration appExtensions in der Datei app.json zu verwenden. Weitere Informationen hierzu finden Sie in der Expo-Dokumentation zu App-Erweiterungen. Alternativ können Sie die Einstellung multitarget in der Datei credentials.json einrichten. Weitere Informationen hierzu finden Sie in der Expo-Dokumentation zu lokalen Zugangsdaten.

Fehlerbehebung

Dies sind allgemeine Schritte zur Fehlerbehebung für die Integration von Push-Benachrichtigungen mit dem Braze React Native SDK und dem Expo-Plugin.

Push-Benachrichtigungen funktionieren nicht mehr

Sollten Push-Benachrichtigungen über das Expo-Plugin nicht mehr funktionieren:

  1. Überprüfen Sie, ob das Braze SDK weiterhin Sitzungen trackt.
  2. Überprüfen Sie, ob das SDK nicht durch einen expliziten oder impliziten Aufruf von wipeData deaktiviert wurde.
  3. Überprüfen Sie alle kürzlich durchgeführten Upgrades von Expo oder den zugehörigen Bibliotheken, da es zu Konflikten mit Ihrer Braze-Konfiguration kommen könnte.
  4. Überprüfen Sie kürzlich hinzugefügte Projektabhängigkeiten und stellen Sie sicher, dass diese Ihre bestehenden Delegate-Methoden für Push-Benachrichtigungen nicht manuell überschreiben.

Das Geräte-Token wird nicht bei Braze registriert

Sollte Ihr Geräte-Token nicht bei Braze registriert werden, überprüfen Sie zunächst, ob Push-Benachrichtigungen nicht mehr funktionieren.

Sollte das Problem weiterhin bestehen, besteht die Möglichkeit, dass eine separate Abhängigkeit die Konfiguration Ihrer Braze-Push-Benachrichtigungen beeinträchtigt. Sie können versuchen, diese zu entfernen oder stattdessen manuell Braze.registerPushToken aufzurufen.

Wenn sich Deeplinks aus Push-Benachrichtigungen nach einer Migration nicht mehr öffnen, überprüfen Sie Folgendes:

  1. Stellen Sie sicher, dass Ihre React Native Linking-Konfiguration in Ihrer aktualisierten App weiterhin gültig ist.
  2. Bestätigen Sie bei nativen iOS-Integrationen, dass Sie populateInitialPayloadFromLaunchOptions und Braze.getInitialPushPayload implementiert haben, damit die App beim Start aus einem beendeten Zustand die initiale Push-Nutzlast abrufen und deren url an Ihren Deeplink-Handler übergeben kann.
  3. Wenn Sie das Braze Expo Plugin verwenden, überprüfen Sie, ob androidHandlePushDeepLinksAutomatically für Ihre Implementierung korrekt gesetzt ist.
  4. Überprüfen Sie kürzlich hinzugefügte Abhängigkeiten auf Überschreibungen der Benachrichtigungsverarbeitung oder des App-Delegate-Verhaltens.

Wenn Sie diese Prüfungen abgeschlossen haben und das Problem weiterhin besteht, erstellen Sie ein Support-Ticket und fügen Sie SDK-Logs sowie Schritte zur Reproduktion bei.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Internet Braze SDK integrieren. Bitte beachten Sie, dass Sie Push-Benachrichtigungen für das Web-SDK einrichten müssen. Bitte beachten Sie, dass Sie Push-Benachrichtigungen nur an iOS- und iPadOS-Nutzer:innen senden können, die Safari v16.4 oder höher verwenden.

Einrichtung von Safari Push für Mobilgeräte

Schritt 1: Erstellen Sie eine Manifestdatei

Ein Internet-Anwendungsmanifest ist eine JSON-Datei, die steuert, wie Ihre Website bei der Installation auf dem Startbildschirm eines Nutzers:innen dargestellt wird.

Sie können zum Beispiel die Hintergrundfarbe und das Symbol festlegen, das der App Switcher verwendet, ob er im Vollbildmodus gerendert wird, um einer nativen App zu ähneln, oder ob die App im Hoch- oder Querformat geöffnet werden soll.

Erstellen Sie eine neue Datei manifest.json im Stammverzeichnis Ihrer Website mit den folgenden Pflichtfeldern.

1
2
3
4
5
6
7
8
9
{
  "name": "your app name",
  "short_name": "your app name",
  "display": "fullscreen",
  "icons": [{
    "src": "favicon.ico",
    "sizes": "128x128",
  }]
}

Die vollständige Liste der unterstützten Felder finden Sie hier.

Fügen Sie das folgende <link>-Tag in das <head>-Element Ihrer Website ein, das auf den Speicherort der Manifestdatei verweist.

1
<link rel="manifest" href="/manifest.json" />

Schritt 3: Fügen Sie ein Service-Teammitglied {#service-worker} hinzu

Ihre Website muss über eine Service-Teammitglied-Datei verfügen, die die Service-Teammitglieder-Bibliothek von Braze importiert, wie in unserer Anleitung zur Web-Push Integration beschrieben.

Schritt 4: Zum Startbildschirm hinzufügen

Beliebte Webbrowser (wie Safari, Chrome, Firefox und Edge) unterstützen in ihren neueren Versionen alle Web-Push-Benachrichtigungen. Um Push-Benachrichtigungen auf iOS oder iPadOS zu aktivieren, muss Ihre Website zum Startbildschirm der Nutzer:innen hinzugefügt werden, indem „Teilen“ > „Zum Startbildschirm hinzufügen“ ausgewählt wird. Mit „Zum Startbildschirm hinzufügen“ können Nutzer:innen Ihre Website mit einem Lesezeichen versehen und Ihr Symbol auf ihrem wertvollen Startbildschirm speichern.

Ein iPhone, das Optionen zum Setzen eines Lesezeichens für eine Website und zum Speichern auf dem Startbildschirm anzeigt.

Schritt 5: Zeigen Sie die native Push-Eingabeaufforderung {#push-prompt} an.

Nachdem die App zu Ihrem Startbildschirm hinzugefügt wurde, können Sie nun eine Push-Berechtigung anfragen, wenn der Nutzer eine Aktion ausführt (z. B. auf einen Button klickt). Dies kann mit der requestPushPermission Methode oder mit einer In-App-Nachricht ohne Code-Push-Primer.

Eine Push-Benachrichtigung, in der Sie gefragt werden, ob Sie Benachrichtigungen zulassen oder nicht zulassen möchten.

Zum Beispiel:

1
2
3
4
5
6
7
8
9
import { requestPushPermission } from "@braze/web-sdk";

button.onclick = function(){
    requestPushPermission(() => {
        console.log(`User accepted push prompt`);
    }, (temporary) => {
        console.log(`User ${temporary ? "temporarily dismissed" : "permanently denied"} push prompt`);
    });
};

Nächste Schritte

Als nächstes senden Sie sich selbst eine Testnachricht, um die Integration zu überprüfen. Nachdem Ihre Integration abgeschlossen ist, können Sie unsere Push-Nachrichten ohne Code verwenden, um Ihre Opt-in-Raten zu optimieren.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das Unity Braze SDK integrieren.

Push-Benachrichtigungen einrichten

1. Schritt: Plattform einrichten

Schritt 1.1: Firebase aktivieren

Um loszulegen, folgen Sie der Dokumentation zur Einrichtung von Firebase Unity.

Schritt 1.2: Firebase-Zugangsdaten festlegen

Sie müssen den Firebase-Serverschlüssel und die Sender-ID in das Braze-Dashboard eingeben. Melden Sie sich dazu in der Firebase Developers Console an und wählen Sie Ihr Firebase-Projekt aus. Wählen Sie dann unter Settings die Option Cloud Messaging und kopieren Sie den Serverschlüssel und die Sender-ID:

Wählen Sie in Braze Ihre Android-App auf der Seite App-Einstellungen unter Einstellungen verwalten aus. Geben Sie anschließend Ihren Firebase-Serverschlüssel in das Feld Firebase Cloud Messaging Server Key und die Firebase-Sender-ID in das Feld Firebase Cloud Messaging Sender ID ein.

Schritt 1.1: Integrationsmethode überprüfen

Braze bietet eine native Unity-Lösung für die Automatisierung von iOS-Push-Integrationen. Wenn Sie Ihre Integration stattdessen manuell einrichten und verwalten möchten, lesen Sie Swift: Push-Benachrichtigungen.

Andernfalls fahren Sie mit dem nächsten Schritt fort.

Schritt 1.1: ADM aktivieren

  1. Erstellen Sie ein Konto im Amazon Apps & Games Developer Portal, falls Sie dies noch nicht getan haben.
  2. Holen Sie sich die OAuth-Zugangsdaten (Client-ID und Client Secret) und einen ADM-API-Schlüssel.
  3. Aktivieren Sie Automatic ADM Registration Enabled im Unity-Braze-Konfigurationsfenster.
    • Alternativ können Sie die folgende Zeile in Ihre res/values/braze.xml-Datei einfügen, um die ADM-Registrierung zu aktivieren:
1
  <bool name="com_braze_push_adm_messaging_registration_enabled">true</bool>

2. Schritt: Push-Benachrichtigungen konfigurieren

Schritt 2.1: Push-Einstellungen konfigurieren

Das Braze SDK kann die Push-Registrierung bei den Firebase Cloud Messaging-Servern automatisch übernehmen, damit Geräte Push-Benachrichtigungen empfangen können. Aktivieren Sie in Unity Automate Unity Android Integration und konfigurieren Sie dann die folgenden Push Notification-Einstellungen.

Einstellung Beschreibung
Automatic Firebase Cloud Messaging Registration Enabled Weist das Braze SDK an, automatisch ein FCM-Push-Token für ein Gerät abzurufen und zu senden.
Firebase Cloud Messaging Sender ID Die Sender-ID aus Ihrer Firebase-Konsole.
Handle Push Deeplinks Automatically Gibt an, ob das SDK das Öffnen von Deeplinks oder das Öffnen der App beim Klicken auf Push-Benachrichtigungen verarbeiten soll.
Small Notification Icon Drawable Android-Drawable-Ressourcenreferenz für das kleine Symbol, das beim Empfang einer Push-Benachrichtigung angezeigt wird. Geben Sie die vollständige Referenz einschließlich des Präfixes @drawable/ ein (z. B. @drawable/hourglass_icon). Die automatisierte Integration schreibt diesen Wert wie eingegeben in braze.xml. Wenn Sie dieses Feld leer lassen, verwendet die Benachrichtigung das Anwendungssymbol als kleines Symbol.
Large Notification Icon Drawable Optionales großes Symbol für Benachrichtigungen. Verwenden Sie dasselbe @drawable/-Format wie beim kleinen Symbol (z. B. @drawable/my_large_icon).

Schritt 2.1: APNs-Token hochladen

Bevor Sie eine iOS Push-Benachrichtigung mit Braze versenden können, müssen Sie Ihre .p8 Push-Benachrichtigungsdatei hochladen, wie beschrieben in der Entwickler:in Dokumentation von Apple:

  1. Gehen Sie in Ihrem Apple Entwickler-Account zu Zertifikate, Bezeichner & Profile.
  2. Wählen Sie unter Schlüssel die Option Alle und klicken Sie auf die Schaltfläche Hinzufügen (+) in der oberen rechten Ecke.
  3. Geben Sie unter Schlüsselbeschreibung einen eindeutigen Namen für den Signierschlüssel ein.
  4. Aktivieren Sie unter Wichtige Dienste das Kontrollkästchen Apple Push Notification Service (APNs) und klicken Sie dann auf Weiter. Klicken Sie auf Bestätigen.
  5. Notieren Sie sich die ID des Schlüssels. Klicken Sie auf Download, um den Schlüssel zu generieren und herunterzuladen. Stellen Sie sicher, dass Sie die heruntergeladene Datei an einem sicheren Ort speichern, da Sie sie nur einmal herunterladen können.
  6. Gehen Sie in Braze zu Einstellungen > App-Einstellungen und laden Sie die Datei .p8 unter Apple Push Certificate hoch. Sie können entweder Ihr Entwicklungs- oder Ihr Produktions-Push-Zertifikat hochladen. Um Push-Benachrichtigungen zu testen, nachdem Ihre App live im App Store ist, empfiehlt es sich, einen separaten Arbeitsbereich für die Entwicklungsversion Ihrer App einzurichten.
  7. Wenn Sie dazu aufgefordert werden, geben Sie die Bundle ID, die Key ID und die Team ID Ihrer App ein. Sie müssen auch angeben, ob die Benachrichtigungen an die Entwicklungs- oder die Produktionsumgebung Ihrer App gesendet werden sollen, die durch ihr Bereitstellungsprofil definiert ist.
  8. Wenn Sie fertig sind, wählen Sie Speichern.

Schritt 2.2: Automatischen Push aktivieren

Öffnen Sie die Braze-Konfigurationseinstellungen im Unity-Editor, indem Sie zu Braze > Braze Configuration navigieren.

Aktivieren Sie Integrate Push With Braze, um Nutzer:innen automatisch für Push-Benachrichtigungen zu registrieren, Push-Token an Braze weiterzugeben, Analytics für Push-Öffnungen zu verfolgen und die Vorteile unserer standardmäßigen Push-Benachrichtigungsverarbeitung zu nutzen.

Schritt 2.3: Hintergrund-Push aktivieren (optional)

Aktivieren Sie Enable Background Push, wenn Sie background mode für Push-Benachrichtigungen aktivieren möchten. Dadurch kann das System Ihre Anwendung aus dem Zustand suspended aufwecken, wenn eine Push-Benachrichtigung eintrifft, sodass Ihre Anwendung als Reaktion auf Push-Benachrichtigungen Inhalte herunterladen kann. Das Aktivieren dieser Option ist für unsere Uninstall-Tracking-Funktion erforderlich.

Der Unity-Editor zeigt die Braze-Konfigurationsoptionen an. In diesem Editor sind die Optionen „Automate Unity iOS integration“, „Integrate push with braze“ und „Enable background push“ aktiviert.

Schritt 2.4: Automatische Registrierung deaktivieren (optional)

Nutzer:innen, die sich noch nicht für Push-Benachrichtigungen entschieden haben, werden beim Öffnen Ihrer Anwendung automatisch für Push autorisiert. Um diese Funktion zu deaktivieren und Nutzer:innen manuell für Push zu registrieren, aktivieren Sie Disable Automatic Push Registration.

  • Wenn Disable Provisional Authorization unter iOS 12 oder höher nicht aktiviert ist, werden Nutzer:innen vorläufig (stillschweigend) für den Empfang stiller Push-Benachrichtigungen autorisiert. Wenn diese Option aktiviert ist, wird den Nutzer:innen der native Push-Prompt angezeigt.
  • Wenn Sie genau konfigurieren möchten, wann der Prompt zur Laufzeit angezeigt werden soll, deaktivieren Sie die automatische Registrierung im Braze-Konfigurationseditor und verwenden Sie stattdessen AppboyBinding.PromptUserForPushPermissions().

Der Unity-Editor zeigt die Braze-Konfigurationsoptionen an. In diesem Editor sind die Optionen „Automate Unity iOS integration“, „Integrate push with braze“ und „Disable automatic push registration“ aktiviert.

Schritt 2.1: AndroidManifest.xml aktualisieren

Wenn Ihre App keine AndroidManifest.xml hat, können Sie die folgende Vorlage verwenden. Wenn Sie bereits eine AndroidManifest.xml haben, stellen Sie sicher, dass alle fehlenden Abschnitte zu Ihrer bestehenden AndroidManifest.xml hinzugefügt werden.

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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="REPLACE_WITH_YOUR_PACKAGE_NAME">

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <permission
    android:name="REPLACE_WITH_YOUR_PACKAGE_NAME.permission.RECEIVE_ADM_MESSAGE"
    android:protectionLevel="signature" />
  <uses-permission android:name="REPLACE_WITH_YOUR_PACKAGE_NAME.permission.RECEIVE_ADM_MESSAGE" />
  <uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE" />

  <application android:icon="@drawable/app_icon"
               android:label="@string/app_name">

    <!-- Calls the necessary Braze methods to ensure that analytics are collected and that push notifications are properly forwarded to the Unity application. -->
    <activity android:name="com.braze.unity.BrazeUnityPlayerActivity"
      android:label="@string/app_name"
      android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
      android:screenOrientation="sensor">
      <meta-data android:name="android.app.lib_name" android:value="unity" />
      <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <receiver android:name="com.braze.push.BrazeAmazonDeviceMessagingReceiver" android:permission="com.amazon.device.messaging.permission.SEND">
      <intent-filter>
          <action android:name="com.amazon.device.messaging.intent.RECEIVE" />
          <action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
          <category android:name="REPLACE_WITH_YOUR_PACKAGE_NAME" />
      </intent-filter>
    </receiver>
  </application>
</manifest>

Schritt 2.2: ADM-API-Schlüssel speichern

Zunächst generieren Sie einen ADM-API-Schlüssel für Ihre App und speichern den Schlüssel in einer Datei namens api_key.txt. Fügen Sie diese dann in das Assets/-Verzeichnis Ihres Projekts ein.

Fügen Sie anschließend in Ihrer mainTemplate.gradle-Datei Folgendes hinzu:

1
2
3
4
5
6
7
task copyAmazon(type: Copy) {
    def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
    from unityProjectPath + '/Assets/api_key.txt'
    into new File(projectDir, 'src/main/assets')
}

preBuild.dependsOn(copyAmazon)

Schritt 2.3: ADM-Jar hinzufügen

Die erforderliche ADM-Jar-Datei kann gemäß der Unity-JAR-Dokumentation an beliebiger Stelle in Ihrem Projekt platziert werden.

Schritt 2.4: Client Secret und Client-ID zum Braze-Dashboard hinzufügen

Abschließend müssen Sie das Client Secret und die Client-ID, die Sie in Schritt 1 erhalten haben, auf der Seite Einstellungen verwalten des Braze-Dashboards hinzufügen.

3. Schritt: Push-Listener einrichten

Schritt 3.1: Push-Empfangs-Listener aktivieren

Der Push-Empfangs-Listener wird ausgelöst, wenn Nutzer:innen eine Push-Benachrichtigung empfangen. Um die Push-Nutzlast an Unity zu senden, legen Sie den Namen Ihres Spielobjekts und die Callback-Methode des Push-Empfangs-Listeners unter Set Push Received Listener fest.

Schritt 3.2: Push-Öffnungs-Listener aktivieren

Der Push-Öffnungs-Listener wird ausgelöst, wenn Nutzer:innen die App durch Klicken auf eine Push-Benachrichtigung starten. Um die Push-Nutzlast an Unity zu senden, legen Sie den Namen Ihres Spielobjekts und die Callback-Methode des Push-Öffnungs-Listeners unter Set Push Opened Listener fest.

Schritt 3.3: Push-Löschungs-Listener aktivieren

Der Push-Löschungs-Listener wird ausgelöst, wenn Nutzer:innen eine Push-Benachrichtigung wegwischen oder verwerfen. Um die Push-Nutzlast an Unity zu senden, legen Sie den Namen Ihres Spielobjekts und die Callback-Methode des Push-Löschungs-Listeners unter Set Push Deleted Listener fest.

Beispiel für Push-Listener

Das folgende Beispiel implementiert das Spielobjekt BrazeCallback mit den Callback-Methoden PushNotificationReceivedCallback, PushNotificationOpenedCallback bzw. PushNotificationDeletedCallback.

Diese Beispielgrafik zur Implementierung zeigt die in den vorangegangenen Abschnitten erwähnten Braze-Konfigurationsoptionen und ein C#-Code-Snippet.

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
public class MainMenu : MonoBehaviour {
  void PushNotificationReceivedCallback(string message) {
#if UNITY_ANDROID
    Debug.Log("PushNotificationReceivedCallback message: " + message);
    PushNotification pushNotification = new PushNotification(message);
    Debug.Log("Push Notification received: " + pushNotification);
#elif UNITY_IOS
    ApplePushNotification pushNotification = new ApplePushNotification(message);
    Debug.Log("Push received Notification event: " + pushNotification);
#endif
  }

  void PushNotificationOpenedCallback(string message) {
#if UNITY_ANDROID
    Debug.Log("PushNotificationOpenedCallback message: " + message);
    PushNotification pushNotification = new PushNotification(message);
    Debug.Log("Push Notification opened: " + pushNotification);
#elif UNITY_IOS
    ApplePushNotification pushNotification = new ApplePushNotification(message);
    Debug.Log("Push opened Notification event: " + pushNotification);
#endif
  }

  void PushNotificationDeletedCallback(string message) {
#if UNITY_ANDROID
    Debug.Log("PushNotificationDeletedCallback message: " + message);
    PushNotification pushNotification = new PushNotification(message);
    Debug.Log("Push Notification dismissed: " + pushNotification);
#endif
  }
}

Schritt 3.1: Push-Empfangs-Listener aktivieren

Der Push-Empfangs-Listener wird ausgelöst, wenn Nutzer:innen eine Push-Benachrichtigung empfangen, während sie die Anwendung aktiv nutzen (z. B. wenn sich die App im Vordergrund befindet). Legen Sie den Push-Empfangs-Listener im Braze-Konfigurationseditor fest. Wenn Sie den Spielobjekt-Listener zur Laufzeit konfigurieren müssen, verwenden Sie AppboyBinding.ConfigureListener() und geben Sie BrazeUnityMessageType.PUSH_RECEIVED an.

Der Unity-Editor zeigt die Braze-Konfigurationsoptionen an. In diesem Editor wird die Option „Set Push Received Listener“ erweitert und der „Game Object Name“ (AppBoyCallback) sowie der „Callback Method Name“ (PushNotificationReceivedCallback) angegeben.

Schritt 3.2: Push-Öffnungs-Listener aktivieren

Der Push-Öffnungs-Listener wird ausgelöst, wenn Nutzer:innen die App durch Klicken auf eine Push-Benachrichtigung starten. Um die Push-Nutzlast an Unity zu senden, legen Sie den Namen Ihres Spielobjekts und die Callback-Methode des Push-Öffnungs-Listeners unter der Option Set Push Opened Listener fest:

Der Unity-Editor zeigt die Braze-Konfigurationsoptionen an. In diesem Editor wird die Option „Set Push Opened Listener“ erweitert und der „Game Object Name“ (AppBoyCallback) sowie der „Callback Method Name“ (PushNotificationOpenedCallback) angegeben.

Wenn Sie den Spielobjekt-Listener zur Laufzeit konfigurieren müssen, verwenden Sie AppboyBinding.ConfigureListener() und geben Sie BrazeUnityMessageType.PUSH_OPENED an.

Beispiel für Push-Listener

Das folgende Beispiel implementiert das Spielobjekt AppboyCallback mit den Callback-Methoden PushNotificationReceivedCallback bzw. PushNotificationOpenedCallback.

Diese Beispielgrafik zur Implementierung zeigt die in den vorangegangenen Abschnitten erwähnten Braze-Konfigurationsoptionen und ein C#-Code-Snippet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class MainMenu : MonoBehaviour {
  void PushNotificationReceivedCallback(string message) {
#if UNITY_ANDROID
    Debug.Log("PushNotificationReceivedCallback message: " + message);
    PushNotification pushNotification = new PushNotification(message);
    Debug.Log("Push Notification received: " + pushNotification);
#elif UNITY_IOS
    ApplePushNotification pushNotification = new ApplePushNotification(message);
    Debug.Log("Push received Notification event: " + pushNotification);
#endif
  }

  void PushNotificationOpenedCallback(string message) {
#if UNITY_ANDROID
    Debug.Log("PushNotificationOpenedCallback message: " + message);
    PushNotification pushNotification = new PushNotification(message);
    Debug.Log("Push Notification opened: " + pushNotification);
#elif UNITY_IOS
    ApplePushNotification pushNotification = new ApplePushNotification(message);
    Debug.Log("Push opened Notification event: " + pushNotification);
#endif
  }
}

Durch das Aktualisieren Ihrer AndroidManifest.xml im vorherigen Schritt wurden Push-Listener automatisch eingerichtet, als Sie die folgenden Zeilen hinzugefügt haben. Es ist also keine weitere Einrichtung erforderlich.

1
2
<action android:name="com.amazon.device.messaging.intent.RECEIVE" />
<action android:name="com.amazon.device.messaging.intent.REGISTRATION" />

Optionale Konfigurationen

Deeplinking zu In-App-Ressourcen

Obwohl Braze standardmäßig Standard-Deeplinks (wie Website-URLs, Android-URIs usw.) verarbeiten kann, ist für die Erstellung angepasster Deeplinks eine zusätzliche Manifest-Einrichtung erforderlich.

Eine Anleitung zur Einrichtung finden Sie unter Deeplinking zu In-App-Ressourcen.

Braze-Push-Benachrichtigungssymbole hinzufügen

Um Ihrem Projekt Push-Symbole hinzuzufügen, erstellen Sie ein AAR-Plug-in oder eine Android-Bibliothek, die die Bilddateien für die Symbole unter res/drawable* (oder dichteabhängigen Ordnern) enthält, und referenzieren Sie jedes Symbol in Braze > Braze Configuration mit dem vollständigen @drawable/-Ressourcennamen (siehe Schritt 2.1: Push-Einstellungen konfigurieren). Informationen zu den Paketierungs- und Importschritten in Unity finden Sie unter Android-Library-Projekte und Android-Archive-Plug-ins.

Informationen zu den Gestaltungsregeln für kleine Symbole (nur Alpha-Kanal, keine Farbe) finden Sie unter Android-Push-Benachrichtigungen, Schritt 2: Kleine Symbole an die Designrichtlinien anpassen.

Push-Token-Callback

Um eine Kopie der Braze-Geräte-Token vom Betriebssystem zu erhalten, setzen Sie einen Delegaten mit AppboyBinding.SetPushTokenReceivedFromSystemDelegate().

Derzeit gibt es keine optionalen Konfigurationen für ADM.

Voraussetzungen

Bevor Sie dieses Feature nutzen können, müssen Sie das .NET MAUI Braze SDK integrieren.

Push-Benachrichtigungen einrichten

Um Push-Benachrichtigungen für .NET MAUI (ehemals Xamarin) zu integrieren, müssen Sie die Schritte für native Android-Push-Benachrichtigungen ausführen. Die folgenden Schritte sind nur eine Zusammenfassung. Eine vollständige Anleitung finden Sie in der Anleitung für native Push-Benachrichtigungen.

Schritt 1: Aktualisieren Sie Ihr Projekt

  1. Fügen Sie Firebase zu Ihrem Android-Projekt hinzu.
  2. Fügen Sie die Cloud Messaging-Bibliothek zu build.gradle Ihres Android-Projekts hinzu:
    1
    
      implementation "google.firebase:firebase-messaging:+"
    

Schritt 2: Erstellen Sie Ihre JSON-Anmeldeinformationen

  1. Aktivieren Sie in Google Cloud die Firebase Cloud Messaging API.
  2. Wählen Sie Servicekonten > Ihr Projekt > Servicekonto erstellen und geben Sie dann den Namen, die ID und die Beschreibung eines Servicekontos ein. Wenn Sie fertig sind, wählen Sie Erstellen und fahren Sie fort.
  3. Suchen Sie im Feld Rolle nach Firebase Cloud Messaging API Admin und wählen Sie es in der Liste der Rollen aus.
  4. Wählen Sie in Servicekonten Ihr Projekt und wählen Sie dann Aktionen > Schlüssel verwalten > Schlüssel hinzufügen > Neuen Schlüssel erstellen. Wählen Sie JSON und wählen Sie dann Erstellen.

Schritt 3: Laden Sie Ihre JSON-Anmeldedaten hoch

  1. Wählen Sie in Braze Einstellungen > App-Einstellungen. Wählen Sie unter den Push-Benachrichtigungseinstellungen Ihrer Android-App Firebase, dann JSON-Datei hochladen und laden Sie die zuvor generierten Anmeldeinformationen hoch. Wenn Sie fertig sind, wählen Sie Speichern.
  2. Aktivieren Sie in der Firebase-Konsole die automatische FCM-Token-Registrierung. Öffnen Sie Ihr Projekt und wählen Sie dann Einstellungen > Projekteinstellungen. Wählen Sie Cloud Messaging und kopieren Sie dann unter Firebase Cloud Messaging API (V1) die Nummer in das Feld Absender-ID.
  3. Fügen Sie Folgendes zur braze.xml Ihres Android Studio-Projekts hinzu.
1
2
  <bool translatable="false" name="com_braze_firebase_cloud_messaging_registration_enabled">true</bool>
  <string translatable="false" name="com_braze_firebase_cloud_messaging_sender_id">FIREBASE_SENDER_ID</string>

Schritt 1: Vervollständigen Sie die Ersteinrichtung

In den Anleitungen zur Swift-Integration finden Sie Informationen zum Einrichten Ihrer Anwendung mit Push und zum Speichern Ihrer Anmeldedaten auf unserem Server. Weitere Einzelheiten finden Sie in der iOS MAUI Beispielanwendung.

Schritt 2: Genehmigung für Push-Benachrichtigungen anfordern

Unser .NET MAUI SDK unterstützt nun die automatische Push-Einrichtung. Richten Sie die Push-Automatisierung und die Berechtigungen ein, indem Sie den folgenden Code zur Konfiguration Ihrer Braze-Instanz hinzufügen:

1
2
configuration.Push.Automation = new BRZConfigurationPushAutomation(true);
configuration.Push.Automation.RequestAuthorizationAtLaunch = false;

Weitere Einzelheiten finden Sie in der iOS MAUI Beispielanwendung. Weitere Einzelheiten finden Sie in der Xamarin-Dokumentation für Enhanced User Notifications in Xamarin.iOS.

New Stuff!