Skip to content

Lokalisierung

Für Unternehmen mit Kund:innen in vielen Ländern kann eine frühzeitige Lokalisierung auf Ihrer Braze-Journey Zeit und Ressourcen sparen.

Funktionsweise

Locale-Informationen werden im Profil von Nutzer:innen gespeichert, basierend auf Daten, die Sie über ein Braze SDK (automatisch) oder die REST API erfassen. Das Locale enthält die Sprache und eine Regionskennung. Diese Informationen sind im Braze-Segmentierungs-Tool unter Country und Language verfügbar.

Übersetzungsverwaltung

Berücksichtigen Sie die folgenden Ansätze für die Verwaltung Ihrer Übersetzungen.

Ein Template für alle

Bei diesem Ansatz wird die Lokalisierung mithilfe von Liquid auf ein einzelnes Template in Braze angewendet. Nach dem Versand stellt das Dashboard aggregierte Campaign-Analytics bereit. Das Engagement auf Nutzer:innenebene kann mithilfe angepasster Segment-Funnel gemessen werden, z. B. durch die Kombination der Filter Land und Campaign erhalten.

Vorteile Überlegungen
- Zentralisierter Ansatz
- Reduzierte E-Mail-Erstellungszeit, kein Bedarf, eine E-Mail mehrfach zu erstellen
- Manueller Berichtsaufbau
- Campaign-Bericht zeigt aggregierte Metriken statt Metriken pro Land
- Liquid muss gründlich getestet werden, um sicherzustellen, dass es wie erwartet befüllt wird
- Je nachdem, wie Sie den Länderwert abrufen oder wie viele Länder Sie eingerichtet haben, kann es schwierig sein, jedes Land zu testen
- Schwieriger, Versendungen für bestimmte Zeiten über Zeitzonen hinweg zu planen
- Schwieriger zu verwenden, wenn Sie separate Inhalte pro Land senden möchten.

Ein Template pro Land

Bei diesem Ansatz werden Templates in verschiedene Versandregionen aufgeteilt. Nach dem Versand zeigt das Dashboard die Versandanalysen für jedes Land separat an, und alle nachgelagerten Currents-Ereignisse auf Nutzer:innenebene werden ebenfalls einer bestimmten Campaign zugeordnet.

  • Templates profitieren von der Implementierung von Tags für Wartungs- und Tracking-Zwecke.
  • Campaigns können die Konfigurationen desselben Braze-Templates und derselben Content Blocks übernehmen (z. B. E-Mail-Templates, die Liquid enthalten).
  • Bereits vorhandene Campaigns und Templates können dupliziert werden, um eine schnellere Wertschöpfung zu ermöglichen.
Vorteile Überlegungen
- Skalierbar auf mehrere Standorte
- Berichterstattung über Umsatz pro Land innerhalb von Braze (z. B. pro Campaign)
- Flexibilität, wenn sich die Inhalte pro Land stark unterscheiden
- Erfordert strategische Strukturierung
- Mehr Erstellungsaufwand erforderlich (z. B. separate Campaigns für jedes Land)

Eine Journey für alle

Bei diesem Ansatz wird die Lokalisierung innerhalb der Canvas-Grundlagen und mit Liquid gehandhabt, um das Messaging für jede:n Nutzer:in zu definieren.

Nach dem Versand eines Canvas stellt das Dashboard aggregierte Canvas-Analytics bereit, während das Engagement auf Nutzer:innenebene über angepasste Segment-Funnel gemessen werden kann, z. B. durch die Kombination der Filter Land und Canvas-Schritt erhalten.

