Passer au contenu

Langage de segmentation

Pushwoosh offre un puissant moteur de segmentation pour construire des segments granulaires basés sur les valeurs des Tags. Le Langage de segmentation est une manière spécifique d’écrire et de combiner des critères de segmentation pour décrire un groupe particulier d’utilisateurs qui correspondent à ces critères et les traiter comme un seul segment d’audience.

Cet article décrit les concepts de base et la syntaxe du Langage de segmentation et fournit des exemples complets de construction de critères de segmentation pour divers cas.

Principes de base

Anchor link to

Chaque appareil de votre base d’utilisateurs a des attributs spécifiques qui lui sont associés via les valeurs de Tag.

Par exemple, disons qu’une utilisatrice nommée Jane vit à Tokyo et a 28 ans. Cette utilisatrice aura les Tags suivants définis pour son appareil :

  • Name : Jane
  • City : Tokyo
  • Age : 28

Pour cibler Jane, vous devrez décrire un segment comme suit :

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

Cette combinaison de conditions est une expression de filtre utilisée dans le Langage de segmentation pour décrire des groupes d’utilisateurs, c’est-à-dire des segments d’audience.

Expressions de filtre

Anchor link to

Une expression de filtre est une chaîne de caractères qui contient une condition ou une combinaison de conditions décrivant le segment dont vous avez besoin.

Conditions

Anchor link to

Chaque condition décrit un segment d’appareils qui correspondent aux critères spécifiés dans cette condition.

Par exemple, la condition suivante construit un segment d’utilisateurs qui vivent à Tokyo :

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

  • T est un Tag (type de condition) ;
  • eq est un opérateur à appliquer ;
  • “Tokyo” est une valeur de Tag que les utilisateurs ont associée à leurs appareils.

Types de condition

Anchor link to

Les types de condition suivants sont disponibles pour la segmentation :

  • A (Application) – décrit un segment d’appareils avec une application particulière installée. Alias : App, Application ;
  • T (Tag) – décrit un segment d’appareils avec les valeurs de Tag spécifiées ;
  • AT (Tag spécifique à l’application) – appliqué en combinaison avec les codes d’application pour les tags qui sont spécifiques à une application. Alias : Tag ;
  • Event – décrit un segment d’appareils ayant déclenché un événement Pushwoosh spécifique ;
  • Geo – décrit un segment d’appareils dans un rayon géographique spécifique ;
  • BTTS – décrit un segment d’appareils en fonction de leur meilleur moment pour l’envoi ;
  • Updated – décrit un segment d’appareils en fonction de leur dernière date de mise à jour ;
  • Segment – fait référence à un autre filtre/segment par son code ;
  • Static (ou S) – fait référence à un segment statique prédéfini ;

Opérations avec les conditions

Anchor link to

Pour construire des segments sophistiqués, les opérations suivantes peuvent être appliquées aux conditions dans l’expression de filtre :

Joint les segments, c’est-à-dire construit un nouveau segment d’utilisateurs qui correspondent à au moins une des conditions spécifiées.

Par exemple, pour cibler les utilisateurs qui vivent à Tokyo ou à Osaka, vous devrez décrire le segment avec les conditions suivantes :

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

Intersection (*)

Anchor link to

Construit un segment d’utilisateurs appartenant aux deux segments décrits par les conditions. Ainsi, seuls les utilisateurs qui respectent chaque condition que vous spécifiez seront inclus.

L’expression suivante décrit un segment d’utilisateurs qui vivent à Tokyo et ont spécifié leur nom :

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

Différence (\)

Anchor link to

Construit un segment d’utilisateurs qui appartiennent à l’un des segments décrits et n’appartiennent pas à l’autre.

Les utilisateurs qui vivent à Tokyo mais ne vous ont pas donné leur nom seront décrits comme suit :

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

Parenthèses

Anchor link to

Déterminent l’ordre des opérations à effectuer avec les conditions dans votre expression de filtre.

Par exemple, l’expression de filtre suivante obtiendra d’abord un segment des abonnés 12345-67890 dont l’âge est de 18 ans, puis soustraira tous les hommes de ce segment :

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

Opérateurs de condition de Tag

Anchor link to

Pour chaque type de Tag, des opérateurs spécifiques sont appliqués.

Opérateurs de Tags de type entier (Integer)

Anchor link to
  • eq - égal à une valeur spécifiée
  • noteq - non égal à une valeur spécifiée
  • lte - inférieur ou égal à une valeur spécifiée
  • gte - supérieur ou égal à une valeur spécifiée
  • in - l’une des valeurs spécifiées
  • notin - non égal à l’une des valeurs spécifiées
  • between - dans une plage spécifiée
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag

Opérateurs de Tags de type chaîne de caractères (String)

Anchor link to
  • eq - égal à une valeur spécifiée
  • noteq - non égal à une valeur spécifiée
  • startswith - commence par un préfixe spécifié
  • endswith - se termine par un suffixe spécifié
  • contains - contient une sous-chaîne spécifiée
  • in - égal à l’une des valeurs spécifiées
  • notin - non égal à l’une des valeurs spécifiées
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag

Opérateurs de Tags de type liste (List)

Anchor link to
  • in - appareils avec l’une des valeurs de tag spécifiées
  • notin - aucune des valeurs de tag spécifiées n’est associée à l’appareil
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag

Opérateurs de Tags de type date (Date)

Anchor link to
  • eq - égal à la date spécifiée
  • noteq - non égal à la date spécifiée
  • lte - avant ou à la date spécifiée
  • gte - après ou à la date spécifiée
  • in - égal à l’une des dates spécifiées
  • notin - non égal à l’une des dates spécifiées
  • between - dans une plage spécifiée
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag
  • match - correspond à un mois de l’année et un jour du mois spécifiés.
  • daysago eq - égal à un nombre de jours spécifié avant le jour présent
  • daysago noteq - non égal à un nombre de jours spécifié avant le jour présent
  • daysago lte - inférieur ou égal à un nombre de jours spécifié avant le jour présent
  • daysago gte - supérieur ou égal à un nombre de jours spécifié avant le jour présent
  • daysago between - entre les nombres de jours spécifiés
  • minutesago lte - inférieur ou égal à un nombre de minutes spécifié avant le moment présent
  • minutesago gte - supérieur ou égal à un nombre de minutes spécifié avant le moment présent

Opérateurs de Tags de type booléen (Boolean)

Anchor link to
  • eq - égal à une valeur spécifiée
  • noteq - non égal à une valeur spécifiée
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag

Opérateurs de Tags de type prix (Price)

Anchor link to
  • eq - égal à une valeur spécifiée
  • noteq - non égal à une valeur spécifiée
  • lte - inférieur ou égal à une valeur spécifiée
  • gte - supérieur ou égal à une valeur spécifiée
  • in - égal à l’une des valeurs spécifiées
  • notin - non égal à l’une des valeurs spécifiées
  • between - dans une plage spécifiée
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag

Opérateurs de Tags de type version (Version)

Anchor link to
  • eq - égal à une valeur spécifiée
  • noteq - non égal à une valeur spécifiée
  • lte - inférieur ou égal à une valeur spécifiée
  • gte - supérieur ou égal à une valeur spécifiée
  • in - égal à l’une des valeurs spécifiées
  • notin - non égal à l’une des valeurs spécifiées
  • between - dans une plage spécifiée
  • any - appareils avec n’importe quelle valeur définie pour le tag
  • notset - appareils sans valeur définie pour le tag

Opérateurs de conditions d’événement

Anchor link to

Nombre d’événements

Anchor link to
  • count gte - appareils ayant déclenché l’événement plus ou exactement n fois
  • count lte - appareils ayant déclenché l’événement moins ou exactement n fois
  • count eq - appareils ayant déclenché l’événement exactement n fois
  • count noteq - appareils ayant déclenché l’événement un nombre de fois quelconque mais non égal à n

Date de l’événement

Anchor link to
  • date gte - appareils ayant déclenché l’événement plus tard ou exactement à la date spécifiée
  • date lte - appareils ayant déclenché l’événement plus tôt ou exactement à la date spécifiée
  • date eq - appareils ayant déclenché l’événement exactement à la date spécifiée
  • date noteq - appareils ayant déclenché l’événement n’importe quand mais pas à la date spécifiée
  • date in - appareils ayant déclenché l’événement à l’une des dates spécifiées
  • date notin - appareils ayant déclenché l’événement n’importe quand mais pas à l’une des dates spécifiées
  • date between - appareils ayant déclenché l’événement pendant une période spécifiée
  • date daysago eq - la date de déclenchement de l’événement est égale à un nombre de jours spécifié avant le jour présent
  • date daysago noteq - la date de déclenchement de l’événement n’est pas égale à un nombre de jours spécifié avant le jour présent
  • date daysago lte - la date de déclenchement de l’événement est inférieure ou égale à un nombre de jours spécifié avant le jour présent
  • date daysago gte - la date de déclenchement de l’événement est supérieure ou égale à un nombre de jours spécifié avant le jour présent
  • date daysago between - la date de déclenchement de l’événement se situe entre les nombres de jours spécifiés
  • date minutesago lte - la date de déclenchement de l’événement est inférieure ou égale à un nombre de minutes spécifié avant le moment présent
  • date minutesago gte - la date de déclenchement de l’événement est supérieure ou égale à un nombre de minutes spécifié avant le moment présent

Plateformes de l’événement

Anchor link to

Filtrez les événements par la plateforme où ils ont été déclenchés.

  • platforms - liste de plateformes (par ex., [“ios”, “android”])

Attributs de l’événement

Anchor link to

Les conditions d’événement peuvent filtrer en fonction des valeurs des attributs de l’événement. Les attributs prennent en charge divers types de données avec leurs opérateurs correspondants.

Attributs d’événement de type entier (Integer)

Anchor link to
  • attribute “name” eq - l’attribut est égal à une valeur spécifiée
  • attribute “name” noteq - l’attribut n’est pas égal à une valeur spécifiée
  • attribute “name” gte - l’attribut est supérieur ou égal à une valeur spécifiée
  • attribute “name” lte - l’attribut est inférieur ou égal à une valeur spécifiée
  • attribute “name” between - l’attribut se trouve dans une plage spécifiée
  • attribute “name” in - l’attribut est égal à l’une des valeurs spécifiées
  • attribute “name” notin - l’attribut n’est pas égal à l’une des valeurs spécifiées
  • attribute “name” any - n’importe quelle valeur définie pour l’attribut
  • attribute “name” notset - aucune valeur définie pour l’attribut

Attributs d’événement de type chaîne de caractères (String)

Anchor link to
  • attribute “name” eq - l’attribut est égal à une valeur spécifiée
  • attribute “name” noteq - l’attribut n’est pas égal à une valeur spécifiée
  • attribute “name” startswith - l’attribut commence par un préfixe spécifié
  • attribute “name” endswith - l’attribut se termine par un suffixe spécifié
  • attribute “name” contains - l’attribut contient une sous-chaîne spécifiée
  • attribute “name” in - l’attribut est égal à l’une des valeurs spécifiées
  • attribute “name” notin - l’attribut n’est pas égal à l’une des valeurs spécifiées
  • attribute “name” any - n’importe quelle valeur définie pour l’attribut
  • attribute “name” notset - aucune valeur définie pour l’attribut

Attributs d’événement de type booléen (Boolean)

Anchor link to
  • attribute “name” eq - l’attribut est égal à vrai ou faux
  • attribute “name” noteq - l’attribut n’est pas égal à vrai ou faux

Attributs d’événement de type date (Date)

Anchor link to
  • attribute “name” eq - l’attribut est égal à une date spécifiée
  • attribute “name” noteq - l’attribut n’est pas égal à une date spécifiée
  • attribute “name” gte - l’attribut est après ou à une date spécifiée
  • attribute “name” lte - l’attribut est avant ou à une date spécifiée
  • attribute “name” between - l’attribut se trouve dans une plage de dates spécifiée
  • attribute “name” in - l’attribut est égal à l’une des dates spécifiées
  • attribute “name” notin - l’attribut n’est pas égal à l’une des dates spécifiées
  • attribute “name” daysago eq/noteq/gte/lte/between - l’attribut est relatif au nombre de jours passés
  • attribute “name” minutesago gte/lte - l’attribut est relatif au nombre de minutes passées
  • attribute “name” any - n’importe quelle valeur définie pour l’attribut
  • attribute “name” notset - aucune valeur définie pour l’attribut

Attributs d’événement de type prix (Price)

Anchor link to
  • attribute “name” eq - l’attribut est égal à une valeur de prix spécifiée
  • attribute “name” noteq - l’attribut n’est pas égal à une valeur de prix spécifiée
  • attribute “name” gte - l’attribut est supérieur ou égal à un prix spécifié
  • attribute “name” lte - l’attribut est inférieur ou égal à un prix spécifié
  • attribute “name” between - l’attribut se trouve dans une plage de prix spécifiée
  • attribute “name” in - l’attribut est égal à l’un des prix spécifiés
  • attribute “name” notin - l’attribut n’est pas égal à l’un des prix spécifiés
  • attribute “name” any - n’importe quelle valeur définie pour l’attribut
  • attribute “name” notset - aucune valeur définie pour l’attribut

Attributs d’événement de type liste (List)

Anchor link to
  • attribute “name” in - l’attribut contient l’une des valeurs spécifiées
  • attribute “name” notin - l’attribut ne contient aucune des valeurs spécifiées
  • attribute “name” any - n’importe quelle valeur définie pour l’attribut
  • attribute “name” notset - aucune valeur définie pour l’attribut

Types de conditions supplémentaires

Anchor link to

Condition Geo

Anchor link to

Ciblez les appareils en fonction de leur emplacement géographique dans un rayon spécifié.

Syntaxe : Geo("<code-application>", <latitude>, <longitude>, <portée-en-km>)

Condition BTTS

Anchor link to

Ciblez les appareils en fonction de leur meilleur moment pour l’envoi de notifications (heure du jour, de 0 à 23).

Opérateurs :

  • any - n’importe quelle valeur de meilleur moment pour l’envoi définie
  • eq - correspondance exacte de l’heure
  • noteq - non égal à l’heure
  • gte - heure supérieure ou égale à
  • lte - heure inférieure ou égale à

Condition Updated

Anchor link to

Filtrez les appareils par leur dernière date de mise à jour.

Opérateurs :

  • gte - mis à jour après ou à la date spécifiée
  • lte - mis à jour avant ou à la date spécifiée
  • between - mis à jour dans une plage de dates

Condition Segment

Anchor link to

Faites référence à un autre filtre/segment par son code.

Condition Static

Anchor link to

Faites référence à un segment statique prédéfini. Peut utiliser Static ou le raccourci S.

Indicateurs de présence d’appareil pour la condition Application

Anchor link to

Les conditions d’application prennent en charge des indicateurs supplémentaires pour contrôler le filtrage des appareils et des jetons :

  • with_tokens - appareils avec des jetons de notification push
  • without_tokens - appareils sans jetons de notification push
  • with_devices - utilisateurs avec des appareils enregistrés
  • without_devices - utilisateurs/profils sans appareils enregistrés

Exemples d’expressions de filtre

Anchor link to

Exemples de base

Anchor link to
  1. Appareils iOS et Android avec l’application installée et avec des jetons push :
A("11111-11111", ["ios","android"], [with_tokens])
  1. Appareils iOS et Android avec l’application installée mais sans jetons push :
A("11111-11111", ["ios","android"], [without_tokens])
  1. Appareils iOS et Android avec l’application installée, qu’ils aient ou non des jetons push :
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
  1. Tous les abonnés de l’application qui ont acheté quelque chose dans l’application :
AT("11111-11111", "In-App Purchase", gte, 1)

Exemples avancés

Anchor link to
  1. Utilisateurs à Tokyo qui ont ouvert l’application au cours des 7 derniers jours :
T("City", eq, "Tokyo") * Event("11111-11111", "App Open", date daysago lte 7)
  1. Utilisateurs qui ont effectué un achat de plus de 50 $ au cours des 30 derniers jours :
Event("11111-11111", "Purchase", attribute "total_price" gte 50.00, date daysago lte 30)
  1. Utilisateurs dont le nom commence par “J” ou se termine par “e” :
T("Name", startswith, "J") + T("Name", endswith, "e")
  1. Utilisateurs iOS actifs dans un rayon de 100 km de New York qui n’ont pas acheté récemment :
A("11111-11111", ["ios"], [with_tokens]) * Geo("11111-11111", 40.7128, -74.0060, 100) \ Event("11111-11111", "Purchase", date daysago lte 30)
  1. Utilisateurs dont le meilleur moment pour l’envoi se situe entre 9h et 17h :
BTTS("11111-11111", gte 9) * BTTS("11111-11111", lte 17)
  1. Utilisateurs qui ont déclenché un événement spécifique sur Android ou iOS au cours de la dernière heure :
Event("11111-11111", "Button Click", platforms ["android", "ios"], date minutesago lte 60)
  1. Appareils mis à jour au cours des 3 derniers mois avec la version 4.2 ou supérieure de l’application :
Updated("11111-11111", gte "2024-07-01 00:00:00") * AT("11111-11111", "App Version", gte, "4.2")