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

  • Le pavé svp 300x250

    je l’ai ajouté manuellement pour ma part mais bon :) ça serait bien qu’il soit aussi dans la liste.

    Répondre à ce message

  • 4

    Bon, c’est con, je développais aussi un plugin de Régie publicitaire et il est quasi complet pour une première version.

    Faut que je commit quand même pour qu’on compare et peut-être fusionne nos trucs.

    • Ah, ouais c’est con ...

      Un peu ma faute : il poirotait sur mon dépôt depuis quelques temps déjà ... j’aurai du le mettre sur la zone ou rédiger l’article avant ...
      Suis à fond pour étudier une fusion. Préviens-moi quand tu commit ;-)

    • Ben c’est pareil pour moi hein, il est pour l’instant sur le dépôt privé d’un client, en attente de transfert sur la zone puisqu’il est générique.

    • Bonjour,
      J’ai installé le plugin, mais quand j’essaie de l’utiliser j’ai une erreur :

      Erreur SQL 1054
      Unknown column ’statut’ in ’where clause’
      SELECT COUNT(*) AS n FROM spip_bannieres WHERE statut=’2actif’

      Merci

    • c’est vrai que ça commence à se compter quand on fait une recherche sur le mot bannière ici : c’est l’embarras du choix :-D Y a plus qu’à comparer.

    Répondre à ce message

  • 2
    Tropicaloo

    Bonjour,
    Merci pour ce super plugin très utile.
    Juste un petit retour de test avec un spip 2.1.10 et le plugin Bandeau 2.1 (1.1.10 - stable) :
    Une fois Pub Banner activé, l’accès aux pages de configuration du plugin est introuvable dans les menus.
    Cordialement.

    • Salut Tropicaloo,

      Merci pour le retour, c’est corrigé (dispo dans le zip demain matin - version 1.28).

       ;-) P.

    • Tropicaloo

      Salut Piero,
      Merci beaucoup, ca sera plus pratique en navigation Spip 3 que par l’url exec=pubbanner ;-)

    Répondre à ce message

  • 2

    re bonjour,

    j’ai ce message d’erreur

    Fatal error : Call to undefined function sql_getfetsel() in /home/pacar7v/public_html/plugins/pub_banner/pubban_options.php on line 236

    merci de votre aide

    cordialement

    • Salut Marc,

      Pour les erreurs sql ci-dessus, cela devrait être réglé avec la version 1.23 (disponible dans le zip demain matin si tout va bien).

      Pour le fait de na pas ouvrir de nouvelle fenêtre (ton message 44733 ci-dessous), tu n’es pas le premier à le demander ... Ca paraît tout bête mais c’est assez compliqué en fait, donc je fais ça dans le courant de la semaine prochaine (si tu veux essayer, tout se joue dans le modèle « pub.html », tu peux dans un premier temps enlever tous les « target=_blank » et bidouiller la fonction javascript en attendant que je mette ça en place).
      Je te tiendrai au courant ;-)

      Voilà, à bientôt ...

    • Pour info, le plugin propose maintenant de choisir d’ouvrir une nouvelle fenêtre ou non ... (version 1.25 dispo demain matin).

      P.

    Répondre à ce message

  • Bonjour,

    et merci pour votre travail

    je souhaiterai ne pas ouvrir une nouvelle page pour le lien de la bannière, mais le faire pointer directement dans mon site vers un article, que faut il modifier et dans quel fichier, merci ?

    Cordialement

    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