Aller au contenu principal

Rendre dynamique le contenu de ma newsletter

Info

Un contenu dynamique dans une newsletter est un contenu qui change en fonction de l'abonné. C'est à dire qu'une même campagne aura un rendu complétement (ou partillement) différent par rapport à un autre.

Voici quelques exemples de contenu dynamique :

  • Affichage d'un champ de personnalisation (ex : nom, prenom, etc.)
  • Affichage d'un bloc HTML personnalisé (ex : horoscope, encart pub perso, dernier produit consulté, météo de ma ville...)
  • Affichage d'un newsletter complète personnalisée (ex : mon programme tv avec mon choix de chaînes)

Pour réaliser ceci, Mindbaz met à votre disposition plusieurs techniques:

  • Les champs de personnalisation [[FIELD.XX]] ou système [[CONF.XX]]
  • Les blocs conditionnels et autres fonctions
  • Les urls d'include
  • Les blocs CONTENT
  • Les encarts publicitaires

Les tags de personnalisation [[FIELD.XX]] ou de configuration [[CONF.XX]]

Les tags de personnalisation

Vous pouvez afficher la valeur des champs de vos abonnés avec le tag [[FIELD.N]] (avec N=id du champs). ex: [[FIELD.14]] pour afficher le nom de l'abonné

Vous retrouvez la liste des champs et leur id en utilisant cet appel

Les tags de configuration

Les tags de configuration sont utilisés surtout en interne pour récupérer des ids (campagne, envoi, base...). Ils s'écrivent comme ceci : [[CONF.N]] avec N le numéro dans la liste ci-dessous :

CONF.NChamps configurés
CONF.1Identifiant de la base (défini lors du setup de base)
CONF.2Nom du site web (défini lors du setup de base)
CONF.3Url du site web (défini lors du setup de base)
CONF.5Id de la campagne
CONF.6Id du segment
CONF.7Id de l'envoi
CONF.8Date de la génération
CONF.100Id de la configuration d'envoi
CONF.101Nom de la configuration d'envoi
CONF.104Email de l'expediteur
CONF.105Alias de l'expediteur
CONF.106Alias de l'adresse du destinataire
CONF.107Email de réponse
CONF.108Alias de l'adresse de réponse
CONF.111Entête HTML
CONF.112Entête TXT
CONF.113Pied de page HTML
CONF.114Pied de page TXT
CONF.115Désabonnement HTML
CONF.116Désabonnement TXT

Nous les utilisons par ex dans nos liens de désabonnement :

https://unsub.mindbaz.com/?e=[[FIELD.1]]&s=[[CONF.7]]&b=[[CONF.1]]

Vous pouvez les utiliser pour votre propre usage si vous voulez passer des paramètres aux pages de votre site web (landing page, formulaires de désabonnement, etc.). Le cas le plus fréquent est l'utilisation du tag [[CONF.7]] (id de l'envoi) qui sera nécessaire pour comptabiliser le désabonnement d'un envoi mindbaz (cf. webmethode Unsubscribe).

Un autre exemple est la génération automatique du paramètre EPI (Enhanced publisher integration) pour les liens de tracking tradedoubler (http://hst.tradedoubler.com/file/20649/manuals/doc/pub_epi.pdf). Les valeurs passées dans ce paramètre sont enregistrées dans la plateforme de tradedoubler, ce qui vous permet d'avoir des données mindbaz directement dans tradedoubler (id de base, de campagne, d'abonné...). Très utile si vous faites des exports dans un datamart. ex d'EPI :

epi = [[CONF.1]]-[[FIELD.0]]-[[CONF.5]]-[[CONF.7]]

Où les utiliser

Vous pouvez utiliser ces tags dans le code HTML du message, la version TEXT, le sujet, les entêtes et pied de page de la configuration d'envoi. Ils sont aussi très pratiques pour rendre dynamique une url d'un lien tracké.

Les blocs conditionnels et autres fonctions

La génération du code html utilise un moteur perl de templating (PERL TEMPLATE TOOLKIT) qui vous permet d'utiliser de nombreuses fonctions et mots clés à l'intérieur de votre message HTML. Un exemple simple et aussi le plus courant est l'utilisation des blocs conditionnels [[IF ]] [[ELSE]] [[END]].

Exemple d'affichage différent en fonction de la civilité :

Bonjour [[IF FIELD.13 == 'Mr' ]] Monsieur[[ELSE]]Madame[[END]] [[FIELD.14]].

Exemple de ponctuation différente si le prénom est renseigné:

[[IF FIELD.15 ]][[FIELD.15]], mille[[ELSE]]Mille[[END]] euros de lots arrivent avec le printemp

Une documentation en ligne explique toute les mots clés utilisables : http://template-toolkit.org/docs/modules/Template.html (il faut juste remplacer les [% %] par des [[ ]] dans les exemples).

Voici les mots clés les plus utiles:

Exemple de génération d'une liste avec un foreach:

[[ users = {
tom => 'Thomas',
dick => 'Richard',
larry => 'Lawrence',
}
]]

<UL>
[[ FOREACH u IN users ]]
<LI> [[ u.key ]] : [[ u.value ]]</LI>
[[ END ]]
</UL>

affiche :

  • dick : Richard
  • larry : Lawrence
  • tom : Thomas

En plus des mots-clés de programmation, le toolkit propose de nombreuses fonctions applicables sur les champs de perso ou de conf (http://template-toolkit.org/docs/manual/Filters.html).

Voici quelques exemples:

  • Mettre en majuscule ou minuscule : upper / lower [[ FIELD.14|upper]], [[ FIELD.14|lower]]
  • Mettre le premier caractère en majuscule : ucfirst - ex ( "[[ FIELD.14|ucfirst]]")
  • Remplacer dans la chaine : replace
  • Supprimer dans la chaine : remove
  • Supprimer les espaces en début/fin de chaine : trim
  • Formatter une date : date.format ex : [[ date.format(FIELD.20,'%d/%m/%Y')]] pour afficher la date de naissance en jj/mm/aaaa

Voici tous les codes de formattage de date ( * : Affichage dépendant de la langue locale, FR par defaut)

ValeurRemplacé parExemple
%aAbbreviated weekday name *Thu
%AFull weekday name *Thursday
%bAbbreviated month name *Aug
%BFull month name *August
%dDay of the month, zero-padded (01-31)23
%hHour in 24h format (0-23)14
%HHour in 24h format (00-23)14
%IHour in 12h format (01-12)02
%jDay of the year (001-366)235
%mMonth as a decimal number (01-12)08
%MMinute (00-59)55
%pAM or PM designationPM
%SSecond (00-61)02
%wWeekday as a decimal number with Sunday as 0 (0-6)4
%YYear2001
Remarque

Il est possible d'appeler plusieurs fonctions sur le même champ. Par exemple, pour mettre le champ en minuscule et le premier caractère en majuscule : [[ FIELD.14 |lower |ucfirst]]

Nous avons aussi quelques fonctions custom, tel que :

  • Numéro de l'horoscope : zodiac_num - ex : [[ FIELD.20|zodiac_num]] (retourne 2 pour taureau)
  • Numéro de l'horoscope : zodiac - ex : [[ FIELD.20|zodiac]] (retourne taurus)
  • Récupérer l'age: age - ex : [[ FIELD.20|age]]

Les urls d'include

Dans certains cas, le code HTML à générer est tellement complexe qu'il est plus simple qu'il soit géré du coté du client. En effet, le client possède la connaissance de son métier et possède déjà toutes les données pour générer son code HTML de sa newsletter.

C'est le cas par exemple, de la generation d'une newsletter qui affiche la météo de la ville de chaque abonné. Le client possède déjà toutes les données météo mises à jour tous les jours et peut donc générer facilement le code HTML de sa newsletter.

Pour répondre à ce besoin, Mindbaz utilise le système d'include de lien externe. Au moment de l'envoi de la campagne, Mindbaz appelle l'url du client pour chaque email en lui passant les paramètres configurés (par ex, le CP de la ville dont on veut la météo). Le site du client répond alors en fournissant le code HTML en UTF8.

Les avantages de ce système est de pouvoir mettre en place rapidement une newsletter dynamique sans déporter dans mindbaz toutes les datas nécessaires à sa construction. Par contre, il faut que le site web appelé soit assez rapide pour que la génération de la newsletter se fasse assez vite (comme par exemple, envoyer la météo avant 9h).

Pour créer une url d'include, allez dans la page outils>urls et créer une nouvelle url en choisissant bien le type 'include'. Votre url apparaîtra alors dans la liste des urls d'include dans la page d'edition de votre HTML de campagne. Il ne vous reste plus qu'à la selectionner pour positionner le tag [[INC.XX]] au bon endroit (avec XX = id de l'url). Vous pouvez également saisir vous même le tag [[INC.XX]] au bon endroit dans votre code HTML en reportant bien l'id de votre url d'include dans le tag.

Remarque

Si le site web retourne une erreur 500, le message n'est bien sûr pas envoyé.

Les blocs CONTENT

Les blocs CONTENT permettent de créer des blocs HTML dynamiques dont les données affichées proviennent d'une table clef/valeur stockée dans Mindbaz.

Prenons un exemple concret d'utilisation des blocs CONTENT : afficher l'horoscope et ceci dans 2 formats HTML différents (un grand et un petit):

En entrée, nous avons la date de naissance de l'abonné et en sortie, nous avons 2 x 12 HTML d'horoscope (2 formats x 12 signes du zodiac).

Nous n'allons pas stocker dans notre table clef/valeur tous les HTML d'horoscope pour chaque valeur de date de naissance en base mais uniquement pour les 12 signes. Dans notre exemple, nous aurons donc à stocker les codes HTML pour 24 clefs différentes:

ClefValeur
grd_horoscope_1HTML
grd_horoscope_2HTML
...HTML
grd_horoscope_12HTML
petit_horoscope_1HTML
petit_horoscope_2HTML
...HTML
petit_horoscope_12HTML

Vous pouvez le faire facilement avec le webservice Content.

Ensuites, nous devons associer automatiquement la date de naissance à la bonne clef et donc au bon code HTML à afficher. Pour faire cela, l'idée est de stockée nos clefs dans un format dynamique qui utilise des tags de personnalisation.

Dans notre exemple, nous décidons d'une clef générée dynamiquement depuis la date de naissance convertie en numéro de signe zodiacal. Nous n'obtenons plus que 2 clefs dynamiques:

grd_horoscope_[[FIELD.20 |zodiac_num]]
petit_horoscope_[[FIELD.20 |zodiac_num]]
Remarque

[[FIELD.20 | zodiac_num]] applique la fonction zodiac_num au champ 20 (date de naissance) et retourne le numéro du signe entre 1 et 12.

A chaque clef, nous donnons un nom et un id unique :

idnomclef
1horoscope grand formatgrd_horoscope_[[FIELD.20 |zodiac_num]]
2horoscope petite formatpetit_horoscope_[[FIELD.20 |zodiac_num]]

Mindbaz se charge de créer ces clefs dynamiques pour vous. De votre côté, vous n'avez qu'à donner une valeur pour chaque clef possible avec le webservice.

Pour utiliser votre bloc CONTENT, il suffit d'utiliser le tag [[CONTENT.ID]] avec ID l'identifiant unique de la clef. Dans notre exemple, [[CONTENT.1]] affichera le code HTML de l'horoscope grand format et [[CONTENT.2]] celui du petit format.

Dans l'interface de création de campagne Mindbaz, vous retrouvez la liste des tags CONTENT disponibles dans une liste déroulante "Contenu" : Contenu sur mindbaz

Voici d'autres exemples de clef dynamique :

  • LASTPDT[[FIELD.100]] : affiche le code HTML du dernier produit consulté dont l'id est stocké dans le champ 100
  • NEWS_[[ date.calc.Delta_Days(date.format(FIELD.3,'Y'), date.format(FIELD.3,'m'), date.format(FIELD.3,'d'),date.format(date.now,'Y'),date.format(date.now,'m'), date.format(date.now,'d')) ]] : affiche un code html différent pour chaque jour glissant depuis la date de derniere inscription (fld.3).

Les encarts publicitaires

Les encarts publicitaires sont utilisés pour rendre dynamique l'affichage d'une publicité au sein d'une même campagne.

Un encart est défini par un tag [[ENCART.N]] avec N=numéro de l'encart (de 1 à 10). Il est positionné dans le code HTML de votre campagne. Les tags [[ENCART.N]] sont remplacés au moment de la génération par un code HTML d'une publicité.

L'idée est de pouvoir associer plusieurs publicités dans un même encart et de choisir pour quelle population elles vont s'afficher. Pour faire cela, la population d'une campagne mindbaz peut être facilement segmentée en plusieurs (15 segments max), ce qui vous permet de choisir des publicités différentes dans chaque encart et segment.

Voici un exemple dans l'interface où une campagne comportant 2 encarts est segmenté en 2 populations (homme vs femme). Nous avons pu configurer facilement pour chaque segment quelles sont les publicités à afficher dans chaque encart: Pub sur mindbaz

Remarque

Vous remarquerez que l'objet du mail est également modifiable pour chaque segment.

Avec les webservices, il faut utiliser la méthode suivante : Segments_UpdateSegmentAdvertisement

A la fin de votre campagne, les statistiques vous sont présentés par segment et permet une comparaison des performances de chaque population ciblée.

Coder vos campagnes à l’aide du PERL

Notre article du centre d’aide Mindbaz “Coder vos campagnes à l’aide de PERL” parle de ce sujet et vous permettra d’aller plus loin dans l’utilisation du toolkit. Cet article reprend les principales instructions avec des exemples pour les illustrer.