Opt-In / Opt-Out
Les utilisateurs peuvent s'inscrire ou se désinscrire des fonctionnalités directement via le SDK : QMTracker.optIn('fonctionnalite-beta') / QMTracker.optOut('fonctionnalite-beta'). Utile pour les programmes bêta et les préférences contrôlées par l'utilisateur.
Ce que vous verrez
L'onglet Opt-in de la page de détail d'un flag affiche :
- La liste des utilisateurs ayant effectué un opt-in manuel (inscrits volontairement)
- La liste des utilisateurs ayant effectué un opt-out manuel (désinscrit volontairement)
- Pour chaque entrée :
userId, date de l'action, et source (SDKoumanuel via tableau de bord) - Un bouton Ajouter un opt-in pour inscrire manuellement un utilisateur depuis le tableau de bord
- Un bouton Retirer pour annuler un opt-in ou un opt-out existant
Un utilisateur en opt-in verra toujours la fonctionnalité, même s'il n'est pas dans le segment ciblé ou dans le groupe de déploiement progressif. Un utilisateur en opt-out ne verra jamais la fonctionnalité, même s'il correspond à toutes les règles de ciblage.
Comment l'utiliser
Scénario 1 — Programme bêta volontaire
Exposez un bouton "Rejoindre le bêta" dans votre interface et appelez optIn() lorsque l'utilisateur clique dessus :
document.getElementById('btn-rejoindre-beta').addEventListener('click', () => {
QMTracker.optIn('nouvelle-interface-tableau-de-bord');
// Recharger la page ou mettre à jour l'interface immédiatement
window.location.reload();
});
Scénario 2 — Option de désactivation dans les paramètres
Permettez aux utilisateurs de désactiver une fonctionnalité expérimentale depuis leurs préférences :
document.getElementById('toggle-mode-experimental').addEventListener('change', (e) => {
if (e.target.checked) {
QMTracker.optIn('mode-experimental');
} else {
QMTracker.optOut('mode-experimental');
}
});
Scénario 3 — Opt-in au chargement basé sur une préférence stockée
// Lire la préférence stockée (ex. en base de données ou localStorage)
const utilisateur = await recupererProfilUtilisateur();
if (utilisateur.beta_actif) {
QMTracker.optIn('fonctionnalites-beta');
}
// Maintenant getFlag() reflètera le choix de l'utilisateur
const isEnabled = await QMTracker.getFlag('fonctionnalites-beta');
Vérifier l'état de l'opt-in dans le tableau de bord
Pour qu'un opt-in soit visible dans le tableau de bord, l'utilisateur doit être identifié via QMTracker.identify(). Sans identification, l'opt-in est stocké localement dans le navigateur mais n'est pas associé à un profil utilisateur.
Priorité de l'opt-in/opt-out
L'opt-in et l'opt-out sont les règles les plus prioritaires dans la chaîne d'évaluation d'un flag :
| Situation | Résultat de getFlag() |
|---|---|
| Opt-out actif | Toujours false (ou control pour multivariant) |
| Opt-in actif | Toujours true (ou première variante non-control) |
| Règle de ciblage correspondante | true |
| Dans le groupe de déploiement | true |
| Hors groupe de déploiement | false |
| Flag désactivé | Toujours false |
Opt-in manuel depuis le tableau de bord
Les administrateurs peuvent inscrire manuellement un utilisateur depuis l'onglet Opt-in :
- Cliquez sur Ajouter un opt-in.
- Saisissez le
userIdde l'utilisateur à inscrire. - Cliquez sur Confirmer.
L'utilisateur est immédiatement ajouté au groupe exposé, même s'il n'a pas cliqué lui-même sur un bouton dans l'interface.
Condition de validation
Vous obtenez cet achievement lorsque : au moins un appel à
QMTracker.optIn()ouQMTracker.optOut()est reçu par QuickMonitoring depuis un navigateur, pour un flag existant sur ce site.
Problèmes courants
optIn() ne semble pas avoir d'effet — getFlag() retourne toujours false.
Vérifiez que le flag est globalement activé dans le tableau de bord. Un flag désactivé retourne toujours false, même pour les utilisateurs ayant fait un opt-in. Activez d'abord le flag, puis vérifiez à nouveau.
L'opt-in disparaît après une actualisation de page.
Si QMTracker.identify() n'est pas appelé, l'opt-in est stocké localement dans le navigateur (cookie ou localStorage). Si ce stockage local est effacé, l'opt-in est perdu. Pour une persistance garantie, appelez toujours identify() avant optIn().
Je veux retirer l'opt-in d'un utilisateur.
Appelez QMTracker.optOut('cle-du-flag') pour annuler un opt-in précédent, ou supprimez manuellement l'entrée depuis l'onglet Opt-in dans le tableau de bord.
Un utilisateur en opt-out voit quand même la fonctionnalité.
Vérifiez que le code évalue bien getFlag() après l'appel à optOut(). Si getFlag() est appelé en cache ou avant le chargement complet du SDK, la valeur mise en cache peut être true. Forcez une réévaluation si nécessaire.