Bannières 2

Gérer des campagnes d’information composées d’images ou animations.

Ce plugin permet d’afficher et de gérer des campagnes d’information composées d’images ou animations. La balise #BANNIERE permet de positionner facilement cet objet dans vos squelettes. Plusieurs objets peuvent être placés sur la page et gérés en fonction de leur position (ex. : #BANNIERE{1}). Si vous lui faites passer des informations de localisation, vous pourrez choisir l’objet à afficher en conséquence. Un lien est placé sur les images et le clic est comptabilisé. Enfin, la campagne s’affiche pendant la période que vous définissez dans l’espace privé.

Remerciements

Ce plugin est une réécriture du plugin bannières de François de Montlivault et basé sur le plugin exemple de Matthieu Marcillaud.

Installation

Comme tous les plugins SPIP. Le mieux est de se référer à la documentation officielle.

Les dépendances : plugin bonux, plugin saisies, disponibles sur la zone. Le plugin géographie est nécessaire si on veut placer des bannières « geolocalisées ». Il n’est plus obligatoire depuis la révision 33692.

2 tables sont ajoutées dans la base : spip_bannieres et spip_bannieres_suivi. Le plugin utilise la gestion des documents de spip en y ajoutant un nouvel objets (banniere).

Mise à jour à partir du plugin bannieres_2.0 de FdM :

Ce plugin met à jour la table spip_bannières et ajoute la nouvelle spip_bannieres_suivi. Les bannières qui se trouvent dans le dossier IMG anciennement nommées ban_xx.ext sont renommées en banniereonxx.ext, permettant ainsi un fonctionnement immédiat du plugin.

Les nouvelles bannières utiliseront le système de chargement de documents de spip. Vous pourrez alors supprimer vos bannières situées directement à la racine du dossier IMG (par FTP). Les nouvelles seront stockées dans les sous dossiers en fonction de leur extension (voir système de documents de spip). L’ancien champ alt et ext ne sont plus utiles. Si le champ alt (texte alternatif) contient quelque chose, vous pourrez le supprimer. Une fois vidé, ce champ n’apparaitra plus, vous devrez alors utiliser le champ « titre » associé au document.

Support des campagnes google analytics

Depuis la version 0.29, il est possible d’activer un mode expérimental qui ajoute aux URLs destinations, les paramètres de suivi de campagnes personnalisées de google analytics

Pour activer ce mode, ajouter dans votre fichier config/mes_options.php

define('_BANNIERE_TRACKING_GOOGLE', true);

Les URLs seront du type :

http://www.site.tld/?utm_medium=banner&utm_source=dragon%20rouge&utm_campaign=hiver2012

Avec :

  • utm_medium : pour l’instant toujours banner
  • utm_source : le nom de votre site Spip
  • utm_campaign : le nom de votre campagne

Utilisation Webmaster : la balise #BANNIERE

Il suffit simplement de placer la balise #BANNIERE à l’endroit souhaité dans le squelette. Si vous voulez afficher plusieurs balises différentes dans la page, vous devrez passer l’info dans les paramètres : #BANNIERE{position}, position étant un numéro de 1 à 9 et géré dans l’espace privé.

Vous pouvez aussi passer un paramètre de localisation de la façon suivante : #BANNIERE{position, code_postal, numero_pays}. Ce fonctionnement est basé sur le plugin géographie qui contient les codes postaux, les départements et régions de France, ainsi qu’une liste de pays. numero_pays doit correspondre au numéro du pays de la table spip_geo_pays.

Une noisette avec un cache de 0 est fournie dans le plugin. Cela peut-être utile pour les campagnes de courtes durée ou pour l’affichage aléatoire. Pour l’utiliser il faut remplacer la balise par <INCLURE {fond=inc_banniere}{position=valeur}{code_postal=valeur}{numero_pays=valeur}>.

Utilisation Rédacteur : le modèle <banniere>

Depuis la version 0.26, il est possible d’intégrer la bannière dans le texte d’un article en utilisant le modèle <banniereXX> où XX est le numéro de position de 1 à 9.

Administration

Vous pouvez gérer vos campagnes (ou bannières) depuis l’espace privé. Une liste des campagnes est visible. Vous pouvez trier les colonnes pour faciliter vos recherches. Cette liste vous informe si une campagne est active ou pas et si l’image ou document est présent (c’est l’objet principal :) !).

Pour créer une nouvelle campagne, et si le plugin géographie est présent, il faut choisir son type de diffusion : internationale (pour un affichage par défaut, c’est cette option qu’il faut choisir), nationale, régionale, départementale ou locale.

