Natacha Laure Voyance

🎡 LA ROUE DES CADEAUX — notice d’installation

Trois Ă©tapes, dans cet ordre. AprĂšs l’étape 1, la roue tourne dĂ©jĂ  (en mode dĂ©monstration) : tu peux valider le look avant de brancher quoi que ce soit.


⚠ D’ABORD : LES TROIS ÉTATS DE LA ROUE

En haut de assets/js/roue.js, deux réglages commandent tout.

État PRIVE API Qui voit quoi
1. PrivĂ© (livrĂ© comme ça) true vide Personne ne voit rien. Toi seule, avec ?roue=1 dans l’adresse.
2. DĂ©monstration publique false vide Tout le monde voit la roue, mais aucun email ne part et on peut rejouer Ă  l’infini.
3. En service false remplie Une adresse = un tour, email envoyé automatiquement.

Ne reste jamais dans l’état 2 en production. Une visiteuse gagnerait « 30 minutes offertes », verrait l’affiche, et ne recevrait jamais rien. C’est une promesse en l’air faite Ă  une future cliente.

Le bon chemin : uploader en Ă©tat 1 → tout tester tranquillement → faire les Ă©tapes 2 et 3 → passer en Ă©tat 3 d’un coup.


ÉTAPE 1 — Le site (5 min) → tu peux uploader sans aucun risque

Dans le dossier site-a-uploader-sur-github/, tous les fichiers sont complets : tu les déposes tels quels dans ton repo GitHub, ils écrasent les anciens.

⚠ N’uploade QUE le contenu de site-a-uploader-sur-github/, en respectant les dossiers. Les deux autres dossiers du ZIP (aurea-vercel/ et supabase/) n’ont rien Ă  faire dans le repo du site.

NOUVEAUX
  assets/css/roue.css        la feuille de style de la roue
  assets/js/roue.js          tout le jeu (roue, animation, formulaire)
  assets/images/roue/        tes 6 affiches, en 2 formats (voir plus bas)
  reglement-jeu.html         le rĂšglement, obligatoire (voir plus bas)

MODIFIÉS (une ou deux lignes seulement dans chacun)
  index.html                 + la ligne de script, + lien rĂšglement au pied
  evenements.html            idem
  blog/index.html            + la ligne de script
  aurea/index.html           + script SANS pop-up auto, + lien rĂšglement
  aurea/guide/index.html     + lien rĂšglement
  _layouts/post.html         + la ligne de script (→ tous les articles)
  _includes/footer.html      + lien rĂšglement
  confidentialite.html       + section « 4 septies » sur le jeu

GitHub → Add file → Upload files → glisser en respectant les dossiers → Commit. Le rebuild prend ~2 min.

âžĄïž À ce stade, tes visiteurs ne voient absolument rien : ni pop-up, ni bandeau, ni bouton 🎁. Le site est exactement comme avant pour eux.

Pour la voir, toi, ajoute ?roue=1 à la fin de l’adresse :

https://natachalaurevoyance.fr/?roue=1

La roue s’ouvre, tourne, sonne, affiche ton affiche de lot. Elle reste visible tant que tu ne fermes pas l’onglet, mĂȘme en changeant de page — pas besoin de remettre ?roue=1 partout. Une mention « Mode dĂ©monstration » sous le formulaire te rappelle qu’aucun email ne part encore.


ÉTAPE 2 — La base de donnĂ©es (2 min)

Supabase → projet aurea-tarot → SQL Editor → coller supabase/supabase-roue.sql → Run.

Ça crĂ©e une seule table, roue_participations. Rien d’existant n’est touchĂ© — ni les profils, ni les crĂ©dits, ni la fidĂ©litĂ©.

C’est cette table, et sa contrainte d’unicitĂ©, qui garantit qu’une adresse ne joue qu’une fois. Pas le navigateur : un compteur dans le navigateur se remet Ă  zĂ©ro en navigation privĂ©e.

À la fin du fichier, j’ai laissĂ© une sĂ©rie de requĂȘtes toutes prĂȘtes, en commentaire : voir les derniers gagnants, retrouver quelqu’un par son code, marquer un lot comme utilisĂ©, exporter les inscrits newsletter.


ÉTAPE 3 — Le serveur et les emails (10 min)

3a. Déposer la fonction

Copier aurea-vercel/api/roue.js dans le dossier api/ de ton projet Auréa (à cÎté de create-checkout.js), puis :

vercel --prod

3b. VĂ©rifier UNE variable d’environnement

⚠ C’est le seul point que je n’ai pas pu vĂ©rifier moi-mĂȘme.

Ouvre ton fichier api/envoyer-verif-email.js et regarde le nom de la variable qui contient la clĂ© Brevo. Si c’est bien BREVO_API_KEY, tout est dĂ©jĂ  en place. Sinon, dis-le-moi ou ajoute la mĂȘme variable sur Vercel (Settings → Environment Variables).

Mon fichier accepte trois noms possibles : BREVO_API_KEY, BREVO_KEY, VITE_BREVO_API_KEY.

Variables facultatives :

3c. Ouvrir la roue au public

Dans assets/js/roue.js, deux lignes Ă  changer en mĂȘme temps :

PRIVE: false,
API: 'https://aurea.natachalaurevoyance.fr/api/roue',

Re-commit sur GitHub. C’est tout. À partir de là : une adresse = un tour, un email de gain part automatiquement avec l’affiche, et tu reçois une notification à chaque participation.

Avant de faire ça, un dernier essai en Ă©tat 1 avec l’API branchĂ©e : tu es la seule Ă  voir la roue, mais l’email part pour de bon. Tu vĂ©rifies que tu le reçois, que l’affiche s’affiche dedans, et que ton adresse ne peut pas rejouer. Ensuite seulement tu passes PRIVE Ă  false.

⚠ Ton adresse de test aura consommĂ© son tour. Pour la remettre Ă  zĂ©ro, la requĂȘte delete est en bas de supabase-roue.sql.


COMMENT ÇA MARCHE, EN CLAIR

  1. Le visiteur saisit son email et clique sur CLIQUEZ ICI.
  2. Le navigateur envoie l’adresse au serveur. C’est le serveur qui tire le lot, jamais le navigateur — sinon il suffirait d’ouvrir la console pour s’attribuer la demi-heure offerte.
  3. Le serveur vĂ©rifie que l’adresse n’a jamais jouĂ©, enregistre la participation, gĂ©nĂšre un code unique, envoie l’email.
  4. La roue tourne alors vers le lot dĂ©jĂ  dĂ©cidĂ©. L’animation ne fait que raconter le rĂ©sultat.

L’anti-triche


LES LOTS ET LEURS FRÉQUENCES

Lot Fréquence Ce que ça te coûte
5 crĂ©dits AurĂ©a 34 % quelques centimes d’API
Croix affinée + 2 crédits 26 % quelques centimes
Bon de 10 € 18 % 10 € — mais seulement si rĂ©servation
1 question offerte 12 % ~10 min de ton temps
−20 % 8 % 8 à 29 € selon la formule
30 min offertes 2 % 40 €

Sur 1 000 tours, tu offres environ 20 demi-heures (10 h de ton temps) et 80 remises de 20 %. Les deux tiers des lots ne te coĂ»tent pratiquement rien et ramĂšnent des gens dans AurĂ©a. C’est un bon Ă©quilibre — mais surveille la colonne « 30 min » dans Supabase, c’est la seule ligne qui peut peser.

Pour changer une frĂ©quence, il faut modifier les deux fichiers (assets/js/roue.js ET api/roue.js) — dis-le-moi, je te fais la nouvelle version.


LES LOTS AURÉA NE SONT PAS ENCORE AUTOMATIQUES

C’est le seul morceau qui manque, et je prĂ©fĂšre le dire clairement.

Quand quelqu’un gagne « 5 crĂ©dits » ou « le tirage dĂ©bloquĂ© », il reçoit un email avec son code — mais les crĂ©dits ne sont pas encore versĂ©s tout seuls dans son compte AurĂ©a. Il faut les ajouter Ă  la main pour l’instant.

Je n’ai pas voulu deviner : je n’ai pas ton schĂ©ma Supabase sous les yeux et je ne connais pas le nom exact de la colonne qui stocke les tirages dĂ©bloquĂ©s. Envoie-moi supabase-fidelite.sql ou une capture de tes colonnes de la table profiles, et je te livre l’automatisation — c’est une petite fonction, pas un chantier.

En attendant, dans Supabase → SQL Editor :

-- Créditer 5 crédits à quelqu'un qui a gagné
select ajouter_credits_ia('ID_DU_PROFIL', 5);

TES 6 AFFICHES DE LOT

Elles s’affichent Ă  la rĂ©vĂ©lation du gain (elles remplacent la pastille dorĂ©e, avec un balayage de lumiĂšre qui traverse l’affiche une fois) et en haut de l’email reçu.

Deux formats, et pourquoi

Dossier Format Sert Ă 
assets/images/roue/xxx.webp WebP 700 px l’affichage sur le site
assets/images/roue/xxx.jpg JPEG 600 px l’email uniquement

Le WebP n’est toujours pas lu par Outlook : une affiche en WebP dans un mail s’afficherait en carrĂ© vide chez une partie de tes gagnants. D’oĂč le JPEG en double, rĂ©servĂ© Ă  l’email.

Le poids

Tes PNG d’origine faisaient 14,1 Mo Ă  eux six (2,4 Mo piĂšce). Envoyer ça aurait mis 10 secondes Ă  charger sur un tĂ©lĂ©phone en 4G, pile au moment le plus important du jeu. AprĂšs conversion : 434 Ko pour les six, soit −97 %. J’ai mesurĂ© l’écart sur les zones de texte dorĂ©, c’est le point le plus fragile : 3,2/255 en moyenne, invisible Ă  l’Ɠil. Rien n’a Ă©tĂ© rognĂ©, ni recadrĂ©.

Le filet de sécurité

Le visuel du lot gagnĂ© est chargĂ© pendant que la roue tourne, donc il est dĂ©jĂ  prĂȘt Ă  la rĂ©vĂ©lation : aucun temps d’attente. Et si une image manquait ou ne se chargeait pas, l’écran repasse tout seul sur l’ancienne pastille dorĂ©e avec le nom du lot. Un gain doit toujours s’afficher.


LE POP-UP : POURQUOI IL EST DIFFÉRENT SUR TÉLÉPHONE

Sur ordinateur : le pop-up plein Ă©cran s’ouvre au bout de 5 secondes, exactement comme tu l’as demandĂ©.

Sur tĂ©lĂ©phone : un bandeau en bas de l’écran Ă  la place. Ce n’est pas un caprice de ma part — Google dĂ©classe les pages mobiles qui couvrent le contenu juste aprĂšs une arrivĂ©e depuis ses rĂ©sultats de recherche. Tu es en 6ᔉ position du bloc local, la derniĂšre chose Ă  faire est de donner un motif de dĂ©classement Ă  Google.

Le bandeau reste trĂšs visible, s’anime, et ouvre exactement la mĂȘme roue en plein Ă©cran dĂšs qu’on le touche. À partir de lĂ  c’est le visiteur qui a demandĂ©, donc plus aucun risque.

Un bouton 🎁 permanent est aussi ajoutĂ© Ă  cĂŽtĂ© de tes boutons WhatsApp et Instagram, sur toutes les pages : ceux qui ont fermĂ© le pop-up peuvent revenir jouer quand ils veulent.


OÙ LA ROUE APPARAÎT (ET OÙ ELLE N’APPARAÎT PAS)

Elle n’est PAS dans l’application AurĂ©a. L’app est un projet Ă  part (aurea.natachalaurevoyance.fr) et je n’y ai pas touchĂ©.

Page Pop-up auto Bouton 🎁
Accueil oui oui
Articles de blog + liste oui oui
ÉvĂ©nements oui oui
RĂšglement du jeu non oui
/aurea/ (page de présentation) non oui
/aurea/guide/ non non

Sur /aurea/, le pop-up est coupĂ© : cette page a un seul travail, envoyer les gens dans l’app. Un pop-up qui s’ouvre par-dessus lui prend sa place. Le bouton 🎁 reste, pour qui veut jouer.

Pour couper le pop-up sur une autre page, ajouter data-popup="non" sur la ligne de script :

<script src="/assets/js/roue.js" data-popup="non" defer></script>

POUR TESTER