Pub Banner : gestionnaire de bannières publicitaires

Le plugin « PUB BANNER » est un gestionnaire complet de bannières publicitaires pour des squelettes SPIP. Il prend en charge tous les types de bannières et permet de leur attribuer des publicités (locales ou distantes, images ou Flash). Chaque publicité peut se voir attribuer un certain nombre d’affichages, de clics ou être affichée dans un intervalle de dates.

Il propose également une présentation de statistiques (nombres d’affichages et de clics par bannière et par publicité).

Installation

Installation automatique

Le plugin est disponible dans le fil RSS de chargement automatique de Spip-Contrib (onglet ’Ajouter des plugins’ de la page de gestion des plugins de l’espace privé).

Installation manuelle

Si vous préférez une installation manuelle, suivez les étapes suivantes :

  1. Téléchargez l’archive ’.zip’ de cette page vers le dossier de plugins de votre SPIP
  2. Installez le plugin depuis votre espace privé comme expliqué ici : http://www.spip.net/fr_article3396.html.

Pré-requis

Pour une raison pratique, PUB BANNER nécessite d’avoir installé au préalable le plugin ’SPIP Bonux’ en version 1.3 au minimum.

Notes

  • L’organisation du plugin a pris un tournant décisif pour sa version 1.25 (version des tables 0.8), notamment concernant les noms des tables en base de données. Pour plus d’information, voyez la note de version 1.24.

Fonctionnement/Utilisation

Lorsqu’il qu’il est activé, le plugin fait apparaître deux nouveaux boutons dans le bandeau de navigation de l’espace privé :

  • « Bannières publicitaires » dans le sous-menu « Edition »,
  • « Statistiques des publicités » dans le sous-menu « Statistiques ».

Ces bannières s’intègrent dans vos squelettes en indiquant simplement la balise :

#PUBBAN{banner_id}

Attention, l’option passée à la balise est bien l’entrée « banner_id » de la bannière, il est donc conseillé de définir cette valeur de façon simple et sans ambigüité (elle sera corrigée par le plugin le cas échéant) [1].

La balise est remplacée par une frame de la taille de la bannière dont les publicités sont choisies au hasard parmi celles affichables. Lors d’un clic sur une pub, la fenêtre courante ou une nouvelle fenêtre s’ouvre vers l’URL configurée (propre à chaque publicité).

Valeurs par défaut à l’installation

Des valeurs par défaut sont entrées dans les tables à l’installation, à savoir :

  • les quatre emplacements ’type’ les plus répandus sur le web :
    • skyscraper : la longue bannière verticale, de 160 ou 180 sur 600 pixels,
    • leaderboard : la longue bannière horizontale, de 728 sur 90 pixels,
    • banner : la bannière horizontale ’standard’, de 468 sur 60 pixels,
    • cube : le carré, de 250 sur 250 pixels, emplacement privilégié pour les encarts flash,
  • cinq exemples d’encart publicitaires, un pour chaque emplacement, deux pour la ’banner’, avec divers options quand à la limite d’affichage (nombre d’affichages, de clics et dates encadrantes).

Les publicités proposées pour les tests sont construites autour du fameux écureuil SPIP [2].

Statistiques

Comme précisé plus haut, des statistiques sont enregistrées pour analyse. Elles sont présentées sous forme de graphes permettant d’étudier d’une part le nombre d’affichages de chaque bannière, d’autre part le nombre de clics sur celles-ci. Un suivi d’évolution dans le temps est également proposé (cf. portfolio).

Des tableaux récapitulatifs sont également disponibles et exportables au format CSV.

Accessibilité

Les clics sur les bannières affichées en pages publiques ouvrent par défaut un nouvel onglet ou une nouvelle fenêtre de navigateur sans javascript [3]. Ces fenêtre ne sont donc pas bloquées par les réglages du navigateur, il s’agit simplement de liens avec l’attribut « target=blank », accessibles en toute circonstance.

