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.

Discussion

Aucune discussion

Ajouter un commentaire

Qui êtes-vous ?
  • [Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 4 décembre 2018