Skip to content

Assistouest/JustAds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JustAds

Version License: GPL v2+ WordPress 6.0+ PHP 7.4+

Régie publicitaire locale, simple, respectueuse de la vie privée pour WordPress.

JustAds vous permet de gérer vos propres publicités 300×600 dans WordPress, sans dépendre d'aucune régie externe. Pas de tracker tiers. Pas de cookies. Pas d'appel sortant. Juste vos pubs, votre site, vos données.


Sommaire


Fonctionnalités

  • 🎨 Éditeur visuel par publicité : image de fond, flou, overlay, logo, titre, description, bouton, bordure, animation
  • 🧱 Bloc Gutenberg « JustAds Sidebar » à insérer dans n'importe quel article ou page
  • 📐 Format 300×600 optimisé pour les barres latérales — anti-CLS, skeleton loader natif
  • 🎯 Ciblage exclusif par tag ou catégorie d'article (réutilise les taxonomies natives WP)
  • 🏢 Annonceurs (taxonomie dédiée) pour grouper les pubs d'une même entreprise — base prête pour les campagnes
  • 📊 Statistiques par publicité : vues, clics, CTR, courbe quotidienne (modal)
  • 🖼️ Bibliothèque visuelle dans l'admin avec aperçus en iframe (fidèles au front), filtres et recherche
  • 🔒 Tracking cookieless agrégé : aucune donnée individuelle, aucun fingerprint
  • 📱 Responsive : masquage automatique sur mobile et tablette (≤ 1023 px)
  • ♿️ Respect des préférences système (prefers-reduced-motion, prefers-color-scheme)

Prérequis

  • WordPress 6.0 ou plus récent
  • PHP 7.4 ou plus récent

Installation

Depuis un ZIP

# 1. Téléchargez la release

# 2. Dans l'admin WordPress :
#    Extensions → Ajouter → Téléverser une extension → choisir justads.zip

Puis activez JustAds dans le menu Extensions.

Utilisation

  1. Créer une pub : menu JustAds → Ajouter. L'éditeur Gutenberg ouvre un canevas 300×600 verrouillé sur le template justads/ad-template. Configurez fond, logo, titre, bouton, animation. Publiez.
  2. Insérer dans vos pages : dans n'importe quel article, ajoutez le bloc « JustAds Sidebar ». À chaque chargement, une de vos publicités éligibles sera tirée au hasard.
  3. Suivre les performances : menu JustAds → Bibliothèque. Cliquez sur la barre de stats d'une carte pour ouvrir la courbe quotidienne (7 / 30 / 90 jours).

Ciblage par tag / catégorie