Vous pouvez forcer l’utilisation d’une fonction Javascript en définissant la constante PUBBAN_FORCE_JAVASCRIPT sur 1 dans le fichier pubban_options.php.

Personnalisation CSS

Chaque frame présentant une bannière est contenue dans une div portant une classe nommée « pubban banniere_XX » où ’XX’ est le banner_id de la bannière concernée. Cela vous permet de personnaliser les styles des bannières de façon discriminante dans vos propres feuilles de style.

(in) Compatibilités

Le plugin est prévu pour s’intégrer dans tout type de squelette SPIP et notamment dans les squelettes Z (Le Squelette Zpip). Il est également compatible avec le plugin « Bandeau » : une navigation améliorée dans le privé depuis sa version 1.28.

Tous les squelettes utilisés par le plugin sont construits pour être autonomes et affichables dans toute situation. Cependant, lorsque vous utilisez le switcher de thèmes de SPIP Zen Garden, une erreur Javascript est renvoyée car la bibliothèque jQuery n’est pas chargée dans les frames présentant les encarts publicitaires ... Pas d’inquiétude, cette erreur ne pose aucun problème quant à l’affichage des bannières.

Aspects techniques

Le plugin créé deux nouveaux types d’objets SPIP : les bannières publicitaires et les publicités en elles-mêmes, correspondant aux images ou objets visibles sur les pages. Chaque publicité peut être attribuée à une ou plusieurs bannières et son affichage peut être limité par trois variables :

  • le nombre d’affichages,
  • le nombre de clics,
  • un intervalle de dates de validité.

Lorsqu’une publicité ne doit plus être affichée, elle est tout de même conservée en base et peut être récupérée pour une nouvelle campagne.

Deux nouvelles boucles apparaissent donc avec ce plugin : les boucles « BANNIERES » et « PUBLICITES », au sein desquelles vous pouvez utiliser les deux identifiants « id_publicite » pour la publicité et « id_banniere » pour la bannière (très original ...).

Comme tous les objets de SPIP, vous devez d’abord créer une pub ou une bannière puis l’activer pour qu’elle soit effectivement visible ... Cela permet par exemple de créer une pub puis de la modifier avant une mise en ligne définitive. Vous pouvez bien entendu visualiser un exemple de chaque pub même si elle est désactivée.

La mécanique PHP

J’ai tenté d’inclure au plugin un certain nombre de vérifications de sécurité. Par exemple, le système vous préviendra si vous créez une pub qui redirige vers une URL qui n’existe pas. Ces vérifications inscrivent un message d’erreur à l’écran mais proposent de forcer leur validation par une nouvelle soumission du formulaire.

Les modifications sur la base

Le plugin ajoute quatre nouvelles tables à SPIP :
-  ’spip_bannieres’ : la table des bannières,
-  ’spip_publicites’ : la table des encarts publicitaires,
-  ’spip_publicites_bannieres’ : une table de jointure bannière/publicités,
-  ’spip_pubban_stats’ : une table retenant les statistiques des encarts (nombres de clics, d’affichages ...).

Lors de la désinstallation du plugin, un mécanisme de sécurité interdit l’effacement des tables si celles-ci ne sont pas vides ... Vous pouvez forcer cet effacement, notamment en phase de tests, en définissant la constante PUBBAN_FORCE_UNINSTALL sur 1 dans le fichier « pubban_options.php ».

Notes de version

Version 1.24

Le plugin a été largement revu entre les versions 1.23 et 1.24. Les tables de la base ont notamment été renommées, afin, comme indiqué plus haut, de s’intégrer plus naturellement dans la nomenclature de SPIP.

Un mécanisme automatique de mise à jour est prévu dans le plugin. Cette migration devrait donc être invisible si vous passez d’une version antérieure à 1.24 vers une version supérieure, mais il est possible, pour plusieurs raisons (notamment si vous utilisez un préfixe de tables personnalisé) que cette migration vous fasse perdre vos données.

Si vous rencontrez des problèmes lors de cette migration, voici les étapes à suivre pour l’effectuer manuellement :

  1. désactivez le plugin dans sa version supérieure ou égale à 1.24 sans le désinstaller,
  2. effacez manuellement les nouvelles tables de votre base de données, à savoir (avec PREFIX votre préfixe de tables, par défaut ’spip’) :
    • PREFIX_publicites
    • PREFIX_bannieres
    • PREFIX_bannieres_publicites
  3. recherchez dans la table ’PREFIX_meta’ le méta ayant pour nom ’pubban_base_version’ et modifiez sa valeur pour qu’elle soit inférieure à 0.8,
  4. renommez manuellement les tables de la façon suivante :
    • PREFIX_pubban_publicites’ vers ’PREFIX_publicites
    • PREFIX_pubban_emplacements’ vers ’PREFIX_bannieres
    • PREFIX_pubban_pub_empl’ vers ’PREFIX_bannieres_publicites
  5. installez le plugin en version supérieure ou égale à 1.24 de façon classique.

Et le tour est joué !

À côté / Pistes d’évolution

« TODOS »

-  uniformiser avec les tables SPIP
-  permettre de suivre les statistiques pour les pubs et plus seulement les bannières

Achat d’encarts

Le code du plugin est prévu pour permettre de proposer d’acheter des emplacements (des tranches de prix sont configurées). Cette fonctionnalité fera probablement l’objet d’un nouveau plugin ...

Notes