Vorteile Überlegungen
- Zentralisierter Ansatz
- Reduzierte E-Mail-Erstellungszeit – kein Bedarf, eine E-Mail mehrfach zu erstellen.
- Manueller Berichtsaufbau
- Canvas-Bericht zeigt aggregierte Metriken statt Metriken pro Land
- Liquid muss gründlich getestet werden, um sicherzustellen, dass es wie erwartet befüllt wird
- Je nachdem, wie Sie den Länderwert abrufen oder wie viele Länder Sie eingerichtet haben, kann es schwierig sein, jedes Land zu testen
- Schwieriger, Versendungen für bestimmte Zeiten über Zeitzonen hinweg zu planen
- Schwieriger zu verwenden, wenn Sie separate Inhalte pro Land senden möchten.

Eine Journey pro Land

Bei diesem Ansatz bietet der Canvas-Journey-Builder die Flexibilität, Nutzer:innen-Journeys über mehrere Canvas-Komponenten zu erstellen. Diese Komponenten können auf Komponenten- und Gesamtjourney-Ebene dupliziert werden.

Die Lokalisierung kann mit den folgenden Methoden erreicht werden:

  • Separate Canvases pro Land – so wird sichergestellt, dass die komplexen Nutzer:innen-Journeys am Anfang des Funnels mithilfe von Zielgruppenfiltern definiert werden
  • Maßgeschneiderte Nutzer:innen-Journeys pro Land – die Implementierung von Zielgruppenpfaden, um Nutzer:innen intuitiv in großem Umfang für jede Journey zu segmentieren, indem separate Nachrichtenstränge für jedes Land in einem einzigen Canvas erstellt werden

Nach dem Versand stellt das Dashboard dynamische Analytics pro Land bereit, und innerhalb der Currents-Ereignisse auf Nutzer:innenebene basierend auf dem aktuellen Standort der Kund:innen.

Vorteile Überlegungen
- Berichterstattung über Umsatz pro Land innerhalb von Braze (z. B. pro Canvas, Variante oder Schritt)
- Flexibilität, wenn sich die Inhalte pro Land stark unterscheiden
- Weitere Kanäle können in Zukunft als Teil der Journey hinzugefügt werden
- Erfordert strategische Strukturierung
- Mehr Erstellungsaufwand erforderlich (z. B. separate Nachrichtenschritte für jedes Land)
- Canvas kann groß und schwer lesbar werden, wenn Sie angepasste, komplexe Journeys für jedes Land in einem einzigen Canvas haben.

Übersetzte Nachrichten senden

Um personalisierte Nachrichten basierend auf der Sprache, dem Locale oder angepassten Attributen von Nutzer:innen zu senden, verwenden Sie eine der folgenden Methoden.

Übersetzungs-Liquid-Tags (empfohlen)

Braze unterstützt einen {% translation salutation %}Hello!{% endtranslation %} Liquid-Tag, um Nutzer:innen in verschiedenen Sprachen mit einer einzigen Nachricht anzusprechen.

Eine vollständige Anleitung finden Sie im Leitfaden zur Verwendung von Übersetzungs-Tags.

Alternative Ansätze

Sie können Ihre Inhalte manuell in den Nachrichtentext einfügen und Liquid verwenden, um die richtige Sprache bedingt für die Empfänger:innen anzuzeigen. Gehen Sie dazu wie folgt vor:

  1. Verfassen Sie Ihre Nachricht und wählen Sie dann Sprache aus, um bedingte Liquid-Logik für jede Ihrer ausgewählten Sprachen zu generieren.
  2. Sie können das folgende Liquid-Template verwenden, um Ihre Nachricht aufzubauen. Für jedes Feld mit Templating sollten Sie die Variationen nach dem eingeklammerten Templating-Abschnitt eingeben. Die Variation sollte dem Sprachcode entsprechen, der in den Klammern davor referenziert wird.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     {% if ${language} == 'en' %}
     This is a message in English from Braze!
     {% elsif ${language} == 'es' %}
     Este es un mensaje en español de Braze !
     {% elsif ${language} == 'zh' %}
     这是一条来自Braze的中文消息。
     {% else %}
     This is a message from Braze! This will go to anyone who does not match the other specified languages!
     {% endif %}
    
  3. Testen Sie Ihre Nachricht vor dem Senden, indem Sie die ID oder E-Mail-Adresse von Nutzer:innen eingeben, um zu prüfen, wie eine Nachricht je nach Sprache für eine Person aussehen würde.

