Zum Inhalt springen

Segmentierungssprache

Pushwoosh bietet eine leistungsstarke Segmentierungs-Engine zum Erstellen granularer Segmente basierend auf Tag-Werten. Die Segmentierungssprache ist eine spezielle Art, Segmentierungskriterien zu schreiben und zu kombinieren, um eine bestimmte Gruppe von Benutzern zu beschreiben, die diesen Kriterien entsprechen, und sie als ein einziges Zielgruppensegment zu behandeln.

Dieser Artikel beschreibt die grundlegenden Konzepte und die Syntax der Segmentierungssprache und bietet umfassende Beispiele für die Erstellung von Segmentierungskriterien für verschiedene Fälle.

Grundlagen

Anchor link to

Jedes Gerät in Ihrer Benutzerbasis hat spezifische Attribute, die ihm über Tag-Werte zugeordnet sind.

Nehmen wir zum Beispiel an, eine Benutzerin namens Jane lebt in Tokio und ist 28 Jahre alt. Für das Gerät dieser Benutzerin werden die folgenden Tags gesetzt:

  • Name: Jane
  • Stadt: Tokio
  • Alter: 28

Um Jane anzusprechen, müssen Sie ein Segment wie folgt beschreiben:

T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")

Diese Kombination von Bedingungen ist ein Filterausdruck, der in der Segmentierungssprache verwendet wird, um Benutzergruppen, also Zielgruppensegmente, zu beschreiben.

Filterausdrücke

Anchor link to

Ein Filterausdruck ist eine Zeichenfolge, die eine Bedingung oder eine Kombination von Bedingungen enthält, die das benötigte Segment beschreiben.

Bedingungen

Anchor link to

Jede Bedingung beschreibt ein Segment von Geräten, die den in dieser Bedingung angegebenen Kriterien entsprechen.

Zum Beispiel erstellt die folgende Bedingung ein Segment von Benutzern, die in Tokio leben:

T("City", e, "Tokyo")

wobei

  • T ein Tag ist (Bedingungstyp);
  • eq ein anzuwendender Operator ist;
  • “Tokyo” ein Tag-Wert ist, der den Geräten der Benutzer zugeordnet ist.

Bedingungstypen

Anchor link to

Die folgenden Bedingungstypen sind für die Segmentierung verfügbar:

  • A (Application) – beschreibt ein Segment von Geräten, auf denen eine bestimmte App installiert ist. Aliase: App, Application;
  • T (Tag) – beschreibt ein Segment von Geräten mit den angegebenen Tag-Werten;
  • AT (App-specific tag) – wird in Kombination mit den App-Codes für app-spezifische Tags angewendet. Alias: Tag;
  • Event – beschreibt ein Segment von Geräten, die ein bestimmtes Pushwoosh-Ereignis ausgelöst haben;
  • Geo – beschreibt ein Segment von Geräten innerhalb eines bestimmten geografischen Radius;
  • BTTS – beschreibt ein Segment von Geräten basierend auf ihrer besten Sendezeit;
  • Updated – beschreibt ein Segment von Geräten basierend auf ihrem letzten Aktualisierungszeitstempel;
  • Segment – verweist auf einen anderen Filter/Segment anhand seines Codes;
  • Static (oder S) – verweist auf ein vordefiniertes statisches Segment;

Operationen mit Bedingungen

Anchor link to

Für die Erstellung komplexer Segmente können die folgenden Operationen auf Bedingungen innerhalb des Filterausdrucks angewendet werden:

Vereinigung (+)

Anchor link to

Verbindet die Segmente, d.h. erstellt ein neues Segment von Benutzern, die mindestens eine der angegebenen Bedingungen erfüllen.

Um beispielsweise Benutzer anzusprechen, die in Tokio oder Osaka leben, müssen Sie das Segment mit den folgenden Bedingungen beschreiben:

T("City", eq, "Tokyo") + T("City", eq, "Osaka")

Schnittmenge (*)

Anchor link to

Konstruiert ein Segment von Benutzern, die zu beiden durch die Bedingungen beschriebenen Segmenten gehören. Es werden also nur diejenigen Benutzer eingeschlossen, die jede von Ihnen angegebene Bedingung erfüllen.

Der folgende Ausdruck beschreibt ein Segment von Benutzern, die sowohl in Tokio leben als auch ihre Namen angegeben haben:

T("City", eq, "Tokyo") * T("Name", any)

Differenz (\)

Anchor link to

Erstellt ein Segment von Benutzern, die zu einem der beschriebenen Segmente gehören und nicht zu einem anderen.

Benutzer, die in Tokio leben, aber ihre Namen nicht angegeben haben, werden wie folgt beschrieben:

T("City", eq, "Tokyo") \ T("Name", any)

Bestimmen die Reihenfolge der Operationen, die mit den Bedingungen in Ihrem Filterausdruck durchgeführt werden sollen.

Zum Beispiel wird der folgende Filterausdruck zuerst ein Segment der 12345-67890-Abonnenten ermitteln, deren Alter 18 ist, und dann alle Männer dieses Segments abziehen:

( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")

Tag-Bedingungsoperatoren

Anchor link to

Für jeden Tag-Typ werden eigene Operatoren angewendet.

Integer-Tag-Operatoren

Anchor link to
  • eq - gleich einem angegebenen Wert
  • noteq - nicht gleich einem angegebenen Wert
  • lte - kleiner als oder gleich einem angegebenen Wert
  • gte - größer als oder gleich einem angegebenen Wert
  • in - einer der angegebenen Werte
  • notin - nicht gleich einem der angegebenen Werte
  • between - in einem angegebenen Bereich
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag

String-Tag-Operatoren

Anchor link to
  • eq - gleich einem angegebenen Wert
  • noteq - nicht gleich einem angegebenen Wert
  • startswith - beginnt mit einem angegebenen Präfix
  • endswith - endet mit einem angegebenen Suffix
  • contains - enthält eine angegebene Teilzeichenfolge
  • in - gleich einem der angegebenen Werte
  • notin - nicht gleich einem der angegebenen Werte
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag

List-Tag-Operatoren

Anchor link to
  • in - Geräte mit einem der angegebenen Tag-Werte
  • notin - keiner der angegebenen Tag-Werte ist dem Gerät zugeordnet
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag

Date-Tag-Operatoren

Anchor link to
  • eq - gleich dem angegebenen Datum
  • noteq - nicht gleich dem angegebenen Datum
  • lte - vor oder am angegebenen Datum
  • gte - nach oder am angegebenen Datum
  • in - gleich einem der angegebenen Daten
  • notin - nicht gleich einem der angegebenen Daten
  • between - in einem angegebenen Bereich
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag
  • match - stimmt mit einem angegebenen Monat des Jahres und Tag des Monats überein.
  • daysago eq - gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • daysago noteq - nicht gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • daysago lte - kleiner als oder gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • daysago gte - größer als oder gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • daysago between - zwischen den angegebenen Anzahlen von Tagen
  • minutesago lte - kleiner als oder gleich einer angegebenen Anzahl von Minuten vor dem aktuellen Moment
  • minutesago gte - größer als oder gleich einer angegebenen Anzahl von Minuten vor dem aktuellen Moment

Boolean-Tag-Operatoren

Anchor link to
  • eq - gleich einem angegebenen Wert
  • noteq - nicht gleich einem angegebenen Wert
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag

Price-Tag-Operatoren

Anchor link to
  • eq - gleich einem angegebenen Wert
  • noteq - nicht gleich einem angegebenen Wert
  • lte - kleiner als oder gleich einem angegebenen Wert
  • gte - größer als oder gleich einem angegebenen Wert
  • in - gleich einem der angegebenen Werte
  • notin - nicht gleich einem der angegebenen Werte
  • between - in einem angegebenen Bereich
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag

Version-Tag-Operatoren

Anchor link to
  • eq - gleich einem angegebenen Wert
  • noteq - nicht gleich einem angegebenen Wert
  • lte - kleiner als oder gleich einem angegebenen Wert
  • gte - größer als oder gleich einem angegebenen Wert
  • in - gleich einem der angegebenen Werte
  • notin - nicht gleich einem der angegebenen Werte
  • between - in einem angegebenen Bereich
  • any - Geräte mit beliebigen Werten für das Tag
  • notset - Geräte ohne Wert für das Tag

Event-Bedingungsoperatoren

Anchor link to

Event-Anzahl

Anchor link to
  • count gte - Geräte, die das Ereignis mehr als oder genau n-mal ausgelöst haben
  • count lte - Geräte, die das Ereignis weniger als oder genau n-mal ausgelöst haben
  • count eq - Geräte, die das Ereignis genau n-mal ausgelöst haben
  • count noteq - Geräte, die das Ereignis beliebig oft, aber nicht genau n-mal ausgelöst haben

Event-Datum

Anchor link to
  • date gte - Geräte, die das Ereignis später als oder genau am angegebenen Datum ausgelöst haben
  • date lte - Geräte, die das Ereignis früher als oder genau am angegebenen Datum ausgelöst haben
  • date eq - Geräte, die das Ereignis genau am angegebenen Datum ausgelöst haben
  • date noteq - Geräte, die das Ereignis jederzeit, aber nicht am angegebenen Datum ausgelöst haben
  • date in - Geräte, die das Ereignis an einem der angegebenen Daten ausgelöst haben
  • date notin - Geräte, die das Ereignis jederzeit, aber nicht an einem der angegebenen Daten ausgelöst haben
  • date between - Geräte, die das Ereignis innerhalb eines angegebenen Zeitraums ausgelöst haben
  • date daysago eq - Ereignisauslösedatum ist gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • date daysago noteq - Ereignisauslösedatum ist nicht gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • date daysago lte - Ereignisauslösedatum ist kleiner als oder gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • date daysago gte - Ereignisauslösedatum ist größer als oder gleich einer angegebenen Anzahl von Tagen vor dem heutigen Tag
  • date daysago between - Ereignisauslösedatum liegt zwischen den angegebenen Anzahlen von Tagen
  • date minutesago lte - Ereignisauslösedatum ist kleiner als oder gleich einer angegebenen Anzahl von Minuten vor dem aktuellen Moment
  • date minutesago gte - Ereignisauslösedatum ist größer als oder gleich einer angegebenen Anzahl von Minuten vor dem aktuellen Moment

Event-Plattformen

Anchor link to

Filtern Sie Ereignisse nach der Plattform, auf der sie ausgelöst wurden.

  • platforms - Liste der Plattformen (z. B. [“ios”, “android”])

Event-Attribute

Anchor link to

Event-Bedingungen können basierend auf den Werten von Event-Attributen filtern. Attribute unterstützen verschiedene Datentypen mit ihren entsprechenden Operatoren.

Integer-Event-Attribute

Anchor link to
  • attribute “name” eq - Attribut ist gleich einem angegebenen Wert
  • attribute “name” noteq - Attribut ist nicht gleich einem angegebenen Wert
  • attribute “name” gte - Attribut ist größer als oder gleich einem angegebenen Wert
  • attribute “name” lte - Attribut ist kleiner als oder gleich einem angegebenen Wert
  • attribute “name” between - Attribut liegt in einem angegebenen Bereich
  • attribute “name” in - Attribut ist gleich einem der angegebenen Werte
  • attribute “name” notin - Attribut ist nicht gleich einem der angegebenen Werte
  • attribute “name” any - beliebiger Wert für das Attribut gesetzt
  • attribute “name” notset - kein Wert für das Attribut gesetzt

String-Event-Attribute

Anchor link to
  • attribute “name” eq - Attribut ist gleich einem angegebenen Wert
  • attribute “name” noteq - Attribut ist nicht gleich einem angegebenen Wert
  • attribute “name” startswith - Attribut beginnt mit einem angegebenen Präfix
  • attribute “name” endswith - Attribut endet mit einem angegebenen Suffix
  • attribute “name” contains - Attribut enthält eine angegebene Teilzeichenfolge
  • attribute “name” in - Attribut ist gleich einem der angegebenen Werte
  • attribute “name” notin - Attribut ist nicht gleich einem der angegebenen Werte
  • attribute “name” any - beliebiger Wert für das Attribut gesetzt
  • attribute “name” notset - kein Wert für das Attribut gesetzt

Boolean-Event-Attribute

Anchor link to
  • attribute “name” eq - Attribut ist gleich true oder false
  • attribute “name” noteq - Attribut ist nicht gleich true oder false

Date-Event-Attribute

Anchor link to
  • attribute “name” eq - Attribut ist gleich einem angegebenen Datum
  • attribute “name” noteq - Attribut ist nicht gleich einem angegebenen Datum
  • attribute “name” gte - Attribut ist nach oder an einem angegebenen Datum
  • attribute “name” lte - Attribut ist vor oder an einem angegebenen Datum
  • attribute “name” between - Attribut liegt innerhalb eines angegebenen Datumsbereichs
  • attribute “name” in - Attribut ist gleich einem der angegebenen Daten
  • attribute “name” notin - Attribut ist nicht gleich einem der angegebenen Daten
  • attribute “name” daysago eq/noteq/gte/lte/between - Attribut relativ zu Tagen zuvor
  • attribute “name” minutesago gte/lte - Attribut relativ zu Minuten zuvor
  • attribute “name” any - beliebiger Wert für das Attribut gesetzt
  • attribute “name” notset - kein Wert für das Attribut gesetzt

Price-Event-Attribute

Anchor link to
  • attribute “name” eq - Attribut ist gleich einem angegebenen Preiswert
  • attribute “name” noteq - Attribut ist nicht gleich einem angegebenen Preiswert
  • attribute “name” gte - Attribut ist größer als oder gleich einem angegebenen Preis
  • attribute “name” lte - Attribut ist kleiner als oder gleich einem angegebenen Preis
  • attribute “name” between - Attribut liegt in einem angegebenen Preisbereich
  • attribute “name” in - Attribut ist gleich einem der angegebenen Preise
  • attribute “name” notin - Attribut ist nicht gleich einem der angegebenen Preise
  • attribute “name” any - beliebiger Wert für das Attribut gesetzt
  • attribute “name” notset - kein Wert für das Attribut gesetzt

List-Event-Attribute

Anchor link to
  • attribute “name” in - Attribut enthält einen der angegebenen Werte
  • attribute “name” notin - Attribut enthält keinen der angegebenen Werte
  • attribute “name” any - beliebiger Wert für das Attribut gesetzt
  • attribute “name” notset - kein Wert für das Attribut gesetzt

Zusätzliche Bedingungstypen

Anchor link to

Geo-Bedingung

Anchor link to

Zielt auf Geräte basierend auf dem geografischen Standort innerhalb eines angegebenen Radius ab.

Syntax: Geo("<app-code>", <latitude>, <longitude>, <range-in-km>)

BTTS-Bedingung

Anchor link to

Zielt auf Geräte nach ihrer besten Sendezeit für Benachrichtigungen ab (Stunde des Tages, 0-23).

Operatoren:

  • any - beliebiger Wert für die beste Sendezeit gesetzt
  • eq - exakte Stundenübereinstimmung
  • noteq - nicht gleich der Stunde
  • gte - Stunde größer als oder gleich
  • lte - Stunde kleiner als oder gleich

Updated-Bedingung

Anchor link to

Filtern Sie Geräte nach ihrem letzten Aktualisierungszeitstempel.

Operatoren:

  • gte - aktualisiert nach oder am angegebenen Datum
  • lte - aktualisiert vor oder am angegebenen Datum
  • between - aktualisiert innerhalb des Datumsbereichs

Segment-Bedingung

Anchor link to

Verweisen Sie auf einen anderen Filter/Segment anhand seines Codes.

Static-Bedingung

Anchor link to

Verweisen Sie auf ein vordefiniertes statisches Segment. Kann Static oder die Kurzform S verwenden.

Anwendungsbedingung Gerätepräsenz-Flags

Anchor link to

Anwendungsbedingungen unterstützen zusätzliche Flags zur Steuerung der Geräte- und Token-Filterung:

  • with_tokens - Geräte mit Push-Benachrichtigungs-Tokens
  • without_tokens - Geräte ohne Push-Benachrichtigungs-Tokens
  • with_devices - Benutzer mit registrierten Geräten
  • without_devices - Benutzer/Profile ohne registrierte Geräte

Beispiele für Filterausdrücke

Anchor link to

Grundlegende Beispiele

Anchor link to
  1. iOS- und Android-Geräte, auf denen die App installiert ist und die Push-Token haben:
A("11111-11111", ["ios","android"], [with_tokens])
  1. iOS- und Android-Geräte, auf denen die App installiert ist, aber ohne Push-Token:
A("11111-11111", ["ios","android"], [without_tokens])
  1. iOS- und Android-Geräte, auf denen die App installiert ist, unabhängig davon, ob sie Push-Token haben oder nicht:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
  1. Alle App-Abonnenten, die etwas in der App gekauft haben:
AT("11111-11111", "In-App Purchase", gte, 1)

Fortgeschrittene Beispiele

Anchor link to
  1. Benutzer in Tokio, die die App in den letzten 7 Tagen geöffnet haben:
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)
  1. Benutzer, die in den letzten 30 Tagen einen Kauf über 50 $ getätigt haben:
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)
  1. Benutzer, deren Namen mit “J” beginnen oder mit “e” enden:
T("Name", startswith, "J") + T("Name", endswith, "e")
  1. Aktive iOS-Benutzer innerhalb von 100 km von New York, die in letzter Zeit nichts gekauft haben:
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)
  1. Benutzer mit der besten Sendezeit zwischen 9 und 17 Uhr:
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)
  1. Benutzer, die in der letzten Stunde ein bestimmtes Ereignis auf Android oder iOS ausgelöst haben:
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)
  1. Geräte, die in den letzten 3 Monaten aktualisiert wurden, mit App-Version 4.2 oder höher:
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")