[1A noter que cette fonctionnalité est apparue dans le plugin à partir de sa version 1.25. Avant celle-ci, le titre était utilisé en lieu et place de l’entrée « banner_id », ce qui générait pas mal d’erreurs ...

[2Un peu d’indulgence ... je ne suis pas graphiste !

[3Depuis la version 1.27 du plugin.

La page de statistiques du plugin est une adaptation libre du script ’VRG pub’ développé par Vincent Roseberry (sous licence GPL à l’époque).

Discussion

45 discussions

  • 1

    Bonsoir et bonne année

    Une version pour spip 3.1 est-elle prévue ?

    Merci d’avance

    • Change la borne de compatibilitée dans le paquet du plugin, et ça devrait passer ...         compatibilite="[3.0.5;3.1.*]"

      ça te permettra de l’utiliser le temps que l’auteur commit

    Répondre à ce message

  • 2
    Sandrine Lejeune

    Bonsoir,

    Je ne trouve pas comment activer les publicités que je crées. Elles restent toujours dans le groupe des publicités inactives même après avoir coché « Droits illimités ».
    Merci par avance pour votre aide.

    Cordialement
    Sandrine

    Répondre à ce message

  • 1

    Bonjour,

    Je voudrais signaler un problème d’effet de bord gênant avec le plugin ’cookie choices’, qui affiche un popin pour accepter la pose de cookies.

    ’Cookie choices’ affiche un popin sur la page proprement dite, et aussi sur l’iframe générée par ’pub banner’... !

    Ennuyeux, je ne vois pas trop comment contourner cet effet de bord. Quelqu’un aurait une idée ?

    Merci de votre attention.

    • et n’allez pas croire que c’est un poisson d’avril !

    Répondre à ce message

  • 1
    J-C Hamers

    Bonjour,
    Excusez mon ignorance, mais je ne comprends pas où je dois mettre «  #PUBBANbanner_id ».
    Le site où je voudrais mettre une publicité est créé sous SPIP ( SPIP 2.1.26 [21262] | Sarka-SPIP 3.1.4 [73602] ).
    Je suis nul en PHP, mais capable d’ouvrir un fichier et d’y coller une formule.
    Mais quel fichier ? Il y en a des centaines...
    Et où ?
    Merci de m’éclairer.

    Jean-Claude

    • Bonjour,

      Si vous êtes sous Sarka, qui est de la famille des squelettes Zcore, le plus simple est de rajouter &var_mode=inclure a l’url/adresse de la page ainsi vous saurez quel est le fichier inclus sur lequel vous devez intervenir. si vous utilisez minibando il y’a un bouton direct.

      Ensuite, dans votre dossier squelette (a créer si il n’existe pas), reproduisez l’arborescence et dupliquez le fichier en question , vous pourrez alors l’éditer pour le surcharger.

      bonne journée.

    Répondre à ce message

  • 3

    Bonjour

    Sous Chrome (Version 39.0.2171.95 m) j’ai un problème d’affichage de certaines pages :

    -   ?exec=pubbanner : OK
    -   ?exec=pubbanner&mode=trash : OK
    -   ?exec=bannieres_tous : pas d’affichage
    -   ?exec=publicites_tous : pas d’affichage
    -   ?exec=pubban_info : pas d’affichage
    -   ?exec=statistiques_bannieres : pas d’affichage

    Sous Explorer et Mozilla cela fonctionne bien

    J’utilise spip 2.1.19 et la version 1.28 du plugin.

    • Salut ruche,
      désolé, je répond un peu tard mais ton cas m’intéresse ... as-tu plus d’infos ? (une erreur javascript par exemple ou au moins l’output de la console du navigateur ?)
      Merci d’avance

    • Bonjour
      Une erreur javascript : Failed to load resource : net::ERR_CACHE_MISS
      Mais qu’appelle tu « l’output de la console du navigateur » ?
      Merci

    • Sur la page ecrire/ ?exec=publicite&id_publicite=XX
      les pages de toutes les pub sont vides
      J’ai installé sur un autre site juste pour voir et j’ai le même problème

      Sur la page ecrire/ ?exec=banniere&id_banniere=YY
      j’ai une erreur SQL :

      Erreur SQL 1054
      Unknown column 'bannieres.date' in 'where clause'
      SELECT id_banniere FROM spip_bannieres AS <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YmFubmllcmVzPC9jb2RlPg=="></span> WHERE (bannieres.statut = '2actif') AND bannieres.date<'2015-11-22 16:52:00' AND bannieres.id_banniere=3

      J’ai désinstallé/résinstallé. Voici ce que je vois en phpmyadmin (voir image)

    Répondre à ce message

  • Bonjour,

    tout d’abord merci pour ce plugin très pratique et très simple à mettre en oeuvre ! Les exemples inclus aident beaucoup et permettent de tester très vite comment le plugin peut fonctionner.

    J’aimerais savoir si le comportement que j’ai obtenu est « normal ».

    Au départ je voulais utiliser ce plugin pour faire apparaître une image avec un lien vers un questionnaire pendant une période donnée. Ce n’est peut-être pas l’utilisation première de ce plugin, mais cela semblait très pratique car cela permet de ne pas avoir à gérer manuellement l’affichage / désaffichage de cette campagne d’enquête. Avec Pubbanner, j’ai créé une bannière, je l’ai activée et j’ai créé une publicité pour cette bannière. La publicité est active avec une période d’affichage commençant plusieurs jours plus tard. Mais la publicité s’est affichée immédiatement. Est-ce normal ? Dois-je créer une « fausse » publicité pour « garder la place » ?

    J’utilise Pubbanner1.30.5 avec SPIP3.0.16.

    Merci pour votre aide !

    Répondre à ce message

  • Spipmalion

    Au lieu d’un bouton « Uploader ma bannière » il faut mettre l’URL de l’image ???

    J’allais installer le plugin sur 30 sites spip 3 mais je ne vois aucun moyen simple pour les admins de mettre leurs images « quelque part » et leur expliquer comment trouver l’URL de l’image et la copier//coller dans ce textarea (textarea qui propose en outre une barre d’édition avec du gras etc.)

    Snirf snirf snirf, désinstallation du plugin ... départ vers la Fabrique pour créer un objet éditorial « bannière » qui accepte un LOGO ... mais snirf snirf snirf, tant de travail sur votre plugin pour être bloqué comme ça !

    Répondre à ce message

  • Depuis 2 ou 3 jours les bannières étaient longues à installer. En vérifiant le serveur, j’ai vu que mysql ramait sérieusement et que la CPU était anormalement utilisée.
    J’ai réglé le problème en vidant la table pubban_stats que j’avais sauvegardée auparavant. La sauvegarde de cette seule table fait un peu plus de 100 Mo, ce qui est certes beaucoup mais ne devrait pas pour autant bloquer le fonctionnement de mysql.
    Bref je signale ce problème + la solution pour le jour où qqun reprendra les dévs de ce plugin sympa :)

    Répondre à ce message

  • 2
    Benolaos

    Bonjour Pierre, et à tous ceux qui contribuent à cet excellent plugin,

    Plugin qui fonctionne à merveille !
    J’ai juste un doute sur les statistiques des clics. Voici mon expérimentation :
    -  Un site « support publicitaire » affiche une publicité pour un « site vitrine »
    -  Le site « support publicitaire » indique 25000 affichages et 1000 clics (statistiques du plugin)
    -  Le « site vitrine » affiche quant à lui 5 internautes venus du site « support publicitaire » (statistiques SPIP)
    -  Google Analytics m’annonce 5 internautes venus du site « support publicitaire » (cequi corrobore les statistiques SPIP)

    — > La différence entre le plugin et les autres statistiques est telle que je me permets de partager cette expérience... et de vous demander si vous n’auriez pas une explication...

    • Salut,

      Ah oui, c’est normal : c’est parce que le plugin compte le nombre de protons déplacés par clic et pas juste un clic sur une souris, ce serait trop facile ... c’est pour ça :(

      Non, sérieusement, je comprends bien ton « doute » et en suis vraiment désolé !! L’écart est énorme et ce n’est vraiment pas sérieux. Malheureusement, je n’ai pas le temps de m’occuper du plugin en ce moment et Moana (commentaire ci-dessous) a également remonté un souci sur les statistiques. Pour avoir un peu cherché dans son cas, je n’ai pas vu de problème mais les chiffres que tu remontes parlent d’eux-mêmes ...

      Si quelqu’un veut mettre la main à la pâte ? (les sources sont sur la zone et je donne, évidemment, mon feu vert à tous)

      Une première piste peut-être le fonctionnement en iframe. J’ai toujours détesté ça mais je n’ai pas trouvé de solution plus simple pour recharger les images de chaque bannière en pouvant compter les affichages à l’époque ... En gros il faudrait tester l’incrémentation du nombre de clics en base pour 1 seul clic, sur plusieurs navigateurs et dans différentes configs ... A bon entendeur !

      Désolé de ne pas pouvoir t’aider plus que ça :(

      Je ne peux pas bosser dessus mais je peux conseiller, aiguiller, raconter comment j’ai construit tout ça ...
      N’hésite pas si tu as d’autres questions.

      @+

    • Bonjour Piero,

      Merci pour ta réponse rapide et documentée (pourquoi donc n’ai-je pas été prévenu par mail que tu avais répondu ??? mystère et boule de gomme), ainsi que ta proposition à apporter ton expertise.

      Malheureusement, n’étant moi-même pas du tout programmeur, je ne peux apporter l’aide requise à l’évolution du plugin, et je m’en attriste, car il fonctionne parfaitement, et peut être potentiellement d’un grande utilité ne serait-ce que pour tester la pertinence des liens croisés, et de certains contenus...

      J’espère qu’un développeur pourra s’y coller prochainement !
      Bonne continuation !

    Répondre à ce message

  • Bonjour,

    J’ai installé le module PUBBAN en version 1.30.5 sur spip 3.0.16.
    La version de PHP est 5.4.4-14+deb7u2
    Version du client MySQL : 5.0.51a

    Il est génial ! Merci pour ce travail remarquable.

    Cependant les graphiques de la page statistiques ne s’affichent pas (?exec=statistiques_bannieres).
    Y a t’il une solution à ce problème ?
    Merci d’avance.

    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