Zum Inhalt springen

Lokalisierung

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

So funktioniert es

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 bietet das Dashboard aggregierte Campaign-Analytics. Das Engagement auf Nutzer:innen-Ebene kann mithilfe angepasster Segment-Funnel gemessen werden, zum Beispiel durch Kombination der Filter Country und Received Campaign.

Vorteile Überlegungen
- Zentralisierter Ansatz
- Reduzierte E-Mail-Erstellungszeit, keine Notwendigkeit, eine E-Mail mehrfach zu erstellen
- Manuelle Berichterstellung
- Der 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 zu bestimmten Zeiten über Zeitzonen hinweg zu planen
- Schwieriger zu verwenden, wenn Sie separate Inhalte pro Land versenden möchten.

Ein Template pro Land

Dieser Ansatz unterteilt das Templating in verschiedene Versand-Locales. Nach dem Versand zeigt das Dashboard die Versand-Analytics basierend auf jedem Land separat an, und alle nachgelagerten Currents-Ereignisse auf Nutzer:innen-Ebene 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 erben (wie 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
- Berichterstellung über Umsatz pro Land innerhalb von Braze (z. B. pro Campaign)
- Flexibilität bei stark unterschiedlichen Inhalten pro Land
- 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 verwaltet, um Nachrichten für jede:n Nutzer:in zu definieren.

Nach dem Versand eines Canvas bietet das Dashboard aggregierte Canvas Analytics, während das Engagement auf Nutzer:innen-Ebene über angepasste Segment-Funnel gemessen werden kann, zum Beispiel durch Kombination der Filter Country und Received Canvas Step.

Vorteile Überlegungen
- Zentralisierter Ansatz
- Reduzierte E-Mail-Erstellungszeit – keine Notwendigkeit, eine E-Mail mehrfach zu erstellen.
- Manuelle Berichterstellung
- Der 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 zu bestimmten Zeiten über Zeitzonen hinweg zu planen
- Schwieriger zu verwenden, wenn Sie separate Inhalte pro Land versenden 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 einzelnen Canvas erstellt werden

Nach dem Versand bietet das Dashboard dynamische Analytics pro Land sowie Currents-Ereignisse auf Nutzer:innen-Ebene basierend auf dem aktuellen Standort der Kund:innen.

Vorteile Überlegungen
- Berichterstellung über Umsatz pro Land innerhalb von Braze (z. B. pro Canvas, Variante oder Schritt)
- Flexibilität bei stark unterschiedlichen Inhalten pro Land
- Weitere Kanäle können zukünftig 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 einzelnen 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 Ihren Inhalt manuell in den Nachrichtentext einfügen und Liquid verwenden, um dem Empfänger bzw. der Empfängerin die korrekte Sprache bedingt anzuzeigen. Gehen Sie dazu wie folgt vor:

  1. Verfassen Sie Ihre Nachricht und wählen Sie dann Sprache, um die 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 Abschnitt in Klammern eingeben. Die Variation sollte dem Sprachcode entsprechen, der in den Klammern davor referenziert wird.

     {% 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 Versand, indem Sie die ID oder E-Mail-Adresse von Nutzer:innen eingeben, um zu überprü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 einer E-Mail-Kopfzeile oder -Fußzeile in allen E-Mails widergespiegelt oder können für Übersetzungen genutzt werden. 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 über den Tag {{content_blocks.${name_of_content_block}}} referenziert werden. Diese Blöcke können alle Übersetzungen in 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 zu übersetzende Inhalte 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:

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 Einträge über den folgenden API-Aufruf hinzu:

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 Katalogeinträge können dann mithilfe von Personalisierung referenziert werden, wie im folgenden Beispiel gezeigt, oder über Selections, mit denen Sie Datengruppen erstellen können.

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

Viele Braze-Partner bieten Lokalisierungslösungen an, darunter Transifex und Crowdin. In der Regel verwenden 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 oft auch Connected Content, sodass Nutzer:innen die Übersetzungen über eine API abrufen können.

Die folgenden Connected-Content-Aufrufe rufen beispielsweise Transifex und Crowdin auf, um eine Übersetzung abzurufen, und nutzen {{${language}}}, um die korrekte Übersetzung für die jeweiligen Nutzer:innen zu identifizieren. Diese Übersetzung wird dann im JSON-Block „strings“ gespeichert und referenziert.

{% connected_content https://www.transifex.com/api/2/project/example/resource/example/translation/{{${language}}}/strings :basic_auth semc :save strings %}
{{strings[0].translation}}
{% 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 Tabelle und verwenden Sie dann eine der folgenden Methoden, um Ihre Nachricht in der relevanten Sprache zu senden.

Sie können mit einer Übersetzungsagentur zusammenarbeiten, um Übersetzungen in einer Google-Tabelle zu speichern, und diesen Inhalt dann mithilfe von Braze Connected Content abfragen. Wenn Sie eine Nachricht senden, wird die relevante Übersetzung für jede Nutzerin und jeden Nutzer basierend auf der ausgewählten Sprache in den Campaign-Text eingefügt.

Diese Option bietet eine alternative Methode, Google Sheets in JSON-Objekte umzuwandeln, die über Connected Content abgefragt werden. Indem Sie eine Tabelle über SheetDB in eine JSON-API umwandeln, können Sie je nach Häufigkeit der API-Aufrufe aus mehreren Abo-Stufen 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 Tabelle generiert.

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

Schritt 3: Ihre Nachrichten templaten

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

{{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 sprachgesteuerten vertikalen Struktur folgen, im Gegensatz zu Nachrichtenobjekten.
  • SheetDB bietet ein begrenztes kostenloses Konto und mehrere kostenpflichtige Optionen, die basierend auf Ihrer Campaign-Strategie in Betracht gezogen 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 anstelle der Suchmethode aufgerufen wird.

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 sowie kostenpflichtige Stufen.

Schritt 1: Ihre Ü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 Tabelle aus, die Sie in Schritt 1 erstellt haben.
  4. Wählen Sie Create a matching API.

Schritt 3: Ihren Sheetlabs-Authentifizierungs-Token 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-Auth-Anmeldedaten in Braze zu erstellen. Verwenden Sie Ihren Sheetlabs-Nutzernamen (E-Mail-Adresse) und den kopierten API-Token.
  3. Speichern Sie die Anmeldedaten mit einem Namen wie sheetlabs_creds.

Schritt 4: Die Sheetlabs-API über Connected Content aufrufen

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

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

Schritt 5: Ihre Nachrichten templaten

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

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

Hinweise

  • Definieren Sie das Feld {{${language}}} für alle Nutzer:innen, die Sie abgleichen möchten. Wenn Nutzer:innen keine Sprache eingestellt haben, fügen Sie einen Liquid-Fallback hinzu.
  • 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!