Chaque publicité réutilise les tags et catégories natifs de WordPress (panneaux standards à droite dans l'éditeur Gutenberg). La logique d'éligibilité est :

Cas Comportement
Pub sans tag ni catégorie Universelle — affichée partout par défaut
Pub avec tag ou catégorie + article correspond Affichée — et exclut les pubs universelles sur cet article
Pub avec tag ou catégorie + article ne correspond pas Non affichée

Exemple. Vous avez 5 pubs universelles et 1 pub taguée sauvegarde. Sur un article sans tag sauvegarde, le tirage se fait parmi les 5 universelles. Sur un article tagué sauvegarde, seule la pub sauvegarde est candidate — l'exclusivité du sponsor est garantie.

Les correspondances tag ou catégorie suffisent : une pub peut viser à la fois sauvegarde (tag) et Tutoriels (catégorie) ; n'importe laquelle des deux match suffit.

Annonceurs (campagnes futures)

JustAds expose une taxonomie dédiée justads_advertiser (menu JustAds → Annonceurs). Vous y créez vos sponsors (ex. « Acme Corp », « Boutique du coin »), puis vous les attachez à vos publicités dans l'éditeur.

  • Quand un annonceur est attaché, son nom apparaît en tout petit en bas de la pub côté visiteur (overlay non cliquable, transparent pour ne pas casser le design 300×600).
  • Plusieurs publicités peuvent partager le même annonceur — c'est la base sur laquelle reposeront les campagnes dans une future version (rotation au sein d'un annonceur, stats consolidées, période d'activité…).

Vous pouvez d'ores et déjà commencer à structurer vos pubs par annonceur — aucune migration de données ne sera nécessaire pour activer les campagnes plus tard.

Architecture

justads/
├── justads.php                       # Bootstrap : header, constantes, hooks d'activation
├── uninstall.php                     # Nettoyage à la suppression du plugin
├── readme.txt                        # Readme WordPress.org
├── README.md                         # Ce fichier
├── LICENSE                           # GPL v2+
├── includes/
│   ├── class-justads-plugin.php      # Orchestrateur (singleton)
│   ├── class-justads-cpt.php         # CPT `justads_ad` + taxonomie `justads_advertiser`
│   ├── class-justads-targeting.php   # Éligibilité tag/catégorie + nom annonceur
│   ├── class-justads-tracking.php    # Schéma DB + statistiques
│   ├── class-justads-blocks.php      # Enregistrement des blocs Gutenberg
│   ├── class-justads-library.php     # Page admin « Bibliothèque »
│   └── class-justads-ajax.php        # Endpoints AJAX (front + admin)
└── build/
    ├── block.json                    # Manifest du bloc conteneur
    ├── render.php                    # Rendu front du bloc conteneur
    ├── frontend.js                   # Tirage aléatoire + tracking (vanilla)
    ├── frontend.asset.php
    ├── index.js                      # Éditeur Gutenberg (vanilla)
    ├── index.asset.php
    ├── index.css                     # Styles éditeur
    ├── style-index.css               # Styles front
    ├── library.js                    # Bibliothèque admin (vanilla)
    ├── library.css                   # Styles bibliothèque
    └── ad-template/
        ├── block.json                # Manifest du template d'annonce
        └── render.php                # Rendu d'une annonce 300×600

Préfixes utilisés

Surface Préfixe
Constantes PHP JUSTADS_
Classes PHP JustAds_
Hooks / actions justads_
Actions AJAX justads_* / justads_library_*
Options justads_db_version
Transients justads_*
Table SQL {prefix}justads_tracking
Custom Post Type justads_ad
Taxonomies dédiées justads_advertiser (+ category, post_tag réutilisées)
Blocs Gutenberg justads/sidebar, justads/ad-template
Classes CSS justads-*
Variable JS globale JustAdsLibrary

Vie privée et tracking

JustAds suit deux événements par publicité : vue (rendu effectif) et clic (premier clic sur le lien). Le suivi est :

  • Anonyme : aucune IP, aucun fingerprint, aucun identifiant utilisateur n'est stocké.
  • Agrégé : la base contient seulement des compteurs par (ad_id, type, date, heure).
  • Limité en débit : un hachage sha256(IP + heure_courante + wp_salt) est conservé uniquement en cache objet (jamais sur disque), pendant 1 h pour les vues et 5 min pour les clics, pour empêcher le double comptage.
  • Protégé par nonce : tous les endpoints AJAX vérifient un nonce WordPress (justads_frontend côté front, justads_library côté admin).

Aucun appel sortant n'est effectué. Les URLs de polices et de styles du thème actif sont stockées dans un transient uniquement pour permettre à la bibliothèque admin de rendre des aperçus fidèles dans des iframes — rien n'est envoyé à un tiers.

Désinstallation

À la désactivation, seuls les transients du plugin et les règles de rewrite sont nettoyés. Vos publicités et vos statistiques sont conservées.

À la suppression depuis la page Extensions, uninstall.php :

  • supprime la table {prefix}justads_tracking
  • supprime l'option justads_db_version
  • supprime le transient justads_frontend_font_urls
  • vide le groupe de cache objet justads

Les publicités (CPT justads_ad) ne sont pas supprimées : ce sont vos données. Supprimez-les manuellement avant la désinstallation si vous le souhaitez.

Contribuer

Le plugin est volontairement compact (~700 lignes de PHP, vanilla JS, aucun build). Toute contribution doit :

  1. Respecter les WordPress Coding Standards (PHPCS-WPCS).
  2. Échapper toute sortie HTML / attribut (esc_html, esc_attr, esc_url, wp_kses_post).
  3. Vérifier un nonce et une capability sur tout endpoint AJAX qui mute des données.
  4. Préfixer toute fonction, classe, constante, option, transient, hook par justads.
  5. Aucune intégration tierce (Amazon, Google Ads, Adsense, etc.) — par design.

Licence

GPL v2 ou ultérieure. Voir LICENSE.

Ce plugin est dérivé d'un travail antérieur (« React AdSense Sidebar ») dont toutes les intégrations tierces (Amazon Creators API, fallback Amazon, comparatif Amazon ↔ local) ont été supprimées pour repartir d'une base 100 % locale et libre.

About

JustAds vous permet de gérer vos propres publicités 300×600 dans WordPress, sans dépendre d'aucune régie externe. Pas de tracker tiers. Pas de cookies. Pas d'appel sortant. Juste vos pubs, votre site, vos données.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors