256 lines
28 KiB
HTML
Executable File
256 lines
28 KiB
HTML
Executable File
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Ethica Methodology | WEVADS Arsenal</title>
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||
<style>
|
||
:root{--bg:#0a0e1a;--bg2:#111827;--bg3:#1a2236;--bg4:#1e293b;--tx:#e2e8f0;--t2:#94a3b8;--t3:#64748b;--cy:#22d3ee;--gn:#10b981;--rd:#ef4444;--or:#f59e0b;--pu:#a78bfa;--pk:#ec4899;--border:#1e293b}
|
||
*{margin:0;padding:0;box-sizing:border-box}
|
||
body{background:var(--bg);color:var(--tx);font-family:'Segoe UI',system-ui,sans-serif;min-height:100vh}
|
||
.hd{padding:16px 24px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
|
||
.hd h1{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}
|
||
.hd h1 span{color:var(--cy)}
|
||
.container{padding:20px 24px;max-width:1400px;margin:0 auto}
|
||
.tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--bg2);border-radius:10px;padding:4px;border:1px solid var(--border)}
|
||
.tab{padding:10px 20px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--t3);transition:.2s;display:flex;align-items:center;gap:6px}
|
||
.tab:hover{color:var(--tx)}.tab.active{background:rgba(34,211,238,.12);color:var(--cy)}
|
||
.tab-panel{display:none}.tab-panel.active{display:block}
|
||
.card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}
|
||
.card h2{font-size:16px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px;color:var(--cy)}
|
||
.card h3{font-size:14px;font-weight:600;margin:12px 0 8px;color:var(--tx)}
|
||
.card p{font-size:13px;line-height:1.7;color:var(--t2);margin-bottom:8px}
|
||
.card ul{list-style:none;padding:0}.card li{font-size:13px;color:var(--t2);padding:4px 0 4px 20px;position:relative;line-height:1.6}
|
||
.card li::before{content:'✓';position:absolute;left:0;color:var(--gn);font-weight:700}
|
||
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
|
||
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
|
||
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
|
||
.st{background:var(--bg3);border-radius:10px;padding:16px;text-align:center}
|
||
.st .v{font-size:24px;font-weight:800;font-family:'JetBrains Mono',monospace}
|
||
.st .l{font-size:10px;color:var(--t3);text-transform:uppercase;margin-top:4px}
|
||
.badge{padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;display:inline-block}
|
||
.b-gn{background:rgba(16,185,129,.15);color:var(--gn)}.b-cy{background:rgba(34,211,238,.15);color:var(--cy)}
|
||
.b-or{background:rgba(245,158,11,.15);color:var(--or)}.b-pu{background:rgba(167,139,250,.15);color:var(--pu)}
|
||
.b-pk{background:rgba(236,72,153,.15);color:var(--pk)}.b-rd{background:rgba(239,68,68,.15);color:var(--rd)}
|
||
table{width:100%;border-collapse:collapse;margin:8px 0}
|
||
th{background:var(--bg3);padding:10px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--t2);border-bottom:1px solid var(--border)}
|
||
td{padding:8px 12px;border-bottom:1px solid rgba(30,41,59,.3);font-size:13px}
|
||
tr:hover{background:rgba(34,211,238,.03)}
|
||
.sim-box{background:var(--bg3);border:2px solid var(--cy);border-radius:12px;padding:24px}
|
||
.sim-row{display:flex;gap:16px;margin-bottom:16px;align-items:end;flex-wrap:wrap}
|
||
.sim-field{flex:1;min-width:180px}
|
||
.sim-field label{display:block;font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
|
||
.sim-field input,.sim-field select{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--tx);font-size:14px;font-family:'JetBrains Mono',monospace}
|
||
.sim-field input:focus,.sim-field select:focus{outline:none;border-color:var(--cy)}
|
||
.btn{padding:10px 20px;border-radius:8px;border:none;cursor:pointer;font-size:13px;font-weight:700;transition:.2s;display:inline-flex;align-items:center;gap:6px}
|
||
.btn-cy{background:var(--cy);color:var(--bg)}.btn-cy:hover{filter:brightness(1.1)}
|
||
.result-box{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:20px;margin-top:16px}
|
||
.price-big{font-size:36px;font-weight:800;color:var(--cy);font-family:'JetBrains Mono',monospace}
|
||
.price-label{font-size:11px;color:var(--t3);text-transform:uppercase}
|
||
.price-detail{font-size:12px;color:var(--t2);margin-top:4px;font-family:'JetBrains Mono',monospace}
|
||
.flow{display:flex;align-items:center;gap:4px;margin:16px 0;flex-wrap:wrap}
|
||
.flow-step{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:12px 16px;text-align:center;flex:1;min-width:120px}
|
||
.flow-step .fs-icon{font-size:24px;margin-bottom:4px}
|
||
.flow-step .fs-title{font-size:11px;font-weight:700;color:var(--cy)}
|
||
.flow-step .fs-desc{font-size:10px;color:var(--t3);margin-top:2px}
|
||
.flow-arrow{color:var(--t3);font-size:18px}
|
||
.compliance-card{background:var(--bg3);border-radius:10px;padding:16px;border-left:3px solid var(--gn)}
|
||
.compliance-card h4{font-size:13px;font-weight:700;color:var(--gn);margin-bottom:6px}
|
||
.compliance-card p{font-size:12px;color:var(--t2);line-height:1.6}
|
||
.sms-rate{display:flex;align-items:center;gap:12px;background:var(--bg3);border-radius:8px;padding:12px 16px;margin-bottom:8px}
|
||
.sms-rate .flag{font-size:22px}.sms-rate .country{font-size:13px;font-weight:600;flex:1}
|
||
.sms-rate .rate{font-size:16px;font-weight:800;color:var(--cy);font-family:'JetBrains Mono',monospace}
|
||
.faq-item{border-bottom:1px solid var(--border);padding:12px 0}
|
||
.faq-q{font-size:14px;font-weight:700;color:var(--tx);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
|
||
.faq-q:hover{color:var(--cy)}.faq-a{font-size:13px;color:var(--t2);line-height:1.7;padding-top:8px;display:none}
|
||
.faq-item.open .faq-a{display:block}.faq-item.open .faq-q .arrow{transform:rotate(90deg)}.faq-q .arrow{transition:.2s;color:var(--t3)}
|
||
@media(max-width:1200px){.g2,.g3{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,1fr)}}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="hd"><h1>📐 <span>Ethica — Methodology & Pricing</span></h1><div style="display:flex;gap:8px"><span class="badge b-gn"><i class="fas fa-shield-alt"></i> Compliant</span><span class="badge b-cy"><i class="fas fa-envelope"></i> Email + SMS</span></div></div>
|
||
<div class="container">
|
||
<div class="tabs">
|
||
<div class="tab active" onclick="showTab('methodology')"><i class="fas fa-book"></i> Méthodologie</div>
|
||
<div class="tab" onclick="showTab('coverage')"><i class="fas fa-globe"></i> Couverture HCP</div>
|
||
<div class="tab" onclick="showTab('sms')"><i class="fas fa-sms"></i> Canal SMS</div>
|
||
<div class="tab" onclick="showTab('simulator')"><i class="fas fa-calculator"></i> Simulateur Prix</div>
|
||
<div class="tab" onclick="showTab('compliance')"><i class="fas fa-shield-alt"></i> Compliance</div>
|
||
<div class="tab" onclick="showTab('faq')"><i class="fas fa-question-circle"></i> FAQ Client</div>
|
||
</div>
|
||
|
||
<!-- TAB METHODOLOGY -->
|
||
<div class="tab-panel active" id="panel-methodology">
|
||
<div class="card"><h2><i class="fas fa-project-diagram"></i> Pipeline de Campagne E2E</h2><p>Chaque campagne suit un pipeline contrôlé de bout en bout :</p>
|
||
<div class="flow">
|
||
<div class="flow-step"><div class="fs-icon">🎯</div><div class="fs-title">Ciblage</div><div class="fs-desc">Spécialités × Pays × Ville</div></div><span class="flow-arrow">→</span>
|
||
<div class="flow-step"><div class="fs-icon">✅</div><div class="fs-title">Qualification</div><div class="fs-desc">Vérif. HCP + Email + Tel</div></div><span class="flow-arrow">→</span>
|
||
<div class="flow-step"><div class="fs-icon">📧</div><div class="fs-title">E-Consent</div><div class="fs-desc">Opt-in avant envoi</div></div><span class="flow-arrow">→</span>
|
||
<div class="flow-step"><div class="fs-icon">🚀</div><div class="fs-title">Envoi</div><div class="fs-desc">Email + SMS multi-canal</div></div><span class="flow-arrow">→</span>
|
||
<div class="flow-step"><div class="fs-icon">📊</div><div class="fs-title">Tracking</div><div class="fs-desc">Opens, Clicks, Conv.</div></div><span class="flow-arrow">→</span>
|
||
<div class="flow-step"><div class="fs-icon">📋</div><div class="fs-title">Reporting</div><div class="fs-desc">KPIs par campagne</div></div>
|
||
</div></div>
|
||
<div class="g2">
|
||
<div class="card"><h2><i class="fas fa-database"></i> 1. Constitution de la Base</h2>
|
||
<p>Base constituée exclusivement de <strong>sources publiques professionnelles légales</strong> :</p>
|
||
<h3>Sources Officielles</h3><ul><li>Conseil National de l'Ordre des Médecins (CNOM) — MA, TN, DZ</li><li>Conseil de l'Ordre des Pharmaciens (CNOP)</li><li>Conseil de l'Ordre des Médecins Dentistes (CNOMD)</li><li>Registres professionnels nationaux</li></ul>
|
||
<h3>Sources Médicales</h3><ul><li>DabaDoc, Doctoralia, Avicenna (annuaires médicaux)</li><li>Annuaires d'établissements de santé publics et privés</li><li>Partenariats éditeurs spécialisés santé</li></ul>
|
||
<h3>Enrichissement IA</h3><ul><li>IA de qualification HCP depuis sources légales</li><li>Cross-validation automatique multi-sources</li><li>Détection doublons et normalisation</li></ul></div>
|
||
<div class="card"><h2><i class="fas fa-check-double"></i> 2. Vérification HCP — 5 Étapes</h2>
|
||
<h3>Étape 1 — Validation Identité</h3><ul><li>Croisement avec registres officiels de l'Ordre</li><li>Vérification numéro d'inscription</li><li>Confirmation spécialité et lieu d'exercice</li></ul>
|
||
<h3>Étape 2 — Validation Email</h3><ul><li>Vérification MX record du domaine</li><li>Test SMTP de délivrabilité</li><li>Classification : Valid / Risky / Catch-all / Invalid</li></ul>
|
||
<h3>Étape 3 — Validation Téléphone</h3><ul><li>Format international (+212, +216, +213)</li><li>Détection mobile vs fixe</li><li>Eligibilité SMS (mobile uniquement)</li></ul>
|
||
<h3>Étape 4 — Déduplication Cross-Source</h3><ul><li>Détection doublons multi-critères</li><li>Fusion des fiches multi-sources</li></ul>
|
||
<h3>Étape 5 — E-Consentement</h3><ul><li>Opt-in avec lien sécurisé (consent.wevup.app)</li><li>Horodatage : date, IP, méthode</li><li>Preuve exportable (audit trail)</li></ul></div>
|
||
</div>
|
||
<div class="g2">
|
||
<div class="card"><h2><i class="fas fa-sync-alt"></i> 3. Fréquence de Mise à Jour</h2>
|
||
<table><tr><th>Process</th><th>Fréquence</th><th>Action</th></tr>
|
||
<tr><td>Bounce processing</td><td><span class="badge b-gn">Temps réel</span></td><td>Suppression auto emails invalides après envoi</td></tr>
|
||
<tr><td>SMTP/MX validation</td><td><span class="badge b-cy">Hebdomadaire</span></td><td>Re-vérification technique emails actifs</td></tr>
|
||
<tr><td>Cross-validation Ordres</td><td><span class="badge b-or">Trimestrielle</span></td><td>Croisement registres officiels</td></tr>
|
||
<tr><td>Purge inactifs</td><td><span class="badge b-pu">Mensuelle</span></td><td>Suppression HCP inactifs > 6 mois</td></tr>
|
||
<tr><td>Enrichissement</td><td><span class="badge b-pk">Continue</span></td><td>Ajout nouveaux HCP via IA</td></tr>
|
||
<tr><td>Scraping annuaires</td><td><span class="badge b-cy">Bimensuelle</span></td><td>Re-scan <span id="src-count-inline">30</span> sources</td></tr></table></div>
|
||
<div class="card"><h2><i class="fas fa-inbox"></i> 4. Délivrabilité & KPIs</h2>
|
||
<table><tr><th>KPI</th><th>Industrie Pharma</th><th>Notre Objectif</th></tr>
|
||
<tr><td>Délivrabilité</td><td style="color:var(--t3)">85-90%</td><td style="color:var(--gn);font-weight:700">>95%</td></tr>
|
||
<tr><td>Open Rate</td><td style="color:var(--t3)">15-20%</td><td style="color:var(--gn);font-weight:700">25-35%</td></tr>
|
||
<tr><td>CTR</td><td style="color:var(--t3)">2-4%</td><td style="color:var(--gn);font-weight:700">5-8%</td></tr>
|
||
<tr><td>Bounce</td><td style="color:var(--t3)">5-10%</td><td style="color:var(--gn);font-weight:700"><2%</td></tr>
|
||
<tr><td>Spam Complaint</td><td style="color:var(--t3)">0.1-0.3%</td><td style="color:var(--gn);font-weight:700"><0.05%</td></tr></table>
|
||
<p style="margin-top:8px"><strong>Pourquoi ces résultats ?</strong></p>
|
||
<ul><li>Base qualifiée — uniquement HCP vérifiés</li><li>Infrastructure email propriétaire avec IP warm-up dédié</li><li>Rotation domaines + ISP-specific routing</li><li>Consentement préalable = meilleur engagement</li></ul></div>
|
||
</div></div>
|
||
|
||
<!-- TAB COVERAGE -->
|
||
<div class="tab-panel" id="panel-coverage">
|
||
<div class="g4" id="cov-stats">
|
||
<div class="st"><div class="v" style="color:var(--cy)" id="k-total-hcp">—</div><div class="l">Total HCPs Base</div></div>
|
||
<div class="st"><div class="v" style="color:var(--gn)" id="k-target">—</div><div class="l">Cibles Ethica</div></div>
|
||
<div class="st"><div class="v" style="color:var(--pu)" id="k-with-email">—</div><div class="l">Avec Email</div></div>
|
||
<div class="st"><div class="v" style="color:var(--pk)" id="k-with-phone">—</div><div class="l">Avec Téléphone (SMS)</div></div>
|
||
</div>
|
||
<div class="card" style="margin-top:16px"><h2><i class="fas fa-th"></i> Matrice de Couverture — Spécialités Ethica × Pays</h2>
|
||
<p>Nombre de HCPs par spécialité et par pays (base brute avant filtrage) :</p>
|
||
<div style="overflow-x:auto"><table><thead><tr><th>Spécialité</th><th>🇲🇦 Maroc</th><th>🇩🇿 Algérie</th><th>🇹🇳 Tunisie</th><th>Total</th></tr></thead>
|
||
<tbody id="matrix-body"><tr><td colspan="5" style="text-align:center;color:var(--t3);padding:20px">Chargement...</td></tr></tbody></table></div></div>
|
||
<div class="card"><h2><i class="fas fa-info-circle"></i> Note sur les Volumes</h2>
|
||
<p>Les chiffres ci-dessus = <strong>base brute totale</strong>. Après qualification complète (vérification HCP, validation email, déduplication, e-consentement), les volumes exploitables seront <strong>significativement réduits</strong>. C'est cette approche qualitative qui garantit les KPIs supérieurs.</p></div>
|
||
</div>
|
||
|
||
<!-- TAB SMS -->
|
||
<div class="tab-panel" id="panel-sms">
|
||
<div class="g2">
|
||
<div class="card"><h2><i class="fas fa-sms"></i> Canal SMS — Campagnes HCP</h2>
|
||
<p>Canal complémentaire à l'email pour les communications à fort taux de lecture.</p>
|
||
<h3>Avantages SMS HCP</h3><ul><li>Taux de lecture > 95% (vs 25% email)</li><li>Délai de lecture < 3 min (vs 6h email)</li><li>Idéal : invitations congrès, alertes produit, rappels</li><li>Stratégie omnicanale Email + SMS</li><li>Fonctionne sans connexion internet</li></ul>
|
||
<h3>Types de Campagnes</h3>
|
||
<table><tr><th>Type</th><th>Usage</th><th>Exemple</th></tr>
|
||
<tr><td><span class="badge b-cy">Marketing</span></td><td>Promotion produit</td><td>"Découvrez [Produit] — info sur [lien]"</td></tr>
|
||
<tr><td><span class="badge b-gn">Invitation</span></td><td>Congrès / Webinaire</td><td>"Invitation au webinaire [X] le [date]"</td></tr>
|
||
<tr><td><span class="badge b-or">Rappel</span></td><td>Follow-up</td><td>"Rappel : votre invitation expire demain"</td></tr>
|
||
<tr><td><span class="badge b-pu">Consentement</span></td><td>Opt-in SMS</td><td>"Confirmez : répondez OUI"</td></tr></table></div>
|
||
<div><div class="card"><h2><i class="fas fa-money-bill"></i> Tarification SMS</h2>
|
||
<div class="sms-rate"><span class="flag">🇲🇦</span><span class="country">Maroc</span><span class="rate">0,04 €</span></div>
|
||
<div class="sms-rate"><span class="flag">🇹🇳</span><span class="country">Tunisie</span><span class="rate">0,05 €</span></div>
|
||
<div class="sms-rate"><span class="flag">🇩🇿</span><span class="country">Algérie</span><span class="rate">0,06 €</span></div>
|
||
<table style="margin-top:16px"><tr><th>Volume/mois</th><th>Coût estimé</th></tr>
|
||
<tr><td>5 000 SMS</td><td style="color:var(--cy);font-weight:700">~250 €</td></tr>
|
||
<tr><td>10 000 SMS</td><td style="color:var(--cy);font-weight:700">~500 €</td></tr>
|
||
<tr><td>25 000 SMS</td><td style="color:var(--cy);font-weight:700">~1 250 €</td></tr></table></div>
|
||
<div class="card"><h2><i class="fas fa-mobile-alt"></i> Couverture SMS</h2>
|
||
<div class="st" style="margin-bottom:12px"><div class="v" style="color:var(--pk)" id="k-sms-phones">—</div><div class="l">HCPs avec mobile validé</div></div>
|
||
<h3>Infrastructure</h3><ul><li>10 providers SMS multi-routes</li><li>Sender ID personnalisable par marque</li><li>Opt-out auto (STOP SMS)</li><li>Reporting temps réel</li></ul></div></div>
|
||
</div></div>
|
||
|
||
<!-- TAB SIMULATOR -->
|
||
<div class="tab-panel" id="panel-simulator">
|
||
<div class="sim-box"><h2 style="color:var(--cy);margin-bottom:16px"><i class="fas fa-calculator"></i> Simulateur de Prix — Email + SMS</h2>
|
||
<div class="sim-row">
|
||
<div class="sim-field"><label>Emails par mois</label><input type="number" id="sim-emails" value="10000" min="0" step="1000" onchange="simulate()"></div>
|
||
<div class="sim-field"><label>SMS par mois</label><input type="number" id="sim-sms" value="5000" min="0" step="500" onchange="simulate()"></div>
|
||
<div class="sim-field"><label>Nombre de marques</label><select id="sim-brands" onchange="simulate()"><option value="1">1 marque</option><option value="2">2 marques</option><option value="3">3 marques</option><option value="5">5 marques</option><option value="8">8 marques</option><option value="10" selected>10 marques</option></select></div>
|
||
<div class="sim-field"><label>Durée (mois)</label><select id="sim-months" onchange="simulate()"><option value="1">1 mois</option><option value="3">3 mois</option><option value="6">6 mois</option><option value="12" selected>12 mois</option></select></div>
|
||
<div><button class="btn btn-cy" onclick="simulate()"><i class="fas fa-calculator"></i> Simuler</button></div>
|
||
</div>
|
||
<div class="result-box" id="sim-results">
|
||
<div class="g4">
|
||
<div class="st"><div class="price-label">Email / mois</div><div class="price-big" id="res-email">—</div><div class="price-detail" id="res-email-detail"></div></div>
|
||
<div class="st"><div class="price-label">SMS / mois</div><div class="price-big" id="res-sms" style="color:var(--pk)">—</div><div class="price-detail" id="res-sms-detail"></div></div>
|
||
<div class="st"><div class="price-label">Total Mensuel</div><div class="price-big" id="res-monthly" style="color:var(--gn)">—</div><div class="price-detail" id="res-discount"></div></div>
|
||
<div class="st" style="border:2px solid var(--cy)"><div class="price-label">Total Période</div><div class="price-big" id="res-total">—</div><div class="price-detail" id="res-period"></div></div>
|
||
</div>
|
||
<div class="g2" style="margin-top:16px">
|
||
<div class="card" style="margin:0"><h3 style="color:var(--or)"><i class="fas fa-chart-bar"></i> CPM (Cost Per Mille)</h3>
|
||
<table><tr><td>Email CPM</td><td style="font-weight:700;color:var(--cy)" id="res-cpm-email">—</td><td style="color:var(--t3)">vs marché: 150-300€</td></tr>
|
||
<tr><td>SMS CPM</td><td style="font-weight:700;color:var(--pk)" id="res-cpm-sms">—</td><td style="color:var(--t3)">vs marché: 40-80€</td></tr></table></div>
|
||
<div class="card" style="margin:0"><h3 style="color:var(--gn)"><i class="fas fa-tags"></i> Remise Multi-Marques</h3>
|
||
<table><tr><td>2 marques</td><td><span class="badge b-or">-5%</span></td></tr>
|
||
<tr><td>3-4 marques</td><td><span class="badge b-cy">-10%</span></td></tr>
|
||
<tr><td>5+ marques</td><td><span class="badge b-gn">-15%</span></td></tr></table></div>
|
||
</div></div></div>
|
||
<div class="card" style="margin-top:16px"><h2><i class="fas fa-receipt"></i> Grille Tarifaire Email</h2>
|
||
<table><tr><th>Tranche</th><th>Volume/mois</th><th>Tarif</th><th>CPM</th></tr>
|
||
<tr><td>1</td><td>1 à 15 000</td><td style="color:var(--cy);font-weight:700">3 000 €</td><td>200 €</td></tr>
|
||
<tr><td>2</td><td>15 001 à 30 000</td><td style="color:var(--cy);font-weight:700">6 000 €</td><td>200 €</td></tr>
|
||
<tr><td>3</td><td>30 001 à 45 000</td><td style="color:var(--cy);font-weight:700">9 000 €</td><td>200 €</td></tr>
|
||
<tr><td>N</td><td>+15 000</td><td style="color:var(--cy);font-weight:700">+3 000 €</td><td>200 €</td></tr></table>
|
||
<p style="margin-top:8px;font-size:12px;color:var(--t3)">Tarifs = volume total emails/mois, toutes campagnes et marques confondues. Remise multi-marques applicable.</p></div>
|
||
</div>
|
||
|
||
<!-- TAB COMPLIANCE -->
|
||
<div class="tab-panel" id="panel-compliance">
|
||
<div class="g3">
|
||
<div class="compliance-card"><h4>🇲🇦 Maroc — Loi 09-08</h4><p>CNDP. Déclaration préalable, consentement éclairé, droit d'accès/rectification/suppression.</p></div>
|
||
<div class="compliance-card"><h4>🇹🇳 Tunisie — Loi 63-2004</h4><p>INPDP. Consentement explicite, notification de traitement, droit d'opposition.</p></div>
|
||
<div class="compliance-card"><h4>🇩🇿 Algérie — Loi 18-07</h4><p>ANPDP. Déclaration obligatoire, consentement libre, finalité déterminée.</p></div>
|
||
</div>
|
||
<div class="card" style="margin-top:16px"><h2><i class="fas fa-lock"></i> Dispositif de Consentement</h2>
|
||
<div class="g2"><div><h3>E-Consent Email</h3><ul><li>URL : consent.wevup.app (SSL)</li><li>Token unique par contact</li><li>Opt-in / Opt-out / Préférences</li><li>Horodatage complet (date, IP, méthode)</li><li>Preuve exportable (audit)</li></ul></div>
|
||
<div><h3>E-Consent SMS</h3><ul><li>Opt-in par réponse SMS ("OUI"/"STOP")</li><li>Double opt-in : confirmation SMS</li><li>Désabonnement instantané (STOP)</li><li>Gestion séparée email/SMS</li><li>Registre auditable</li></ul></div></div></div>
|
||
<div class="card"><h2><i class="fas fa-file-contract"></i> Engagements Contractuels</h2>
|
||
<table><tr><th>Engagement</th><th>Détail</th></tr>
|
||
<tr><td>Base de données</td><td>Propriété WEVAL — aucune cession. Client = accès résultats campagne uniquement.</td></tr>
|
||
<tr><td>Exclusivité HCP</td><td>100% professionnels de santé vérifiés — zéro contact grand public.</td></tr>
|
||
<tr><td>SLA Délivrabilité</td><td>>95% délivrabilité. Sous-performance = re-envoi gratuit.</td></tr>
|
||
<tr><td>Confidentialité</td><td>NDA standard. Créatifs = propriété client.</td></tr>
|
||
<tr><td>Résiliation</td><td>Préavis 30 jours. Pas d'engagement minimum (hors pilote).</td></tr></table></div>
|
||
</div>
|
||
|
||
<!-- TAB FAQ -->
|
||
<div class="tab-panel" id="panel-faq">
|
||
<div class="card"><h2><i class="fas fa-question-circle"></i> FAQ Client — Ethica</h2>
|
||
<div class="faq-item open"><div class="faq-q" onclick="toggleFaq(this)">La base semble dépasser l'univers de référence. Pourquoi ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a">La base partagée était <strong>brute et illustrative</strong>. Elle inclut tous les contacts identifiés sans filtrage. Après qualification complète (vérification HCP, validation email/tel, déduplication, e-consentement), les volumes exploitables seront significativement réduits. Ex : sur 175K généralistes bruts → 15-30K qualifiés et consentants.</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Vos tarifs sont 3x supérieurs à nos fournisseurs actuels. <span class="arrow">▶</span></div>
|
||
<div class="faq-a">Nos tarifs = prestation complète (qualification HCP, infra propriétaire, consentement conforme, tracking). Les KPIs sont supérieurs (>25% open rate vs 15% marché). Le <strong>coût par contact engagé</strong> est inférieur. 1 email lu en inbox > 3 emails en spam. Remise jusqu'à <strong>-15% multi-marques</strong> (10 marques Ethica).</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Tarifs par campagne ou par mois ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a">Volume <strong>total d'emails/mois</strong>, toutes campagnes et marques confondues. Ex : 2 campagnes × 5 000 = 10 000 emails = 3 000 €/mois (tranche 1). Plus avantageux pour les clients multi-marques.</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Proposez-vous des campagnes SMS ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a">Oui. 10 providers SMS configurés (MA/TN/DZ). Tarifs : 0,04€ (MA), 0,05€ (TN), 0,06€ (DZ)/SMS. Idéal en complément email : invitations congrès, rappels, alertes produit. Taux lecture >95%.</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Comment gérez-vous le consentement ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a">Opt-in obligatoire avant envoi via consent.wevup.app (token unique, horodatage, preuve exportable). Conforme Loi 09-08 (MA), 63-2004 (TN), 18-07 (DZ). Opt-out temps réel. Gestion séparée email/SMS.</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Phase pilote possible ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a">Oui : 1-2 spécialités × 1 pays pendant 1-2 mois. Tarif standard, sans engagement. Valide les KPIs avant déploiement large.</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Quelle timeline de déploiement ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a"><strong>Q4 2026</strong> : Pilote 1-2 marques. <strong>Q1 2027</strong> : Déploiement multi-marques + intégration BP 2027.</div></div>
|
||
<div class="faq-item"><div class="faq-q" onclick="toggleFaq(this)">Quels formats de campagne ? <span class="arrow">▶</span></div>
|
||
<div class="faq-a">Email HTML responsive (templates fournis ou custom), SMS texte (160 car.), campagnes omnicanales (email + SMS séquencé). Client fournit créatifs, nous gérons intégration/envoi/suivi.</div></div>
|
||
</div></div>
|
||
</div>
|
||
|
||
<script>
|
||
const API='api/ethica-methodology-api.php';
|
||
function fmt(n){return n!=null?Number(n).toLocaleString('fr-FR'):'—'}
|
||
function fmtEur(n){return n!=null?Number(n).toLocaleString('fr-FR')+' €':'—'}
|
||
function showTab(id){document.querySelectorAll('.tab').forEach(t=>t.classList.remove('active'));document.querySelectorAll('.tab-panel').forEach(p=>p.classList.remove('active'));document.getElementById('panel-'+id).classList.add('active');event.currentTarget.classList.add('active')}
|
||
function toggleFaq(el){el.parentElement.classList.toggle('open')}
|
||
async function loadCoverage(){try{const r=await fetch(API+'?action=coverage');const d=await r.json();document.getElementById('k-total-hcp').textContent=fmt(d.total_hcp);document.getElementById('k-target').textContent=fmt(d.target_total);document.getElementById('k-with-email').textContent=fmt(d.with_email);document.getElementById('k-with-phone').textContent=fmt(d.with_phone);document.getElementById('k-sms-phones').textContent=fmt(d.with_phone);if(d.sources)document.getElementById('src-count-inline').textContent=d.sources;const specs={};(d.target_specs||[]).forEach(s=>{if(!specs[s.specialite])specs[s.specialite]={MA:0,DZ:0,TN:0,total:0};specs[s.specialite][s.pays]=parseInt(s.c);specs[s.specialite].total+=parseInt(s.c)});const labels={'generaliste':'Médecin Généraliste','pharmacien':'Pharmacien','rhumatologue':'Rhumatologue','orthopediste':'Orthopédiste','pneumologue':'Pneumologue','allergologue':'Allergologue','orl':'ORL','gastro-enterologue':'Gastro-entérologue','pediatre':'Pédiatre','dentiste':'Dentiste','gynecologue':'Gynécologue','cardiologue':'Cardiologue'};let html='',tMA=0,tDZ=0,tTN=0,tAll=0;Object.keys(specs).sort().forEach(k=>{const s=specs[k];tMA+=s.MA;tDZ+=s.DZ;tTN+=s.TN;tAll+=s.total;html+=`<tr><td style="font-weight:600">${labels[k]||k}</td><td style="text-align:center">${fmt(s.MA)}</td><td style="text-align:center">${fmt(s.DZ)}</td><td style="text-align:center">${fmt(s.TN)}</td><td style="text-align:center;font-weight:700;color:var(--cy)">${fmt(s.total)}</td></tr>`});html+=`<tr style="background:var(--bg3);font-weight:700"><td>TOTAL</td><td style="text-align:center;color:var(--gn)">${fmt(tMA)}</td><td style="text-align:center;color:var(--gn)">${fmt(tDZ)}</td><td style="text-align:center;color:var(--gn)">${fmt(tTN)}</td><td style="text-align:center;color:var(--cy)">${fmt(tAll)}</td></tr>`;document.getElementById('matrix-body').innerHTML=html}catch(e){console.error(e)}}
|
||
function simulate(){const emails=parseInt(document.getElementById('sim-emails').value)||0;const sms=parseInt(document.getElementById('sim-sms').value)||0;const brands=parseInt(document.getElementById('sim-brands').value)||1;const months=parseInt(document.getElementById('sim-months').value)||12;const emailTranches=Math.max(0,Math.ceil(emails/15000));const emailCost=emailTranches*3000;const smsCost=Math.round(sms*0.05);let discount=0;if(brands>=5)discount=0.15;else if(brands>=3)discount=0.10;else if(brands>=2)discount=0.05;const monthly=Math.round((emailCost+smsCost)*(1-discount));document.getElementById('res-email').textContent=fmtEur(emailCost);document.getElementById('res-email-detail').textContent=emailTranches+' tranche(s) × 3 000 €';document.getElementById('res-sms').textContent=fmtEur(smsCost);document.getElementById('res-sms-detail').textContent=fmt(sms)+' SMS × 0,05 € moy.';document.getElementById('res-monthly').textContent=fmtEur(monthly);document.getElementById('res-discount').textContent=discount>0?'Remise '+discount*100+'% ('+brands+' marques)':'Sans remise';document.getElementById('res-total').textContent=fmtEur(monthly*months);document.getElementById('res-period').textContent='Sur '+months+' mois';document.getElementById('res-cpm-email').textContent=emails>0?fmtEur(Math.round(emailCost/emails*1000)):'—';document.getElementById('res-cpm-sms').textContent=sms>0?fmtEur(Math.round(smsCost/sms*1000)):'—'}
|
||
loadCoverage();simulate();
|
||
</script>
|
||
</body>
|
||
</html>
|