Braze Content Blocks sind wiederverwendbare Inhaltsblöcke. Wenn ein Block geändert wird, ändern sich alle Referenzen auf diesen Block. Zum Beispiel werden Aktualisierungen an einem E-Mail-Header oder einer Fußzeile in allen E-Mails widergespiegelt oder können Übersetzungen beherbergen. Diese Blöcke können auch über die REST API erstellt und aktualisiert werden, und Nutzer:innen können Übersetzungen programmatisch hochladen.

Beim Erstellen einer Campaign im Dashboard können Content Blocks mit dem Tag {{content_blocks.${name_of_content_block}}} referenziert werden. Diese Blöcke können alle Übersetzungen innerhalb bedingter Logik für jede Sprache enthalten, wie in Option 1 gezeigt, oder es kann ein separater Block für jede Sprache verwendet werden.

Content Blocks können auch als Übersetzungsmanagement-Prozess genutzt werden, bei dem Inhalte, die übersetzt werden müssen, in einem Content-Block gespeichert, abgerufen, übersetzt und dann aktualisiert werden:

  1. Erstellen Sie manuell einen Content-Block im Dashboard mit dem Tag „Needs Translation“.
  2. Ihr Dienst führt einen nächtlichen Abruf aller Content Blocks über den /content_blocks/list-Endpunkt durch.
  3. Ihr Dienst ruft Details zu jedem Content-Block über den /content_blocks/info-Endpunkt ab, um zu sehen, welche Blöcke zur Übersetzung markiert sind.
  4. Ihr Übersetzungsdienst übersetzt den Inhalt aller Content Blocks mit dem Tag „Needs Translation“.
  5. Ihr Dienst ruft den /content_block/update-Endpunkt auf, um den übersetzten Inhalt zu aktualisieren und den Tag auf „Translation Complete“ zu ändern.

Kataloge ermöglichen es Ihnen, auf Daten aus importierten JSON-Objekten über API und CSV-Dateien zuzugreifen, um Ihre Nachrichten anzureichern – ähnlich wie angepasste Attribute oder angepasste Event-Eigenschaften über Liquid. Zum Beispiel:

Erstellen Sie einen Katalog über den folgenden API-Aufruf:

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
curl --location --request POST 'https://your_api_endpoint/catalogs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
 "catalogs": [
   {
     "name": "translations",
     "description": "My localization samples",
     "fields": [
       {
         "name": "id",
         "type": "string"
       },
       {
         "name": "context",
         "type": "string"
       },
       {
         "name": "language",
         "type": "string"
       },
       {
         "name": "body",
         "type": "string"
       }
     ]
   }
 ]
}'

Fügen Sie Artikel über den folgenden API-Aufruf hinzu:

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
curl --location --request POST 'https://your_api_endpoint/catalogs/translations/items' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR-REST-API-KEY' \
--data-raw '{
 "items": [
   {
     "id": "1",
     "context": "1",
     "language": "en",
     "body": "Hey"
   },
   {
     "id": "2",
     "context": "1",
     "language": "es",
     "body": "Hola"
   },
   {
     "id": "3",
     "context": "1",
     "language": "pt",
     "body": "Oi"
   },
   {
     "id": "4",
     "context": "1",
     "language": "de",
     "body": "Hallo"
   }
 ]
}'

Erstellen Sie eine CSV-Datei im folgenden Format:

id context language body
1 1 en Hey
2 1 es Hola
3 1 pt Oi
4 1 de Hallo
5 2 en Hey
6 2 es Hola
7 2 pt Oi
8 2 de Hallo
9 3 en Hey
10 3 es Hola
11 3 pt Oi
12 3 de Hallo

Diese Katalogartikel können dann über Personalisierung referenziert werden, wie im folgenden Beispiel gezeigt, oder über Selections, mit denen Sie Datengruppen erstellen können.

1
2
3
{% catalog_items translations 1 %}
{{items[0].body}}
//returns “Hey”

Viele Braze-Partner bieten Lokalisierungslösungen an, darunter Transifex und Crowdin. In der Regel nutzen Nutzer:innen die Plattform zusammen mit einem internen Team und einer Übersetzungsagentur. Diese Übersetzungen werden dort hochgeladen und sind dann über die REST API zugänglich. Diese Dienste nutzen häufig auch Connected Content, sodass Nutzer:innen die Übersetzungen über die API abrufen können.

Zum Beispiel rufen die folgenden Connected-Content-Aufrufe Transifex und Crowdin auf, um eine Übersetzung abzurufen, wobei {{${language}}} verwendet wird, um die richtige Übersetzung für bestimmte Nutzer:innen zu identifizieren. Diese Übersetzung wird dann im JSON-Block „strings“ gespeichert und referenziert.

1
2
{% connected_content https://www.transifex.com/api/2/project/example/resource/example/translation/{{${language}}}/strings :basic_auth semc :save strings %}
{{strings[0].translation}}
1
2
{% connected_content https://api.crowdin.com/api/project/braze-test/export-file?key=you_api_key&language={{${language}}}&file=test.json&export_translated_only=1 :save response %}
{{response.value_1}}

Speichern Sie Übersetzungen in einer Tabellenkalkulation und verwenden Sie dann eine der folgenden Methoden, um Ihre Nachricht in der entsprechenden Sprache zu senden.

Sie können mit einer Übersetzungsagentur zusammenarbeiten, um Übersetzungen in einer Google-Tabelle zu speichern, und diesen Inhalt dann über Braze Connected Content abfragen. Wenn Sie eine Nachricht senden, wird die entsprechende Übersetzung für alle Nutzer:innen basierend auf ihrer ausgewählten Sprache in Ihren Campaign-Text eingefügt.

Diese Option bietet eine alternative Methode, um Google Sheets in JSON-Objekte umzuwandeln, die über Connected Content abgefragt werden. Indem Sie eine Tabellenkalkulation über SheetDB in eine JSON-API umwandeln, können Sie aus mehreren Abo-Stufen je nach Häufigkeit der API-Aufrufe wählen.

Die Tabellenstruktur folgt den Schritten in Option 4, aber SheetDB bietet auch zusätzliche Filter, um die Objekte abzufragen.

Einige Nutzer:innen bevorzugen möglicherweise die Implementierung von SheetDB mit weniger Liquid- und Connected-Block-Abhängigkeiten, indem sie die Suchmethode von SheetDB in GET-Anfragen verwenden, um die JSON-Objekte basierend auf dem {{${language}}} Liquid-Tag zu filtern und automatisch die Ergebnisse für eine einzelne Sprache zurückzugeben, anstatt große bedingte Blöcke zu erstellen.

Schritt 1: Google-Tabelle formatieren

Erstellen Sie zunächst die Google-Tabelle so, dass die Sprachen verschiedene Objekte sind:

language title1 body1 title2 body2
en Hey 1 Hey2 5
es Hola 2 Hola2 6
pt Oi 3 Oi2 7
de Hallo 4 Hallo2 8

Schritt 2: Den Sprach-Liquid-Tag in einem Connected-Content-Aufruf verwenden

Implementieren Sie als Nächstes den {{${language}}} Liquid-Tag innerhalb eines Connected-Content-Aufrufs. Beachten Sie, dass SheetDB die sheet_id automatisch beim Erstellen der Tabellenkalkulation generiert.

1
{% connected_content https://sheetdb.io/api/v1/[sheet_id]/search?language={{${language}}} :save result%}

Schritt 3: Nachrichten mit Templates erstellen

Verwenden Sie abschließend Liquid für das Templating Ihrer Nachrichten:

1
2
{{result[0].title1}} //returns “Hey”
{{result[0].title2}} //returns “Hey2”
Hinweise
  • Das Feld {{${language}}} muss für alle Nutzer:innen definiert sein; andernfalls muss ein bedingter Liquid-Block als Fallback-Handler für Nutzer:innen ohne Sprache eingebunden werden.
  • Die Datenmodellierung in Google Sheets muss einer anderen sprachgesteuerten vertikalen Struktur folgen, anstatt Nachrichtenobjekte zu verwenden.
  • SheetDB bietet ein begrenztes kostenloses Konto und mehrere kostenpflichtige Optionen, die basierend auf Ihrer Campaign-Strategie berücksichtigt werden sollten.
  • Connected-Content-Aufrufe können zwischengespeichert werden. Wir empfehlen, die voraussichtliche Häufigkeit der API-Aufrufe zu messen und einen alternativen Ansatz zu untersuchen, bei dem der Haupt-SheetDB-Endpunkt aufgerufen wird, anstatt die Suchmethode zu verwenden.

Diese Option wandelt eine Google-Tabelle in eine JSON-API um, die Sie mit Connected Content abfragen können. Sheetlabs unterstützt große Abfragevolumen und bietet kostenlose und kostenpflichtige Stufen.

Schritt 1: Übersetzungstabelle in Google Sheets vorbereiten

Erstellen Sie die Google-Tabelle so, dass jede Zeile eine Sprache darstellt. Zum Beispiel:

language greeting title1 legal1
en Welcome! Your exclusive offer is here
fr Bienvenue! Votre offre exclusive est arrivée

Schritt 2: Sheetlabs verwenden, um die Tabelle zu importieren und eine API zu erstellen

  1. Registrieren Sie sich bei Sheetlabs.
  2. Folgen Sie den Sheetlabs-Anweisungen, um Daten aus Google Sheets zu importieren.
  3. Wählen Sie die Tabellenkalkulation aus, die Sie in Schritt 1 erstellt haben.
  4. Wählen Sie Create a matching API aus.

Schritt 3: Sheetlabs-Authentifizierungstoken zu Braze hinzufügen (optional)

Wenn Ihre Sheetlabs-API öffentlich ist, überspringen Sie diesen Schritt. Wenn eine Authentifizierung erforderlich ist:

  1. Gehen Sie zur Seite My Account in Sheetlabs und kopieren Sie Ihren API-Token.
  2. Folgen Sie den Schritten unter Braze-Authentifizierung mit Basic Auth, um eine Basic-Authentication-Anmeldeinformation in Braze zu erstellen. Verwenden Sie Ihren Sheetlabs-Benutzernamen (E-Mail-Adresse) und den kopierten API-Token.
  3. Speichern Sie die Anmeldeinformation mit einem Namen wie sheetlabs_creds.

Schritt 4: Sheetlabs-API über Connected Content aufrufen

Fügen Sie einen Connected-Content-Aufruf an Sheetlabs hinzu. Ersetzen Sie /XXX/yourapi durch den Pfad zu der API, die Sie in Schritt 2 erstellt haben.

1
2
{% connected_content https://sheetlabs.com/XXX/yourapi?language={{${language}}} :save translations :basic_auth sheetlabs_creds %}

Schritt 5: Nachrichten mit Templates erstellen

Verwenden Sie Liquid, um die zurückgegebenen Felder zu referenzieren. Zum Beispiel:

1
2
{{translations[0].greeting}} {{${first_name}}},
{{translations[0].body1}}

Hinweise

  • Definieren Sie das Feld {{${language}}} für alle Nutzer:innen, die Sie zuordnen möchten. Wenn Nutzer:innen keine Sprache festgelegt haben, fügen Sie einen Liquid-Fallback ein.
  • Connected-Content-Aufrufe können zwischengespeichert werden. Messen Sie Ihre voraussichtliche API-Häufigkeit bei der Auswahl eines Sheetlabs-Plans.

Weitere Informationen finden Sie unter Sheetlabs mit Braze verwenden.

New Stuff!