Évaluation des Flags
Évaluez un flag dans votre code à l'aide du SDK : const enabled = await QMTracker.getFlag('ma-fonctionnalite'). Retourne true ou false selon l'état du flag et les règles de ciblage appliquées à l'utilisateur courant.
Ce que vous verrez
Dans la liste des feature flags, chaque flag affiche son état actuel (activé/désactivé) et son pourcentage de déploiement. Ces informations sont celles que le SDK retourne lors de l'évaluation côté client.
Lorsqu'un flag est évalué pour un utilisateur identifié, QuickMonitoring prend en compte, dans l'ordre :
- L'opt-in/opt-out individuel — si l'utilisateur s'est inscrit ou désinscrit manuellement, cette règle est prioritaire.
- Les conditions de ciblage — si des règles de ciblage correspondent à l'utilisateur, le flag s'applique à 100 % pour cet utilisateur.
- Le déploiement progressif — si aucune règle de ciblage ne s'applique, l'utilisateur est inclus ou exclu selon le pourcentage configuré (assignation déterministe).
- L'état global du flag — si le flag est désactivé,
getFlag()retourne toujoursfalse(ou la variantecontrolpour un flag multivariant), quelle que soit la configuration.
Comment l'utiliser
Étape 1 — S'assurer que le SDK est initialisé
Le SDK doit être initialisé avec votre siteId avant tout appel à getFlag(). Si vous avez déjà complété la phase d'installation du SDK, cette étape est déjà faite.
QMTracker.init('VOTRE_SITE_ID');
Étape 2 — Identifier l'utilisateur (recommandé)
Pour que les règles de ciblage et le déploiement déterministe fonctionnent correctement, identifiez l'utilisateur avant d'évaluer le flag :
QMTracker.identify('user-123', {
plan: 'pro',
country: 'FR'
});
Un utilisateur non identifié sera traité comme un visiteur anonyme. Les règles de ciblage basées sur des propriétés utilisateur ne s'appliqueront pas.
Étape 3 — Évaluer le flag
const isEnabled = await QMTracker.getFlag('ma-fonctionnalite');
if (isEnabled) {
// Activer la nouvelle fonctionnalité
afficherNouvelleInterface();
} else {
// Utiliser le comportement par défaut
afficherAncienneInterface();
}
getFlag() est asynchrone car il peut nécessiter une requête réseau pour synchroniser la configuration des flags depuis le serveur QuickMonitoring.
Étape 4 — Gérer le cas de chargement
Pendant le chargement initial du SDK, getFlag() peut prendre quelques millisecondes. Prévoyez un état de chargement dans votre interface :
async function initialiserPage() {
const isEnabled = await QMTracker.getFlag('nouvelle-barre-navigation');
if (isEnabled) {
document.getElementById('nav-v2').style.display = 'block';
document.getElementById('nav-v1').style.display = 'none';
}
}
initialiserPage();
Évaluation de plusieurs flags
Vous pouvez évaluer plusieurs flags indépendamment :
const [showBanner, enableDarkMode, useNewCheckout] = await Promise.all([
QMTracker.getFlag('banniere-promo'),
QMTracker.getFlag('mode-sombre'),
QMTracker.getFlag('nouveau-tunnel-paiement')
]);
Condition de validation
Vous obtenez cet achievement lorsque : au moins un appel à
QMTracker.getFlag()est reçu par QuickMonitoring depuis un navigateur réel ou simulé, pour un flag existant sur ce site.
Problèmes courants
getFlag() retourne toujours false.
Vérifiez que :
- Le flag est bien activé dans le tableau de bord (bascule verte).
- Le déploiement est supérieur à
0 %. - La clé passée à
getFlag()correspond exactement à la clé du flag (sensible à la casse, sans espaces). - Le SDK est initialisé avec le bon
siteId.
getFlag() n'est pas défini / erreur QMTracker is not defined.
Le SDK n'est pas chargé. Vérifiez que le script QuickMonitoring est bien inclus dans votre page et que QMTracker.init() a été appelé avant getFlag().
Le flag retourne false pour mon utilisateur mais true en test.
Si des conditions de ciblage sont configurées, vérifiez que l'utilisateur courant correspond aux critères (plan, pays, etc.). Consultez l'onglet Ciblage du flag pour voir les règles actives.