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.
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.
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.
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.
Copier aurea-vercel/api/roue.js dans le dossier api/ de ton projet
Auréa (à cÎté de create-checkout.js), puis :
vercel --prod
â ïž 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 :
BREVO_SENDER â expĂ©diteur (dĂ©faut natachaweb.seo@gmail.com,
lâadresse vĂ©rifiĂ©e chez Brevo)EMAIL_NATACHA â oĂč tu reçois la notification de chaque gain
(dĂ©faut natachalaure.voyance@gmail.com)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.
jean+promo@gmail.com et j.e.a.n@gmail.com sont ramenĂ©s Ă la mĂȘme
adresse : jean@gmail.com. Câest de loin la triche la plus courante,
elle devient sans effet.| 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.
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);
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.
| 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.
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 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.
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.
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>
localStorage.clear(), puis rafraĂźchir.RoueCadeaux.ouvrir() dans la console,
ou cliquer le bouton đ.delete est en bas
de supabase-roue.sql.