Zum Inhalt springen

Roku SDK Repository-Leitfaden

Über das Braze Roku SDK

Mit dem Braze Roku SDK können Sie Braze-Funktionen für Messaging, Analytics und Nutzer-Engagement in Ihre Anwendung integrieren.

Für den Einstieg nutzen Sie die folgenden Ressourcen:

Erste SDK-Integration

Das Braze Roku SDK stellt Ihnen eine API zur Verfügung, mit der Sie Informationen übermitteln können, die Sie für Analytics, Segmentierung und Engagement nutzen können.

Schritt 1: Dateien hinzufügen

  1. Fügen Sie BrazeSDK.brs im Verzeichnis source zu Ihrer App hinzu.
  2. Fügen Sie BrazeTask.brs und BrazeTask.xml im Verzeichnis components zu Ihrer App hinzu.
  3. Wenn Sie die Standard-UI für In-App-Nachrichten verwenden möchten, fügen Sie außerdem BrazeDefaultInAppMessage.brs, BrazeDefaultInAppMessage.xml und BrazeDefaultInAppMessageStyles.brs zum Verzeichnis components hinzu. Diese drei Dateien können auch in einem Unterordner von components liegen, solange sie zusammen bleiben.

Schritt 2: Referenzen hinzufügen

Fügen Sie in Ihrer Hauptszene mit dem folgenden script-Element eine Referenz auf BrazeSDK.brs hinzu:

<script type="text/brightscript" uri="pkg:/source/BrazeSDK.brs"/>

Schritt 3: Konfigurieren

Legen Sie in main.brs die Braze-Konfiguration auf dem globalen Knoten vor CreateScene() fest, damit sie während init() der Scene verfügbar ist:

screen = CreateObject("roSGScreen")
globalNode = screen.getGlobalNode()
config = {}
config_fields = BrazeConstants().BRAZE_CONFIG_FIELDS
config[config_fields.API_KEY] = "YOUR_API_KEY_HERE"
config[config_fields.ENDPOINT] = "YOUR_ENDPOINT_HERE (e.g. https://sdk.iad-01.braze.com/)"
config[config_fields.HEARTBEAT_FREQ_IN_SECONDS] = 5
globalNode.addFields({brazeConfig: config})
screen.CreateScene("MainScene")

Schritt 4: Braze initialisieren

Initialisieren Sie die Braze-Instanz:

m.BrazeTask = createObject("roSGNode", "BrazeTask")
m.Braze = getBrazeInstance(m.BrazeTask)

Einrichtung von In-App-Nachrichten

Wenn Sie In-App-Nachrichten bereits mit Ihrer eigenen UI rendern und ein Upgrade auf Version 2.3.0 oder höher durchführen, lesen Sie den Leitfaden für In-App-Nachrichten.

Das SDK kann modale In-App-Nachrichten (MODAL) mit seiner Standard-UI anzeigen. Diese Option ist standardmäßig deaktiviert. Um sie zu aktivieren, fügen Sie die BrazeDefaultInAppMessage-Dateien hinzu (Schritt 1) und legen Sie Folgendes fest:

config[config_fields.AUTOMATIC_IAM_DISPLAY] = true

Rufen Sie getBrazeInstance(m.BrazeTask) aus Ihrer Haupt-Scene auf, damit das SDK den Dialog im Render-Thread einbinden kann. Für den Standarddialog müssen Sie BrazeInAppMessage weder beobachten noch eine eigene UI erstellen.

Slideup-, Vollbild-, gestaltete modale und HTML-In-App-Nachrichten werden von der Standard-UI nicht angezeigt. Das SDK protokolliert für diese Typen einen Fehler. HTML-Rendering wird auf Roku nicht unterstützt.

Wenn Sie In-App-Nachrichten selbst rendern, lassen Sie automatic_iam_display ungesetzt und beobachten Sie BrazeTask.BrazeInAppMessage:

m.BrazeTask.observeField("BrazeInAppMessage", "onInAppMessageReceived")

Um eine bestimmte Nachricht abzufangen und eine angepasste UI anzuzeigen, während die automatische Anzeige für alle anderen Nachrichten erhalten bleibt, implementieren Sie diese Funktion in Ihrer Scene (und deklarieren Sie sie im <interface> der Scene-XML):

function brazeHandleCustomInAppMessage(in_app_message as object) as boolean
  ' Return true if your app displayed the message, false to use the default SDK dialog.
  return false
end function

Um einen angepassten Klick zu verarbeiten und dabei weiterhin die Standard-UI für In-App-Nachrichten zu verwenden, implementieren Sie Folgendes in Ihrer Scene (und deklarieren Sie es im <interface> der Scene-XML). Das SDK protokolliert den Klick, schließt die Nachricht und ruft anschließend diese Funktion auf, damit eine Navigation den Fokus behalten kann. Die Zurück-Taste schließt die Nachricht, ohne die Funktion aufzurufen.

function brazeHandleInAppMessageClick(event as object) as void
  in_app_message = event.in_app_message
  button = event.button
  if button <> invalid
    ' Button click. Use button.click_action and button.uri.
    return
  end if
  ' Body click (no buttons). Use in_app_message.click_action and in_app_message.uri.
end function

Wenn Sie die UI selbst verwalten, hat Ihr Handler Zugriff auf die In-App-Nachricht mit der höchsten Priorität, die von Ihren Campaigns getriggert wurde:

in_app_message = m.BrazeTask.BrazeInAppMessage

Verfügbare Felder sind unter anderem:

  • in_app_message.message – Der Textkörper der In-App-Nachricht
  • in_app_message.buttons – Liste der Buttons (kann eine leere Liste sein).
  • in_app_message.id – ID für die Protokollierung von Impressionen oder Klicks
  • in_app_message.extras – Schlüssel-Wert-Paare
  • in_app_message.image_url – Bild-URL
  • in_app_message.click_action – Wenn keine Buttons vorhanden sind, legt dieses Feld fest, was geschehen soll, wenn Nutzer:innen bei angezeigter In-App-Nachricht auf „OK“ klicken. Kann „URI“ oder „NONE“ sein.
  • in_app_message.dismiss_type – Kann „AUTO_DISMISS“ oder „SWIPE“ sein
  • in_app_message.display_delay – Wartezeit (in Sekunden) bis zur Anzeige der In-App-Nachricht
  • in_app_message.duration – Anzeigedauer der Nachricht (in Millisekunden), wenn dismiss_type „AUTO_DISMISS“ ist
  • in_app_message.header – Der Überschriftentext der In-App-Nachricht
  • in_app_message.uri – Wenn click_action „URI“ ist, sollte dieser Wert angezeigt werden

Sie können auch Styling-Felder aus dem Dashboard verwenden. Alternativ können Sie die In-App-Nachricht in Ihrer Roku-Anwendung mit einer Standardpalette implementieren und gestalten.

  • in_app_message.bg_color – Hintergrundfarbe
  • in_app_message.close_button_color – Farbe des Schließen-Buttons
  • in_app_message.frame_color – Die Farbe des Hintergrund-Overlays
  • in_app_message.header_text_color – Textfarbe der Überschrift
  • in_app_message.message_text_color – Textfarbe der Nachricht
  • in_app_message.text_align – Kann „START“, „CENTER“ oder „END“ sein

Button-Felder sind unter anderem:

  • buttons[0].click_action – Kann „URI“ sein, um anzugeben, dass das Feld uri geöffnet werden soll. Kann „NONE“ sein, um anzugeben, dass dieser Button die In-App-Nachricht schließen soll.
  • buttons[0].id – Der ID-Wert des Buttons selbst
  • buttons[0].text – Der Text, der auf dem Button angezeigt wird
  • buttons[0].uri – Wenn click_action „URI“ ist, sollte dieser Wert angezeigt werden
  • buttons[0].bg_color – Hintergrundfarbe des Buttons
  • buttons[0].border_color – Rahmenfarbe des Buttons
  • buttons[0].text_color – Textfarbe des Buttons

Die Standard-UI BrazeDefaultInAppMessage protokolliert Impressionen und Klicks für Sie.

Wenn Sie Ihre eigene UI implementieren, protokollieren Sie eine Impression, sobald die Nachricht angezeigt wird:

LogInAppMessageImpression(in_app_message.id, brazetask)

Wenn Nutzer:innen auf die Nachricht klicken, protokollieren Sie einen Klick:

LogInAppMessageClick(in_app_message.id, brazetask)

Verarbeiten Sie anschließend in_app_message.click_action.

Wenn Nutzer:innen auf einen Button klicken, protokollieren Sie den Button-Klick:

LogInAppMessageButtonClick(inappmessage.id, inappmessage.buttons[selected].id, brazetask)

Verarbeiten Sie anschließend inappmessage.buttons[selected].click_action.

Nachdem Sie die In-App-Nachricht verarbeitet haben, leeren Sie das Feld:

m.BrazeTask.BrazeInAppMessage = invalid

Grundlegende SDK-Integration abgeschlossen

Braze erfasst jetzt Daten aus Ihrer Anwendung. Weitere Informationen zur Protokollierung von Attributen, Events und Käufen finden Sie in der Braze-Dokumentation. Die Szene MainScene.brs der Beispiel-App enthält außerdem API-Beispiele.

BrazeDefaultInAppMessage ist die Standard-UI des SDK für In-App-Nachrichten. CustomSideBySideInAppMessage.brs in der Beispiel-App zeigt ein angepasstes Layout über brazeHandleCustomInAppMessage().

Zusätzliche Referenz

Das Verzeichnis torchietv enthält eine Beispiel-App, in die das Braze SDK integriert ist.

Details zum Repository und Beispielprojekte finden Sie unter https://github.com/braze-inc/braze-roku-sdk.

New Stuff!