La recherche se fera bien sûr en partant du local. Si plusieurs campagnes sont configurées avec la même diffusion, un choix aléatoire sera fait par le système.

Les clics sur les bannières de type image sont comptabilisées.

Gestion du Flash

Pour les campagnes Flash, en général le lien est défini dans le fichier swf,
par défaut le plugin ne comptera pas les clics de votre campagne sur ce fichier.

Si vous souhaitez utiliser le compteur de clic et les données des campagnes, il faut programmer votre fichier flash de la façon suivante
Le plugin insère votre flash en transmettant les données de la campagne via le paramètre FlashVars

<object type='application/x-shockwave-flash' data='IMG/swf/pub.swf' id='bandeau' width='400' height='200'>
              <param name='movie' value='IMG/swf/pub.swf' />
              <param name='quality' value='high' />
              <param name='menu' value='false' />          
              <param name='wmode' value='transparent' />
              <param name='FlashVars' value='url_site=http%3A%2F%2F127.0.0.1&amp;action=visit_url&amp;banniere=5&amp;url=http%3A%2F%2Fwww.wikivin.org' />
            </object>

FlashVars transmet les variables : url_site, action, banniere, url que vous pouvez ensuite exploiter dans votre flash

Par exemple en actionscript 3, voici le code d’un bouton qui utilise les variables précédentes

but_callback.addEventListener(MouseEvent.CLICK,actionButCallback); 


function actionButCallback(evt:MouseEvent){ 
 var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
 var url_site =  paramObj["url_site"];
 var action =  paramObj["action"];
 var url  = paramObj["url"];
 var banniere = paramObj["banniere"];
 debug.text = "url:" + url;
 var urlRequest=new URLRequest(url_site+"/spip.php?action="+action+"&banniere="+banniere+"&url="+url); 
 navigateToURL(urlRequest,"_self"); 
}

Voici un exemple de bannière flash (avec son code source) mettant en oeuvre les deux types de boutons : télécharger un exemple de bannière flash

Evolutions...

Quelques améliorations possibles à étudier ou à faire...

  • Utilisation de CFG pour :
    • Utiliser ou pas les bannières localisées (dépendance plugin géographie)
    • Configurer l’utilisation ou pas du suivi des clics (table ou fichier log ou rien)
  • Utiliser les modèles de spip
  • Utiliser le filtre image_reduire
  • Suivi des clics sur les objets multimedia
  • Statistiques de clics ou export des données
  • Revoir les icones et le logo

Discussion

39 discussions

  • 2
    Charles

    Bonjour à tous et merci pour ce plugin. Ma question porte sur les liens : est-il possible que le clic sur la bannière ouvre une nouvelle fenêtre (type target=« _new ») ?
    Merci d’avance et bonne journée

    • Bonjour, il faut modifier le fichier balise/banniere.php vers la ligne 188 pour y ajouter ton target (ou autre) :

      $logo_banniere = '<a href="'.generer_url_action('visit_url','banniere='.$id).'"  target="_blank">

      Faire de même vers la ligne 207 si le plugin a été mis à jour et qu’il reste des anciennes bannières actives.

    • merci bcp et bravo pour ce plugin !

    Répondre à ce message

  • 1
    naldreys

    Bonjour,

    J’ai mis en place deux compagnes pour la mème date avec deux thèmes différents que je souhaite afficher au même endroit du site, y a t’il un moyen d’enchainer ces deux comapgnes les unes dernirère les autres. j’utilise la balise #BANIERE sans parmètres.

    Merci d’avance

    • Enchainer comment ? Si 2 bannières sont définies à une même position et même date, il en choisi une de façon aléatoire. Penser à tenir compte du cache de la page. Tu peux utiliser une noisette pour affiner la durée du cache.

    Répondre à ce message

  • 5

    Bonjour,

    Est-ce que la balise #BANNIERE{XX} prend bien en compte les parenthèses et accolades ? Car chez moi, le code ci dessous affiche ce que j’ai entre les accolades et les parenthèses alors que je n’ai pas de bannières actives...

    [<div class="publicite">
    <span><:publicite:></span>
    (#BANNIERE{4})
    </div>
    ]
    • Bonjour,
      J’avais constaté des erreurs de squelette lorsqu’il n’y avait pas de bannière configurée. J’avais corrigé, mais pas commité :( . C’est chose faite.
      En espérant que ça réponde à ton problème.
      Jeannot

    • En fait, je suis peut-être allé trop vite... et j’ai répondu à coté :(.
      Le code optionnel n’est pas traité.

    • Ah... Ce qui sous-entendrait qu’on ne peut pas faire de test du genre : [(#BANNIERE{X}|oui)], c’est ça ?...

      La balise n’est pas construite selon l’API de spip ?...

    • Le code a été créé en suivant les exemples et explications sur les balises dynamiques spip. J’ai fait différents tests, mais rien de concluant, quelle que soit la valeur donnée au $return.

      En fonctionnement normal, le retour est vide lorsque rien n’a été trouvé !

      Bref je ne sais pas... Si quelqu’un a une explication, je suis preneur.

    • Pardon... je n’ai pas dit ça méchamment.

      Pour la création de balises, tu as ce lien : http://programmer.spip.org/-Balise-

    Répondre à ce message

  • 1

    Bonjour,

    En test sur un site en dev, je remarque un bug :
    -  je veux créer une bannière par défaut en position 1. La création se passe bien (ajout de l’image après enregistrement de la campagne une 1re fois).
    -  Je laisse les dates à 0000-00-00 pour ne pas avoir de début ni de fin.

    Hélas, 3 fois hélas, dans la partie publique, impossible d’afficher la pub sans les dates. Il faut absolument rentrer une date de début et de fin... les « 0 » ne sont pas pris en compte.

    Autre point :
    -  je peux ajouter autant de documents que je veux à la campagne... Est-ce normal ? NE serait-il pas mieux de ne pouvoir en mettre qu’un seul ? à la manière d’un logo...

    • Bonjour,

      Je réitère ce que j’ai dit... Les bannières par défaut (avec une date à 0000-00-00) ne sont pas affichées sur la partie publique... Ce qui les rend inopérable.
      Dommage.

      Quelle est la solution pour combler ce manque mise à part de rentrer une date « réelle » ?

    Répondre à ce message

  • 2

    bonjour,

    chez moi le plugin bannieres 2 est incompatible avec le plugin mediathèque : impossibilité d’ajouter une image à la bannière (le formulaire d’upload ne s’affiche pas) est-ce le cas chez vous aussi ?

    Cédric C.

    • Bonjour,

      Je sais pas si ça peut aider, ni si ça a un rapport, mais j’ai constaté qu’il fallait enregistrer d’abord la campagne une première fois pour que l’image puisse être associée. Il faudrait que je déplace le formulaire upload...

      Pas bien le temps en ce moment.

      Jeannot

    • Merci pour votre réponse. Si la bannière n’est pas enregistrée, elle n’a pas encore d’existence (id), les documents ne peuvent donc pas lui être rattachés. Il doit y avoir un mécanisme disponible pour donner une id temporaire. Je crois que c’est ce qui se passe avec les articles.

      Mon problème n’a rien à voir : le formulaire d’upload n’apparait plus car le plugin mediathèque doit le surcharger. Du coup l’appel de formulaire doit être différent. Si vous avez une idée...???

    Répondre à ce message

  • 9

    Bonjour,

    Excellent plugin. Merci :)
    Je rencontre cependant un problème. Je souhaite mettre deux bannières différentes sur une même page. Je passe donc par le critère position. Vous dites que celui-ci est géré dans l’espace privé.
    Le seul critère que je vois dans l’espace privé des bannières est le numéro de campagne situé juste avant la puce. Je rentre donc par exemple #BANNIERE5 à l’endroit voulu mais ce n’est pas celle-ci qui s’affiche forcément. Les autres également. Et je ne parviens pas à sortir de cet affichage aléatoire.
    Comment puis-je faire pour indiquer qu’à l’endroit voulu, je souhaite uniquement la bannière de la campagne 5 ?

    Merci d’avance.

    • Bonjour,
      2 choses :

      1. Dans l’espace privé, il faut choisir la campagne puis modifier. Il y a un sélecteur de position (le numéro de bannière est l’identifiant, pas son numéro de position).
      2. Dans le squelette #BANNIERE{1}pour la première position et #BANNIERE{2} pour la deuxième position

      Normalement ça devrait le faire.

      L’affichage aléatoire intervient si vous avez plusieurs bannières qui peuvent être diffusées en même temps pour la même position. Il faut donc en choisir une...

    • Bonjour,

      Merci pour votre réponse.
      J’ai beau modifier la campagne, je n’ai aucun champ qui corresponde à un sélecteur de position.
      Pour être plus concret, j’ajoute à mon message une capture d’écran des différents champs que j’ai quand j’édite une campagne.
      La seule chose qui ne figure pas sur la capture d’écran mais que j’ai bien affiché également est l’image de la bannière, juste avant l’ensemble des champs. Mais de sélecteur de position, aucun.
      Serait-ce imputable au fait que je n’ai pas mis le plug-in géographie, celui-ci faisant planter mon site ? J’en serais étonné mais dans le doute...

    • Bonjour,

      Au vu de la capture d’écran il s’agit plutôt de la version précédente du plugin ou la fonction souhaitée n’était pas disponible.

    • Je viens de mettre la dernière version mais je rencontre un souci. Elle refuse de s’activer sans la présence du plugin Geographie. Or, quand je veux mettre ce dernier en place, mon interface privé et le site public plante totalement. Existe t-il un moyen de pouvoir activer la dernière version de Banniere en passant outre l’absence de Geographie, sachant que la localisation ne sera de plus pas une fonction dont je compte me servir.

    • Bonjour,

      C’est dans les cartons...(paramétrage de certaines fonctions avec CFG), donc pas encore fait.

      Si tu est pressé, quelques pistes pour une « alternative » :

      Ce qui est long à installer dans le plugin Geographie, c’est la table des (36 000) communes qui demande pas mal de ressources au moment de l’install et qui n’est pas utilisée par bannières. Si tu l’installe en local, il faut modifier tes paramètres de délai ou de mémoire sur ton serveur. Tu pourra ensuite vider la table des communes pour l’export en ligne.

    • Si c’est dans les cartons, je vais patienter sagement alors :)
      Je me contenterai de la version précédente en attendant.
      Merci encore pour ta réactivité dans tes retours.

    • Bonsoir,

      Après avoir vu que le plugin était mis à jour pour pouvoir faire l’impasse sur celui de « Geographie », j’ai installé la dernière version. Hélas, je rencontre un nouveau problème technique et malgré mes recherches, je ne parviens pas à en identifier la cause et par la même, je ne peux le résoudre.

      Quand dans l’interface, je clique sur « Créer une campagne », je me retrouve avec une page quasiment blanche avec la seule mention « Sans Nom » en haut à droite et un bouton de retour (cf. capture d’écran attaché au message).

      A qui est du ce problème et comment le résoudre ?

      Merci d’avance pour l’aide.

    • Un peu plus d’infos sur la config peut-être...

      Merci

      Jeannot

    • Je suis sous la version SPIP 2.0.10.
      Je ne sais pas si vous avez besoin d’autres renseignements. Si oui, n’hésitez pas à me le demander.

      Merci en tous les cas.

      Guillaume

    Répondre à ce message

  • 1

    Bonjour,

    Merci pour ce plugin !

    Pour aller plus loin dans sa compréhension, ma question est la suivante :
    Les informations de géolocalisation permettent-ils bien d’identifier la provenance du visiteur et de pourvoir afficher une publicité qui concerne sa localité (région > commune > pays, etc.) ?

    Répondre à ce message

  • 2

    Bonjour

    Je voulais savoir, pour un site multilingue, si ce plugin permettait d’afficher une bannière différente par langue ?

    Merci

    Phil

    • Bonjour,
      Ce qui est prévu actuellement c’est : un pays -> une bannière, donc France -> français , Angleterre -> anglais par exemple. Mais, si je comprends bien, pour un pays ou une localité donnée, tu veux afficher la bannière avec une langue différente : France -> français ou France ->anglais par exemple ?
      Je n’ai pas prévu cette option dans l’état actuel, mais ça ne semble pas très compliqué à faire. Je regarderais ça dès que j’ai un instant.

      Jeannot

    • J’ai pas encore testé ni regardé mais à priori, en gérant un secteur de SPIP / langue et en jouant avec les squelettes et le boucles de langues, il doit pouvoir être possible d’attribuer une position de campagne à chaque secteur langue non ?

      exemple :

      pour la zone d’entête #BANNIERE{1} si l’on est en français, #BANNIERE{2} si l’on est en Anglais ... et jouer pareil avec les autres campagnes devant s’afficher sur la page ? enfin perso c’est comme ça que je la jouerais en l’état, à moins d’une évolution imminente :-P

    Répondre à ce message

  • Bonjour,
    La balise ne fait que traiter les informations de localisation transmises. Autrement dit, il faut lui envoyer un code postal (et le pays - 70 pour la France -), et ensuite elle affichera la bannière correspondante configurée dans l’espace privé. Elle recherche de la façon suivante : Si il y en une avec ce code postal, alors elle l’affiche, sinon elle cherche dans le département, ensuite la région, le pays, et enfin une « internationale ». Cette dernière étant la bannière par défaut minimum conseillée.

    Le plugin ne fait pas de recherche de localisation du visiteur. Pour les pays, il y a un plugin nommé GeoIp. Pour une localisation plus fine, je crois que les bases sont payante. Si quelqu’un a plus d’infos la dessus, je suis preneur.

    Jeannot

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

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