Aller au contenu principal

Opt-In / Opt-Out

Open in QuickMonitoring→ Sites → [Votre Site] → Feature Flags → [Sélectionner un flag] → Opt-in

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 (SDK ou manuel 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 :

SituationRésultat de getFlag()
Opt-out actifToujours false (ou control pour multivariant)
Opt-in actifToujours true (ou première variante non-control)
Règle de ciblage correspondantetrue
Dans le groupe de déploiementtrue
Hors groupe de déploiementfalse
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 :

  1. Cliquez sur Ajouter un opt-in.
  2. Saisissez le userId de l'utilisateur à inscrire.
  3. 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() ou QMTracker.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.