Accéder au contenu principal
Imprimer
Focus 33 - Novembre 2024

La méthode Coué 2.0 des plateformes numériques : Quand la fiction cherche à créer la réalité

La controverse Roblox

Roblox est une plateforme en ligne de jeux vidéo et de création qui offre un vaste univers virtuel où les utilisateurs peuvent jouer, socialiser et développer leurs propres jeux. Avec une immense bibliothèque de jeux créés par les utilisateurs, Roblox permet aux joueurs de personnaliser leurs avatars, d'interagir avec d'autres et d'utiliser la monnaie virtuelle "Robux" pour des achats au sein de la plateforme. La plateforme est accessible gratuitement sur divers appareils et attire principalement des enfants et des adolescents.

Dans un rapport publié le 8 octobre 2024, Hindenburg Research (une société d'analyse financière) affirme que Roblox induit en erreur les investisseurs, les régulateurs et les annonceurs concernant le nombre d'utilisateurs sur sa plateforme, exagérant ce chiffre d’environ un tiers. Les analystes d’Hindenburg attribuent cette surévaluation au fait que Roblox n'est actuellement pas rentable, ce qui l’amène à gonfler ses indicateurs de croissance pour doper le cours de ses actions en bourse et maintenir l’intérêt des investisseurs.

Dans une déclaration publiée dans The Verge le même jour, Roblox rejette ces affirmations, arguant que Hindenburg Research est, de son propre aveu, une société qui pratique la vente à découvert et a dès lors un agenda indépendant de la substance du modèle commercial et des résultats de Roblox.1

Gestion des attentes

Au moment de la rédaction de ce Focus, personne ne peut dire si Roblox a vraiment été malhonnête. Cependant, une chose est sûre : gonfler le nombre d'utilisateurs est très tentant pour les plateformes numériques émergentes car leur croissance repose en grande partie sur les attentes que formulent les utilisateurs à l’égard de celle-ci.

En effet, les plateformes numériques font face à un problème fondamental qui peut paralyser leur développement. Ce problème, dit de l’oeuf et de la poule, est simple à comprendre pour une plateforme "biface" qui crée de la valeur en facilitant les interactions entre deux groupes d’utilisateurs (comme Roblox, qui relie joueurs et concepteurs de jeux). Dans la mesure où la participation de chaque groupe dépend de la participation de l’autre, deux scénarios contrastés peuvent se produire selon les attentes des utilisateurs. Dans le cas optimiste, les utilisateurs dans chaque groupe croient en la participation des utilisateurs de l’autre groupe, ce qui incite les uns et les autres à rejoindre la plateforme. À l'inverse, des attentes pessimistes n’induisent que très peu d’utilisateurs à participer, menant à la création de "villes fantômes".2

L'aspect fascinant de cette dynamique est sa nature auto-réalisatrice. Lorsque la participation est attendue, elle se matérialise; lorsqu'elle ne l'est pas, la plateforme reste en sommeil.

Cette dynamique s’applique au moment du lancement de la plateforme mais également plus tard si l’étape du lancement est franchie. La valeur d’une plateforme augmente en effet avec son nombre d’utilisateurs (on parle d’"effets de réseau positifs"). En attirant plus d’utilisateurs aujourd’hui, les opérateurs de plateforme se garantissent plus d’utilisateurs et de revenus demain. Dans le cas de Roblox, plus la communauté de joueurs s’agrandit, plus les utilisateurs sont désireux d’acheter de la monnaie virtuelle pour acquérir les objets, accessoires ou capacités spéciales qui leur permettent d’augmenter leurs performances. Roblox se finance également de plus en plus via la publicité et, clairement, sa capacité à attirer des annonceurs s’accroît avec la taille de sa base d’utilisateurs. Enfin, les investisseurs potentiels sont plus prompts à soutenir financièrement la plateforme s’ils pensent que celle-ci va (continuer à) se développer.3

Ces "prophéties auto-réalisatrices" (et les effets de réseau qui les sous-tendent) soulignent l'importance cruciale d'une gestion efficace des attentes pour les opérateurs de plateformes. Dans notre livre intitulé Platform Strategies, Nicolas Neysen et moi-même soulignons que la meilleure manière pour une plateforme de générer des attentes positives est d’abord de bien comprendre les besoins de ses utilisateurs et, ensuite, de leur proposer des services de qualité pour rencontrer ces besoins. Pour y parvenir, la plateforme peut fournir directement certains services elle-même. Au-delà de l’effet de démonstration, cela permet à la plateforme de satisfaire les besoins d’un groupe d’utilisateurs sans qu’ils doivent se soucier de la participation de l’autre. Roblox suit cette stratégie en développant des jeux elle-même, souvent dans le but de présenter les nouvelles fonctionnalités ou technologies disponibles sur la plateforme. Il est également essentiel de bien expliquer les avantages de la plateforme pour tous. Chacun sera en effet plus confiant s’il comprend mieux ce que les autres gagnent à participer. Ceci est plus facile à réaliser pour les plateformes bifaces qui permettent à leurs utilisateurs d’être actifs d’un côté comme de l’autre. On pense notamment à Vinted sur laquelle on peut tantôt acheter tantôt vendre des articles de seconde-main. Il en va de même pour Roblox qui met la conception de jeux à la portée de tous. Enfin, comme l’indique Botsman (2017), il est capital d’instaurer un climat de confiance à trois niveaux : dans l’utilisation d’une plateforme plutôt qu’une entreprise traditionnelle, dans la plateforme elle-même et, en fin de compte, dans les autres utilisateurs de la plateforme.

Mais tout ceci est plus facile à dire qu’à faire : fournir ses propres services est coûteux, laisser les utilisateurs être actifs des deux côtés est rarement possible et gagner la confiance des utilisateurs reste un processus long et incertain. D’où la tentation pour les plateformes de recourir à des méthodes plus discutables pour convaincre leurs utilisateurs qu’elles sont là pour rester et se développer dans le futur. A cet effet, les plateformes peuvent (1) simuler l’activité de l’un ou l’autre groupe sur la plateforme, (2) annoncer que l’activité de la plateforme va s’accroître dans le futur ou (3) gonfler les statistiques d’activité passée et actuelle. Dans ce qui suit, je pose un regard critique sur ces trois tactiques.

Créer une activité fictive

Cette tactique est appelée en anglais ‘Fake it until you make it’ (littéralement, "Faire semblant jusqu’à ce qu’on y arrive"). Dans notre livre, nous donnons plusieurs exemples de plateformes qui ont eu recours à ce genre de tactique. Ainsi, Reddit (une plateforme d’agrégation d’actualités) et Udemy (une plateforme d’apprentissage en ligne) ont créé du contenu ou des comptes factices pour paraître plus établies qu’elles ne l’étaient vraiment à leurs débuts. Un autre exemple provient du secteur de la livraison de repas. Grubhub et Seamless, deux plateformes américaines qui ont fusionné en 2013, auraient répertorié des restaurants sans leur consentement. En 2020, une propriétaire de restaurant a découvert que son entreprise était répertoriée sur les deux plateformes avec un menu incorrect. Il s’est alors avéré que la pratique était courante dans le secteur. Les plateformes répertoriaient les restaurants par défaut, leur laissant la charge de se désinscrire si cela ne leur plaisait pas. Cette approche crée des coûts pour les restaurants, en particulier les petits, et induit les clients en erreur quant aux options qui sont réellement disponibles.

Même si de telles pratiques peuvent aider les plateformes à croître à court terme, un retour de manivelle est à craindre une fois que la vérité est établie.

Annoncer la croissance future

Des attentes optimistes peuvent également être générées en annonçant aux utilisateurs actuels qu'ils seront rejoints par de nombreux autres utilisateurs à l'avenir. Boudreau (2021) a testé l'efficacité de cette stratégie par le biais d'une expérience sur le terrain. La recherche impliquait l'envoi, à plus de 16000 utilisateurs potentiels, d'une invitation à rejoindre une nouvelle plateforme. Ces invitations incluaient des informations sur la taille actuelle de la plateforme et des déclarations aléatoires sur sa taille future projetée. L'analyse des décisions de participation ultérieure a révélé deux résultats significatifs. D’abord, alors que les déclarations sur le nombre attendu d'utilisateurs étaient subjectives et sans engagement, elles ont eu un impact plus important sur les intentions de participation que les informations concernant le nombre actuel d'utilisateurs. Ensuite, annoncer un nombre d’utilisateurs futurs plus important a conduit à augmenter les intentions de participation. Cette étude empirique soutient fortement l'idée que les attentes peuvent effectivement s'auto-réaliser, soulignant leur rôle crucial dans l'adoption et la croissance des plateformes.

Gonfler l’activité existante

C’est la tactique que l’on accuse Roblox d’avoir utilisée. Des accusations similaires ont été portées dans divers secteurs auparavant. Par exemple dans le secteur de la presse écrite, où les journaux peuvent être vus comme des plateformes jouant un rôle d’intermédiaire entre journalistes, annonceurs publicitaires et lecteurs (comme Xavier Wauthy et moi-même l’expliquions dans le numéro 100 de Regards économiques). Ainsi, en 2007, deux journaux gratuits (London Lite et The London Paper) se disputaient férocement le lectorat et les revenus publicitaires sur le marché londonien. La controverse a commencé lorsque London Lite a accusé The London Paper d’imprimer un nombre excessif d’exemplaires pour gonfler artificiellement ses chiffres de diffusion. London Lite est même allé jusqu’à diffuser une vidéo montrant prétendument des distributeurs jetant quelques milliers d’exemplaires de The London Paper à la poubelle. Cette accusation a incité le régulateur britannique de la presse (Audit Bureau of Circulations, ABC) à enquêter sur ces allégations et vérifier les chiffres de diffusion avancés par les deux publications. En effet, ces chiffres sont cruciaux pour déterminer les tarifs publicitaires. L'enquête a confirmé que des journaux gratuits avaient effectivement été imprimés en surnombre puis jetés.

Une telle pratique est problématique car elle gonfle le lectorat des journaux, ce qui peut induire les annonceurs en erreur vu qu’ils s'appuient sur les chiffres de diffusion pour prendre des décisions sur les placements publicitaires et les tarifs. Cet incident a mis en lumière la concurrence intense qui règne sur le marché des journaux gratuits et les efforts que les éditeurs peuvent déployer pour paraître plus attrayants aux yeux des annonceurs. Il a également mis en évidence l'importance d'audits de diffusion précis pour maintenir l'intégrité de l'industrie de la presse et protéger les intérêts des annonceurs.

Conclusions

La controverse Roblox souligne le rôle crucial que jouent les attentes des utilisateurs pour la croissance des plateformes numériques. Les plateformes peuvent être tentées de gonfler artificiellement les chiffres de participation ou même de feindre la participation. Elles pourraient justifier cette malhonnêteté en arguant qu'elle n'est que temporaire : la tromperie pourrait en effet devenir une réalité si suffisamment d’utilisateurs y croient, étant donné la nature auto-réalisatrice des attentes.

En plus de soulever des préoccupations éthiques évidentes, ces tactiques comportent des risques importants, car les investisseurs, les concurrents et les utilisateurs peuvent contester les affirmations de la plateforme. Les dommages potentiels peuvent être considérables et durables, car des boucles de rétroaction négatives peuvent rapidement s'installer, conduisant au départ de certains utilisateurs et déclenchant un effet cascade parmi les autres. Par conséquent, il est essentiel de souligner l'importance de la transparence et de l'honnêteté dans la promotion des plateformes ; les pratiques trompeuses peuvent éroder la confiance des utilisateurs et finalement compromettre la durabilité des opérations de la plateforme.

 

1 Un vendeur à découvert parie sur la baisse du cours d'un actif financier, généralement une action. Il vend des titres qu'il ne possède pas encore, dans l'espoir de les racheter plus tard à un prix inférieur.

2 Ce phénomène se produit si des utilisateurs rejoignent une plateforme par curiosité ou en raison d’un engouement initial mais se désintéressent rapidement si la plateforme n'offre pas de valeur continue ou de contenu attrayant (comme ce fut le cas, par exemple, pour le réseau social Vine).

3 Dans ces trois cas de figure, des attentes optimistes quant au nombre d’utilisateurs futurs sont susceptibles d’enclencher des effets de réseaux dits "croisés" : les joueurs ont plus de chances de trouver des développeurs qui partagent leurs gouts et vice versa, les annonceurs peuvent espérer une rentabilité plus élevée pour leurs publicités et les financiers, un meilleur retour sur leur investissement. Même si ces effets perdent de leur intensité à mesure que la plateforme se développe (car l’impact additionnel du 100.000ème utilisateur est sans doute moins important que celui du 1000ème ou encore du 100ème), ils restent non négligeables, en particulier dans un secteur concurrentiel où un utilisateur gagné par une plateforme est un utilisateur perdu pour ses concurrentes.

PDF Télécharger le focus en PDF

On en parle dans la presse...

31.176MBMemory Usage353msRequest Duration
Joomla! Version5.2.5
PHP Version8.2.27
Identityguest
Response200
Templateyootheme
Database
Server
mysql
Version
10.6.18-MariaDB-deb11-log
Collation
utf8mb3_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
array:3 [ "cid" => "246" "option" => "com_reco" "view" => "article" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:62 [ "TEMP" => "/home/clients/c76502dcd0092cafe8460c17f647856e/tmp" "TMPDIR" => "/home/cli...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1744060353 "last" => 1744060353...
registry
array:3 [ "data" => array:1 [ "com_reco" => array:1 [ "article" => array:2 [ "or...
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (3.82MB) (18.89ms)
  • afterInitialise (11.09MB) (96.68ms)
  • afterRoute (2.01MB) (21.36ms)
  • beforeRenderComponent com_reco (29.4KB) (1.99ms)
  • beforeRenderRawModule mod_custom (RE-Social NEW (mobile)) (6.11MB) (69.62ms)
  • afterRenderRawModule mod_custom (RE-Social NEW (mobile)) (36.64KB) (1.31ms)
  • beforeRenderModule mod_custom (RE-Social NEW (mobile)) (720B) (9μs)
  • afterRenderModule mod_custom (RE-Social NEW (mobile)) (85.05KB) (1.12ms)
  • afterRenderComponent com_reco (30.6KB) (3.59ms)
  • afterDispatch (109.51KB) (3.23ms)
  • beforeRenderRawModule mod_custom (RE-Social NEW) (82.74KB) (3.38ms)
  • afterRenderRawModule mod_custom (RE-Social NEW) (1.05KB) (158μs)
  • beforeRenderRawModule mod_custom (IRES présentation) (1.27KB) (33μs)
  • afterRenderRawModule mod_custom (IRES présentation) (101.92KB) (3.67ms)
  • beforeRenderRawModule mod_menu (Liste des numéros) (2.48KB) (41μs)
  • afterRenderRawModule mod_menu (Liste des numéros) (91.64KB) (2.97ms)
  • beforeRenderRawModule mod_menu (Liste des focus) (720B) (43μs)
  • afterRenderRawModule mod_menu (Liste des focus) (21.84KB) (1.47ms)
  • beforeRenderModule mod_custom (RE-Social NEW) (181.31KB) (14.42ms)
  • afterRenderModule mod_custom (RE-Social NEW) (1.91KB) (196μs)
  • beforeRenderModule mod_custom (IRES présentation) (408B) (35μs)
  • afterRenderModule mod_custom (IRES présentation) (1.76KB) (101μs)
  • beforeRenderModule mod_menu (Liste des numéros) (1.62KB) (30μs)
  • afterRenderModule mod_menu (Liste des numéros) (1.76KB) (80μs)
  • beforeRenderModule mod_menu (Liste des focus) (168B) (29μs)
  • afterRenderModule mod_menu (Liste des focus) (1.76KB) (70μs)
  • beforeRenderRawModule mod_menu () (5.48KB) (1.51ms)
  • afterRenderRawModule mod_menu () (33.5KB) (2.17ms)
  • beforeRenderModule mod_menu () (696B) (7μs)
  • afterRenderModule mod_menu () (3.22KB) (145μs)
  • beforeRenderRawModule mod_finder () (2.01KB) (20μs)
  • afterRenderRawModule mod_finder () (914.29KB) (18.3ms)
  • beforeRenderModule mod_finder () (704B) (11μs)
  • afterRenderModule mod_finder () (4.69KB) (260μs)
  • beforeRenderRawModule mod_custom () (624B) (1.43ms)
  • afterRenderRawModule mod_custom () (1.19KB) (617μs)
  • beforeRenderModule mod_custom () (704B) (6μs)
  • afterRenderModule mod_custom () (1.73KB) (142μs)
  • beforeRenderRawModule mod_custom (Oreille) (2.67KB) (737μs)
  • beforeRenderRawModule mod_menu (Menu oreille) (43.59KB) (470μs)
  • afterRenderRawModule mod_menu (Menu oreille) (214.12KB) (4.45ms)
  • beforeRenderModule mod_menu (Menu oreille) (720B) (8μs)
  • afterRenderModule mod_menu (Menu oreille) (3.19KB) (155μs)
  • afterRenderRawModule mod_custom (Oreille) (43.36KB) (410μs)
  • beforeRenderModule mod_custom (Oreille) (704B) (6μs)
  • afterRenderModule mod_custom (Oreille) (1.74KB) (106μs)
  • beforeRenderRawModule mod_custom (Toolbar-R (UCL)) (168B) (23μs)
  • afterRenderRawModule mod_custom (Toolbar-R (UCL)) (976B) (93μs)
  • beforeRenderModule mod_custom (Toolbar-R (UCL)) (720B) (3μs)
  • afterRenderModule mod_custom (Toolbar-R (UCL)) (1.76KB) (76μs)
  • beforeRenderRawModule mod_menu () (256B) (785μs)
  • afterRenderRawModule mod_menu () (3.17KB) (1.52ms)
  • beforeRenderModule mod_menu () (696B) (7μs)
  • afterRenderModule mod_menu () (1.8KB) (118μs)
  • beforeRenderRawModule mod_menu (Menu oreille (mobile)) (3.07KB) (28μs)
  • afterRenderRawModule mod_menu (Menu oreille (mobile)) (2.66KB) (1.35ms)
  • beforeRenderModule mod_menu (Menu oreille (mobile)) (720B) (6μs)
  • afterRenderModule mod_menu (Menu oreille (mobile)) (2.13KB) (114μs)
  • beforeRenderRawModule mod_finder (Recherche (mobile)) (392B) (26μs)
  • afterRenderRawModule mod_finder (Recherche (mobile)) (10.93KB) (2.13ms)
  • beforeRenderModule mod_finder (Recherche (mobile)) (720B) (5μs)
  • afterRenderModule mod_finder (Recherche (mobile)) (2.13KB) (118μs)
  • beforeRenderModule mod_custom (RE-Social NEW (mobile)) (1.6KB) (29μs)
  • afterRenderModule mod_custom (RE-Social NEW (mobile)) (1.76KB) (85μs)
  • beforeRenderRawModule mod_custom () (1.17KB) (1.26ms)
  • afterRenderRawModule mod_custom () (3.53KB) (408μs)
  • beforeRenderModule mod_custom () (704B) (5μs)
  • afterRenderModule mod_custom () (2.94KB) (100μs)
  • beforeRenderRawModule mod_custom () (184B) (770μs)
  • afterRenderRawModule mod_custom () (1.03KB) (378μs)
  • beforeRenderModule mod_custom () (704B) (6μs)
  • afterRenderModule mod_custom () (3.41KB) (111μs)
  • afterRender (5.65MB) (66.52ms)
  • 1 x afterInitialise (11.09MB) (27.38%)
    96.68ms
    1 x beforeRenderRawModule mod_custom (RE-Social NEW (mobile)) (6.11MB) (19.72%)
    69.62ms
    1 x afterRender (5.65MB) (18.84%)
    66.52ms
    1 x afterRoute (2.01MB) (6.05%)
    21.36ms
    1 x afterLoad (3.82MB) (5.35%)
    18.89ms
    1 x afterRenderRawModule mod_finder () (914.29KB) (5.18%)
    18.30ms
    1 x beforeRenderModule mod_custom (RE-Social NEW) (181.31KB) (4.08%)
    14.42ms
    1 x afterRenderRawModule mod_menu (Menu oreille) (214.12KB) (1.26%)
    4.45ms
    1 x afterRenderRawModule mod_custom (IRES présentation) (101.92KB) (1.04%)
    3.67ms
    1 x afterRenderComponent com_reco (30.6KB) (1.02%)
    3.59ms
    1 x beforeRenderRawModule mod_custom (RE-Social NEW) (82.74KB) (0.96%)
    3.38ms
    1 x afterDispatch (109.51KB) (0.92%)
    3.23ms
    1 x afterRenderRawModule mod_menu (Liste des numéros) (91.64KB) (0.84%)
    2.97ms
    1 x afterRenderRawModule mod_menu () (33.5KB) (0.61%)
    2.17ms
    1 x afterRenderRawModule mod_finder (Recherche (mobile)) (10.93KB) (0.6%)
    2.13ms
    1 x beforeRenderComponent com_reco (29.4KB) (0.56%)
    1.99ms
    1 x afterRenderRawModule mod_menu () (3.17KB) (0.43%)
    1.52ms
    1 x beforeRenderRawModule mod_menu () (5.48KB) (0.43%)
    1.51ms
    1 x afterRenderRawModule mod_menu (Liste des focus) (21.84KB) (0.42%)
    1.47ms
    1 x beforeRenderRawModule mod_custom () (624B) (0.4%)
    1.43ms
    1 x afterRenderRawModule mod_menu (Menu oreille (mobile)) (2.66KB) (0.38%)
    1.35ms
    1 x afterRenderRawModule mod_custom (RE-Social NEW (mobile)) (36.64KB) (0.37%)
    1.31ms
    1 x beforeRenderRawModule mod_custom () (1.17KB) (0.36%)
    1.26ms
    1 x afterRenderModule mod_custom (RE-Social NEW (mobile)) (85.05KB) (0.32%)
    1.12ms
    1 x beforeRenderRawModule mod_menu () (256B) (0.22%)
    785μs
    1 x beforeRenderRawModule mod_custom () (184B) (0.22%)
    770μs
    1 x beforeRenderRawModule mod_custom (Oreille) (2.67KB) (0.21%)
    737μs
    1 x afterRenderRawModule mod_custom () (1.19KB) (0.17%)
    617μs
    1 x beforeRenderRawModule mod_menu (Menu oreille) (43.59KB) (0.13%)
    470μs
    1 x afterRenderRawModule mod_custom (Oreille) (43.36KB) (0.12%)
    410μs
    1 x afterRenderRawModule mod_custom () (3.53KB) (0.12%)
    408μs
    1 x afterRenderRawModule mod_custom () (1.03KB) (0.11%)
    378μs
    1 x afterRenderModule mod_finder () (4.69KB) (0.07%)
    260μs
    1 x afterRenderModule mod_custom (RE-Social NEW) (1.91KB) (0.06%)
    196μs
    1 x afterRenderRawModule mod_custom (RE-Social NEW) (1.05KB) (0.04%)
    158μs
    1 x afterRenderModule mod_menu (Menu oreille) (3.19KB) (0.04%)
    155μs
    1 x afterRenderModule mod_menu () (3.22KB) (0.04%)
    145μs
    1 x afterRenderModule mod_custom () (1.73KB) (0.04%)
    142μs
    1 x afterRenderModule mod_menu () (1.8KB) (0.03%)
    118μs
    1 x afterRenderModule mod_finder (Recherche (mobile)) (2.13KB) (0.03%)
    118μs
    1 x afterRenderModule mod_menu (Menu oreille (mobile)) (2.13KB) (0.03%)
    114μs
    1 x afterRenderModule mod_custom () (3.41KB) (0.03%)
    111μs
    1 x afterRenderModule mod_custom (Oreille) (1.74KB) (0.03%)
    106μs
    1 x afterRenderModule mod_custom (IRES présentation) (1.76KB) (0.03%)
    101μs
    1 x afterRenderModule mod_custom () (2.94KB) (0.03%)
    100μs
    1 x afterRenderRawModule mod_custom (Toolbar-R (UCL)) (976B) (0.03%)
    93μs
    1 x afterRenderModule mod_custom (RE-Social NEW (mobile)) (1.76KB) (0.02%)
    85μs
    1 x afterRenderModule mod_menu (Liste des numéros) (1.76KB) (0.02%)
    80μs
    1 x afterRenderModule mod_custom (Toolbar-R (UCL)) (1.76KB) (0.02%)
    76μs
    1 x afterRenderModule mod_menu (Liste des focus) (1.76KB) (0.02%)
    70μs
    1 x beforeRenderRawModule mod_menu (Liste des focus) (720B) (0.01%)
    43μs
    1 x beforeRenderRawModule mod_menu (Liste des numéros) (2.48KB) (0.01%)
    41μs
    1 x beforeRenderModule mod_custom (IRES présentation) (408B) (0.01%)
    35μs
    1 x beforeRenderRawModule mod_custom (IRES présentation) (1.27KB) (0.01%)
    33μs
    1 x beforeRenderModule mod_menu (Liste des numéros) (1.62KB) (0.01%)
    30μs
    1 x beforeRenderModule mod_menu (Liste des focus) (168B) (0.01%)
    29μs
    1 x beforeRenderModule mod_custom (RE-Social NEW (mobile)) (1.6KB) (0.01%)
    29μs
    1 x beforeRenderRawModule mod_menu (Menu oreille (mobile)) (3.07KB) (0.01%)
    28μs
    1 x beforeRenderRawModule mod_finder (Recherche (mobile)) (392B) (0.01%)
    26μs
    1 x beforeRenderRawModule mod_custom (Toolbar-R (UCL)) (168B) (0.01%)
    23μs
    1 x beforeRenderRawModule mod_finder () (2.01KB) (0.01%)
    20μs
    3 x beforeRenderModule mod_custom () (704B) (0%)
    17μs
    2 x beforeRenderModule mod_menu () (696B) (0%)
    14μs
    1 x beforeRenderModule mod_finder () (704B) (0%)
    11μs
    1 x beforeRenderModule mod_custom (RE-Social NEW (mobile)) (720B) (0%)
    9μs
    1 x beforeRenderModule mod_menu (Menu oreille) (720B) (0%)
    8μs
    1 x beforeRenderModule mod_custom (Oreille) (704B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (Menu oreille (mobile)) (720B) (0%)
    6μs
    1 x beforeRenderModule mod_finder (Recherche (mobile)) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_custom (Toolbar-R (UCL)) (720B) (0%)
    3μs
50 statements were executed, 9 of which were duplicates, 41 unique24.66ms153.31KB
  • SELECT @@SESSION.sql_mode;308μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `rej_session` WHERE `session_id` = ?272μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `rej_session` WHERE `session_id` = :session_id LIMIT 1218μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `rej_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)384μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `rej_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 11.69ms17.73KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `rej_viewlevels`285μs624B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `rej_usergroups` AS `a` LEFT JOIN `rej_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest336μs1.31KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `rej_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1) ORDER BY `ordering`1.8ms3.96KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT `value` FROM `rej_admintools_storage` WHERE `key` = 'cparams'551μs1.15KB/administrator/components/com_admintools/src/Helper/Storage.php:120Copy
  • SELECT `option`,`view`,`query` FROM `rej_admintools_wafexceptions`194μs640B/plugins/system/admintools/src/Utility/Cache.php:196Copy
  • SELECT `params` FROM `rej_extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'admintools'393μs536B/plugins/system/admintools/src/Utility/RescueUrl.php:324Copy
  • SELECT `params` FROM `rej_extensions` WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'admintools'343μs536B/plugins/system/admintools/src/Utility/RescueUrl.php:324Copy
  • SELECT * FROM `rej_admintools_ipautoban`192μs640B/plugins/system/admintools/src/Utility/Cache.php:126Copy
  • SELECT `ip` FROM `rej_admintools_ipblock`201μs520B/plugins/system/admintools/src/Utility/Cache.php:136Copy
  • SELECT * FROM `rej_admintools_storage` WHERE `key` LIKE 'timestamp_%'188μs592B/plugins/system/admintools/src/Feature/Base.php:253Copy
  • SELECT `source`,`dest`,`keepurlparams` FROM `rej_admintools_redirects` WHERE `published` = 1 ORDER BY `ordering` ASC208μs640B/plugins/system/admintools/src/Utility/Cache.php:162Copy
  • SELECT `value` FROM rej_acym_configuration WHERE `name` = 'level'264μs1.77KB/plugins/system/acymtriggers/acymtriggers.php:643Copy
  • SELECT `value` FROM rej_acym_configuration WHERE `name` = 'active_cron'366μs536B/plugins/system/acymtriggers/acymtriggers.php:643Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `rej_menu` AS `m` LEFT JOIN `rej_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`989μs19.8KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `rej_template_styles` AS `s` LEFT JOIN `rej_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1703μs16.83KB/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT `option`,`view`,`task`,`query`,`query_type`,`query_content`,`verb`,`application` FROM `rej_admintools_wafblacklists` WHERE `enabled` = 1340μs976B/plugins/system/admintools/src/Utility/Cache.php:182Copy
  • SELECT * FROM `rej_languages` WHERE `published` = 1 ORDER BY `ordering` ASC286μs1.59KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT id FROM rej_reco_articles WHERE id=246 AND state=1199μs536B/components/com_reco/src/Model/ArticleModel.php:45Copy
  • SELECT a.*, GROUP_CONCAT(CONCAT("<a href=\"index.php/auteurs?cid=",c.id,"\">",c.surname," ",c.name,"</a>") ORDER BY c.name ASC SEPARATOR ", ") AS authors FROM rej_reco_articles AS a LEFT JOIN rej_reco_artxaut AS b ON a.id = b.art_id LEFT JOIN rej_reco_auteurs AS c ON b.aut_id = c.id WHERE a.id = 246 AND a.state = 1 GROUP BY a.id1.24ms42.5KB/components/com_reco/src/Model/ArticleModel.php:33Copy
  • SELECT id FROM rej_reco_articles WHERE id=246 AND state=1202μs536B/components/com_reco/src/Model/ArticleModel.php:45Copy
  • SELECT b.id,b.surname,b.name,b.biocourte FROM rej_reco_artxaut AS a LEFT JOIN rej_reco_auteurs AS b ON b.id = a.aut_id WHERE a.art_id = 246 AND b.state = 1 ORDER BY b.name ASC297μs704B/components/com_reco/src/Model/ArticleModel.php:77Copy
  • SELECT id FROM rej_reco_articles WHERE id=246 AND state=1257μs536B/components/com_reco/src/Model/ArticleModel.php:45Copy
  • SELECT b.id,b.name FROM rej_reco_artxth AS a LEFT JOIN rej_reco_themes AS b ON b.id = a.th_id WHERE a.art_id = 246 AND b.state = 1 ORDER BY b.name ASC310μs592B/components/com_reco/src/Model/ArticleModel.php:100Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `rej_modules` AS `m` LEFT JOIN `rej_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `rej_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`949μs2.03KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM rej_fields AS a LEFT JOIN `rej_languages` AS l ON l.lang_code = a.language LEFT JOIN rej_users AS uc ON uc.id=a.checked_out LEFT JOIN rej_viewlevels AS ag ON ag.id = a.access LEFT JOIN rej_users AS ua ON ua.id = a.created_user_id LEFT JOIN rej_fields_groups AS g ON g.id = a.group_id WHERE ( (`a`.`context` = :context AND `a`.`access` IN (:preparedArray1)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray2)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC889μs4.03KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `name`,`element` FROM `rej_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1378μs608B/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `rej_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1)230μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT custom_data FROM rej_extensions WHERE element = 'yootheme' AND folder = 'system' LIMIT 1377μs3.02KB/templates/yootheme/packages/platform-joomla/src/Storage.php:30Copy
  • SELECT `title` FROM `rej_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1)253μs584B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM rej_acym_configuration843μs4.56KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_list WHERE type = 'standard'397μs1.66KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_field682μs1.69KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_form WHERE active = 1 AND type != 'shortcode'232μs912B/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_jmap_metainfo WHERE `linkurl` = 'https://regards-economiques.be/index.php?cid=246&option=com_reco&view=article' AND `published` = 1238μs912B/plugins/system/jmap/jmap.php:838Copy
  • SELECT * FROM rej_jmap_canonicals WHERE `linkurl` = 'https://regards-economiques.be/index.php?cid=246&option=com_reco&view=article'201μs640B/plugins/system/jmap/jmap.php:968Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `rej_scheduler_tasks` AS `a` WHERE `a`.`state` = 1323μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `value` FROM rej_acym_configuration WHERE `name` LIKE "%regacy" OR `name` LIKE "%\_sub"353μs536B/plugins/system/acymtriggers/acymtriggers.php:434Copy
  • SHOW FULL TABLES WHERE table_type="BASE TABLE"2.74ms3.56KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:635Copy
  • SELECT * FROM rej_acym_plugin258μs1.52KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_acym_plugin255μs1.52KB/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT `groups`.*, `groups`.title AS text, `groups`.id AS `value` FROM rej_usergroups AS `groups`240μs1008B/administrator/components/com_acym/Core/joomla/database.php:36Copy
  • SELECT * FROM rej_jmap_headings WHERE `linkurl` = 'https://regards-economiques.be/index.php?cid=246&option=com_reco&view=article'245μs752B/plugins/system/jmap/jmap.php:1192Copy
  • SELECT `original_text`, `target_text`, `original_text_regex`, `target_text_regex` FROM `rej_jmap_text_replacements` WHERE `published` = 1848μs688B/plugins/system/jmap/jmap.php:508Copy
  • SELECT `session_id` FROM `rej_session` WHERE `session_id` = ?259μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `rej_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?453μs592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy