Utiliser les segments de listes

Les segments de liste de diffusion permettent de cibler une partie d’une liste — par exemple les abonnés parlant une langue donnée — et donc de segmenter votre liste principale pour faire des envois ciblés tout en ne gardant qu’une seule liste.

L’intérêt de la segmentation par rapport au fait d’utiliser des listes distinctes est de n’avoir qu’une seule liste de diffusion à gérer. C’est plus simple en maintenance au quotidien, et c’est plus simple aussi pour vos utilisateurs qui peuvent s’abonner ou se désabonner d’un seul coup, sans avoir à comprendre que les envois passent par une liste ou par une autre et qu’un désabonnement n’est alors que partiel dans ce cas.

Pré-requis pour utilisation les segments

Pour pouvoir utiliser les segments des listes de diffusion il faut avoir installé et activé le plugin Saisies.

Sur la page d’une liste de diffusion apparaît alors la fonction “Ajouter un Segment”

Informations segmentables

La segmentation se fait sur la base des informations liées à chaque inscrit.

Par défaut les informations disponibles sont :

  • la langue de l’inscrit, utile pour les sites multilingues
  • les mots clés associés aux inscrits
  • les champs extras gérés sur la table mailsubscribers par le plugin cextras

Par exemple si je définis un groupe de mots clés que je peux associer aux inscrits :

Je vais pouvoir associer un ou plusieurs mots de ce groupe aux inscrits

et les mots clés correspondant apparaîtront explicitement dans les informations segmentables, au même titre que la langue.

Ajouter un segment

Un segment de liste se compose d’un titre qui permet de l’identifier dans l’interface, et d’un ou plusieurs filtres sur les informations liées des inscrits.

Un ET s’applique entre chaque filtre. Ainsi si vous définissez un segment avec les critère “Langue : Anglais” et ici “Subscribers: Lot1”, alors seuls les inscrits ayant la bonne langue ET le mot clé “Lot 1” seront intégrés dans le segment.

La mise à jour automatique du segment indique que vous voulez que celui-ci évolue automatiquement pour prendre en compte les nouveaux inscrits ou les changements d’information. Il est conseillé d’utiliser cette option par défaut pour garder un segment à jour.

Mais il peut-être parfois utile de bloquer cette mise à jour automatique pour figer une liste d’inscrits correspondants. Dans ce cas vous pouvez tout de même déclencher une mise à jour manuelle, via le bouton “Mettre à jour”.

Dans tous les cas les personnes qui se désinscrivent d’une liste de diffusion seront automatiquement retirées de tous les segments de cette liste, sans attendre une mise à jour manuelle ou automatique des segments.

Informations segmentables personnalisées

Dans le cas de grosses listes d’inscrits, ou de listes qui sont liées à une base de données utilisateur applicatif, il peut être nécessaire d’ajouter des informations segmentables supplémentaires, en lien avec cette base de données.

Pour cela on peut enrichir les informations segmentables via un pipeline, qu’il faut donc déclarer dans un plugin pour s’y brancher.

Prenons un cas concret en exemple :

function monplugin_mailsubscriber_informations_liees($flux) {
 
	if (isset($flux['args']['declarer'])) {
 
		$flux['data']['abonne'] = array(
			'titre' => $t = 'Abonné',
			'saisie' => 'selection',
			'options' => array(
				'nom' => 'abonne',
				'label' => $t,
				'datas' => array('non' => 'Non abonné', 'oui' => 'Abonnement valide en cours'),
			)
		);
		$flux['data']['deja_abonne'] = array(
			'titre' => $t = 'Déjà abonné',
			'saisie' => 'selection',
			'options' => array(
				'nom' => 'deja_abonne',
				'label' => $t,
				'datas' => array('non' => 'Jamais abonné', 'oui' => 'Abonné ou ancien abonné'),
			)
		);
 
	}
 
 
	if (isset($flux['args']['email'])
		and $id_mailsubscriber = $flux['args']['id_mailsubscriber']
		and $email = $flux['args']['email']
	) {
 
 
		$flux['data']['abonne'] = 'non';
		$flux['data']['deja_abonne'] = 'non';
 
		if (
			// TODO : rechercher dans les tables pour voir si l'email $email a un abonnement valide
		) {
			$flux['data']['abonne'] = 'oui';
			$flux['data']['deja_abonne'] = 'oui';
		}
		elseif (
			// TODO : rechercher dans les tables pour voir si l'email $email a eu un abonnement valide
		) {
			$flux['data']['deja_abonne'] = 'oui';
		}
 
	}
 
	return $flux;
}

Le code du pipeline est composé de 2 parties :
* une partie pour gérer la déclaration
* une partie pour gérer le calcul des informations pour un email donné

Déclaration

C’est la partie dans

if (isset($flux['args']['declarer'])) {
...
}

La déclaration se fait comme une saisie : on déclare en fait le format de la saisie du filtre lorsqu’on modifie/ajoute un segment.

Ça va donc être la plupart du temps une sélection (qui permettra de choisir une valeur à filtrer), ou éventuellement des cases à cocher si on veut permettre de mettre plusieurs valeurs possibles pour un segment (dans ce cas c’est un OU qui s’applique : la condition du filtre sera vraie si l’information pour le mailsubscriber a une valeur parmi celles cochées).

On retrouve alors ces champs de sélection sur le formulaire de création d’un segment :

Renseigner les informations pour un inscrit

C’est la partie dans

if (isset($flux['args']['email'])
		and $id_mailsubscriber = $flux['args']['id_mailsubscriber']
		and $email = $flux['args']['email']
	) {
...
}

Là c’est une partie spécifique à votre site, où vous allez chercher les bonnes informations dans vos tables pour renseigner les informations de l’inscrit dont l’email est passé en argument du pipeline.

Une fois ceci fait, il suffit de déclarer son segment sur la base des nouveaux champs, et d’en lancer la mise à jour :

Ici par exemple on combine les deux informations pour retrouver les anciens abonnés.

updated on 4 December 2018

Discussion

2 discussions

  • naema

    Bravo pour la trilogie de plugins [1] Newsletter que je découvre. Tout est hyper bien pensé. Merci beaucoup. (A titre perso je l’utiliserai pour définir des listes d’auteurs et de publications auxquels envoyer un courrier de demande de republication de leurs articles et d’autorisation de diffusion de traduction)

    Reply to this message

  • Bonjour,

    Je ne parviens pas à faire un usage utile des segments de liste.

    Sur mon site web, j’ai environ 3000 inscrits à ma newsletter, inscrits via un formulaire Formidable. J’ai créé 2 segments (lot 1 et lot 2).

    A présent, je voudrais placer 150 inscrits dans lot 1, et 200 autres dans lot 2. Mais comment faire ? Faut-il que je modifie chaque inscrit un par un ? Ou bien y a-t-il une solution que je n’ai pas pigé ?

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom