Glossaire

Cinq compteurs d'engagement : Bluesky a-t-il des statistiques ?

Taras Shynkarenko
Taras Shynkarenko
•Mis à jour : •10 min de lecture
Cinq compteurs d'engagement : Bluesky a-t-il des statistiques ?Cinq compteurs d'engagement : Bluesky a-t-il des statistiques ?

TL;DR, Réponse Rapide

10 min de lecture

Bluesky n'expose aucun compteur de vues, aucun compteur d'impressions et aucun endpoint de statistiques. La définition app.bsky.feed.defs#postView porte exactement cinq compteurs, likeCount, repostCount, replyCount, quoteCount et bookmarkCount, et aucun des treize namespaces sous app.bsky n'est un namespace de statistiques. Le protocole définit bien un événement interactionSeen, mais il est en écriture seule et part vers les générateurs de flux, pas vers l'auteur de la publication.

Bluesky a-t-il des statistiques ?

Posez la question, Bluesky a-t-il des statistiques, et la réponse est non : les lexicons de l'AT Protocol qui définissent chaque réponse de l'API Bluesky ne portent aucun compteur de vues, aucun compteur d'impressions et aucun endpoint de statistiques. Une publication revient avec cinq compteurs d'engagement. Un profil revient avec des totaux d'abonnés, d'abonnements et de publications. Rien nulle part ne vous dit combien de personnes ont vu ce que vous avez publié.

C'est une affirmation portant sur une absence, alors voici exactement ce qui a été vérifié avant de la formuler, le 10 septembre 2026 :

  • Chaque fichier de lexicon dans bluesky-social/atproto sur la branche main, soit 404 fichiers JSON au total. Une recherche insensible à la casse sur l'ensemble renvoie zéro occurrence de impression, viewCount, analytic et insight.
  • La définition postView dans lexicons/app/bsky/feed/defs.json, champ par champ.
  • Le listing du répertoire lexicons/app/bsky, pour nommer chaque namespace existant.
  • Un appel en direct non authentifié à l'AppView public, pour confirmer que le service en fonctionnement renvoie bien ce que le schéma annonce.

L'affirmation couvre les lexicons de première partie et l'AppView public. Elle ne dit rien des tableaux de bord internes que Bluesky PBC exploite pour elle-même, ni des services tiers qui modélisent la portée à partir d'autres signaux.

Quels champs app.bsky.feed.defs#postView porte-t-il réellement ?

Quinze, et cinq d'entre eux sont des compteurs.

ChampTypeCe qu'il vous donne
uristring, at-uriL'adresse de la publication
cidstring, cidHash de contenu de cette version de l'enregistrement
authorrefapp.bsky.actor.defs#profileViewBasic
recordunknownL'enregistrement de la publication lui-même, texte compris
embedunionImages, vidéo, lien externe ou enregistrement cité
replyCountintegerRéponses
repostCountintegerRepublications
likeCountintegerMentions J'aime
quoteCountintegerPublications citées
bookmarkCountintegerSignets
indexedAtstring, datetimeQuand l'AppView a indexé la publication, pas quand elle a été écrite
viewerrefVotre propre relation à la publication, par exemple si vous l'avez aimée
labelsarrayLabels de modération attachés à la publication
threadgaterefRestrictions de réponse sur le fil
debugunknownDécrit dans le lexicon comme « Debug information for internal development »

Deux détails de ce tableau passent facilement inaperçus. indexedAt est un horodatage d'indexation, c'est donc le mauvais champ pour servir d'heure de publication ; la valeur createdAt à l'intérieur de record est celle qu'il vous faut. Et les compteurs ne figurent pas dans la liste required de la définition, qui se lit ["uri", "cid", "author", "record", "indexedAt"]. Une réponse conforme a le droit d'omettre entièrement likeCount, donc le code qui le lit devrait traiter une valeur absente comme inconnue plutôt que comme zéro.

Voici le service en fonctionnement qui dit la même chose :

GET https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor=bsky.app&limit=1
 
"post": {
  "uri": "at://...",
  "cid": "...",
  "author": { ... },
  "record": { ... },
  "embed": { ... },
  "replyCount": 1,
  "repostCount": 2,
  "likeCount": 132,
  "quoteCount": 3,
  "bookmarkCount": 3,
  "indexedAt": "...",
  "labels": []
}

Cinq clés se terminant par Count. Pas de sixième.

Existe-t-il un namespace de statistiques sous app.bsky ?

Non. Treize namespaces se trouvent sous app.bsky, et chacun d'eux a une fonction qui n'est pas la mesure.

NamespaceCe qu'il couvre
app.bsky.actorProfils, préférences, recherche de comptes
app.bsky.ageassuranceÉtat de la vérification d'âge
app.bsky.bookmarkCréation, suppression et listage des signets
app.bsky.contactImport de contacts, vérification du téléphone, rejet de correspondances
app.bsky.draftBrouillons stockés sur le serveur
app.bsky.embedFormes d'intégration image, vidéo, externe et enregistrement
app.bsky.feedPublications, J'aime, republications, citations, fils, générateurs de flux
app.bsky.graphAbonnements, blocages, mises en sourdine, listes, starter packs
app.bsky.labelerServices de labellisation
app.bsky.notificationListe de notifications, compteur de non lues, enregistrement push
app.bsky.richtextFacettes de texte comme les liens et les mentions
app.bsky.unspeccedEndpoints instables utilisés par le client officiel
app.bsky.videoEnvoi de vidéo et statut du traitement

Élargissez la recherche au-delà de app.bsky et le tableau tient. Les autres racines du dépôt sont com.atproto pour la plomberie du protocole, chat.bsky pour les messages privés, tools.ozone pour la modération, plus internal.bsky, site.standard et com.germnetwork. Les seuls endpoints de tout l'ensemble à saveur statistique sont tools.ozone.report.getLiveStats, tools.ozone.report.getHistoricalStats, tools.ozone.report.refreshStats et tools.ozone.moderation.getReporterStats. Ceux-là rendent compte des files de modération, pour les modérateurs. getLiveStats est documenté comme « Get live report statistics from the past 24 hours. Filter by queue, moderator, or report type. » Rien de tout cela ne touche à la performance d'une publication.

Pourquoi le protocole définit-il un événement de vue sans jamais le restituer ?

Parce que l'événement de vue circule vers les générateurs de flux, pas vers les auteurs. C'est la partie à citer quand quelqu'un insiste sur le fait que la donnée doit bien se trouver quelque part.

app.bsky.feed.sendInteractions est une procédure dont l'entrée est un tableau d'objets app.bsky.feed.defs#interaction. Chaque interaction nomme un élément par une AT URI et un token d'événement. Les valeurs connues comprennent :

TokenDescription du lexicon
app.bsky.feed.defs#interactionSeen« Feed item was seen by user »
app.bsky.feed.defs#clickthroughItem« User clicked through to the feed item »
app.bsky.feed.defs#clickthroughAuthor« User clicked through to the author of the feed item »
app.bsky.feed.defs#interactionLike« User liked the feed item »
app.bsky.feed.defs#requestLess« Request that less content like the given feed item be shown in the feed »

Le vocabulaire d'une impression existe donc. interactionSeen est, en clair, un événement de vue. Ce qui manque, c'est un chemin de lecture. La description de la procédure indique qu'elle renvoie l'information « back to the feed generator that served them », et son schéma de sortie est un objet vide, {"type": "object", "properties": {}}. Un opérateur qui fait tourner un flux personnalisé peut compter les événements de vue des éléments que son flux a servis. Vous, en tant qu'auteur d'une publication, n'avez aucun endpoint qui renvoie le nombre de fois où votre publication a été vue, dans ce flux ou dans un autre.

Cette asymétrie est la réponse honnête à la raison pour laquelle Bluesky donne l'impression de devoir afficher des compteurs de vues. Le signal est défini, collecté par les clients et livré aux générateurs de flux. Il s'arrête là.

Une personne consulte une application sociale sur son téléphone, en lien avec les chiffres d'engagement qu'une publication affiche réellement.

Où va l'événement de vue
L'utilisateur voit la publication
Le client envoie interactionSeen
app.bsky.feed.sendInteractions
Générateur de flux
L'événement s'arrête au générateur de flux qui a servi la publication. La procédure ne prévoit aucun retour vers l'auteur.

Que pouvez-vous mesurer sur Bluesky aujourd'hui ?

Beaucoup de choses, tant que vous cessez de chercher la portée.

AdaptlyPost
AdaptlyPost

Commencez votre essai gratuit de 7 jours

Analyses multiplateforme

Boîte sociale

Assistant IA

QuestionEndpointDisponible
Combien de J'aime, republications, réponses, citations, signets ?app.bsky.feed.getPosts ou app.bsky.feed.getAuthorFeedOui
Quels comptes ont aimé cette publication ?app.bsky.feed.getLikesOui
Quels comptes l'ont republiée ?app.bsky.feed.getRepostedByOui
Quels comptes l'ont citée ?app.bsky.feed.getQuotesOui
Combien d'abonnés et de publications ce compte a-t-il ?app.bsky.actor.getProfileOui, via followersCount, followsCount, postsCount
Combien de personnes ont vu la publication ?aucunNon
Quel était le taux d'impressions par engagement ?aucunNon

Les listes de comptes nommés méritent plus d'attention qu'elles n'en reçoivent. Sur la plupart des réseaux, vous recevez un total de J'aime et rien d'autre. Bluesky vous remet les comptes, ce qui veut dire que vous pouvez demander d'où viennent vos republications, si les mêmes vingt identifiants portent chaque lancement, et quels abonnés n'ont jamais réagi une seule fois. C'est un autre type d'analyse que les impressions, et sur certaines questions c'est le meilleur.

app.bsky.feed.getPosts accepte un tableau uris avec un maxLength de 25, un traitement par lots qui vérifie un mois de publications avance donc par blocs de 25. app.bsky.feed.getAuthorFeed accepte limit avec un maximum de 100 et une valeur par défaut de 50, plus un cursor, et il est documenté comme « Does not require auth », d'où l'exemple ci-dessus qui tourne sur public.api.bsky.app sans token.

Un analyste étudie un graphique en courbes sur un ordinateur portable, à côté de la section sur la transformation des compteurs en tendance.

Que peut honnêtement vous donner un outil de statistiques Bluesky ?

Deux choses, et il devrait dire clairement laquelle est laquelle.

La première est son propre journal de publication. Un planificateur sait ce qu'il a envoyé, depuis quel compte, à quelle minute, avec quel texte, quels hashtags et quels médias, parce que c'est lui qui a fait l'envoi. Aucune API n'accorde cela ; ce sont des données de première partie que l'outil détient déjà. C'est aussi la moitié qui manque à la plupart des gens, parce qu'un tableau des heures d'envoi est ce qui transforme un tas de compteurs en comparaison.

La seconde, ce sont les compteurs publics, échantillonnés dans le temps. Appeler getAuthorFeed ou getPosts selon un calendrier et stocker likeCount, repostCount, replyCount, quoteCount et bookmarkCount à chaque passage transforme un nombre en courbe, qui montre combien de temps une publication a continué à récolter de l'engagement après sa sortie.

Joignez les deux et vous répondez à de vraies questions : lesquelles de vos publications Bluesky ont gagné de l'engagement, publiées à quelle heure, dans quel format, à côté des mêmes publications sur les autres réseaux de votre calendrier. C'est cette jonction que restituent les statistiques Bluesky d'AdaptlyPost, et la même forme de rapport couvre les autres réseaux via les statistiques de réseaux sociaux.

Ce qu'aucun outil ne peut vous donner, celui-ci compris, ce sont les impressions, la portée, les vues de vidéo ou les visites de profil d'une publication Bluesky. Ces nombres ne sont pas dans l'API, donc un tableau de bord qui les affiche les modélise ou réétiquette autre chose. La question utile à poser à n'importe quel fournisseur est de savoir de quel champ vient le nombre. Si la réponse n'est pas l'un des cinq compteurs ou un total d'abonnés, le nombre est une estimation.

La planification n'y change rien non plus. Publier via un planificateur de publications Bluesky vous donne un journal d'envoi propre à mesurer ; cela ne donne pas à Bluesky un compteur de vues qu'il n'a pas.

Ce que cette page n'affirme pas

Elle n'affirme pas que Bluesky ne livrera jamais de compteurs de vues. La liste des champs s'allonge : bookmarkCount s'est ajouté aux quatre compteurs plus anciens, et app.bsky.bookmark est un namespace complet avec ses propres endpoints de création, de suppression et de listage. Si un viewCount arrive un jour, il apparaîtra dans lexicons/app/bsky/feed/defs.json avant d'apparaître dans le moindre client, et ce fichier est public. Vérifiez-le là plutôt que de vous fier à une capture d'écran.

Questions fréquentes

L'application Bluesky affiche-t-elle un compteur de vues quelque part ?

Non. Le client officiel affiche les mêmes compteurs que ceux renvoyés par l'API, à savoir J'aime, republications, réponses, citations et signets. Il n'y a aucun chiffre de vues ou d'impressions sur une publication, sur un profil ou dans le moindre écran de réglages, parce qu'aucun endpoint n'en fournit.

Existe-t-il un endpoint de statistiques quelque part dans les lexicons de l'AT Protocol ?

Non. Une recherche sur les 404 fichiers de lexicon de bluesky-social/atproto ne renvoie aucun fichier ni champ nommé d'après les statistiques, les insights ou les impressions. Les quatre endpoints contenant « Stats » vivent tous sous tools.ozone, le namespace de l'outillage de modération, et ils rendent compte des signalements de modération plutôt que des publications.

Un outil peut-il estimer les impressions Bluesky à partir du firehose ?

Pas les mesurer, seulement les modéliser. Le firehose com.atproto.sync diffuse les commits de dépôt, un consommateur voit donc la création des enregistrements app.bsky.feed.like et app.bsky.feed.repost au fil de l'eau. Regarder une publication ne crée aucun enregistrement, ce qui veut dire que rien ne traverse le firehose quand quelqu'un lit puis passe son chemin. Tout chiffre d'impressions qui en découle est une sortie de modèle.

app.bsky.feed.sendInteractions me permet-il de voir qui a vu ma publication ?

Non. C'est une procédure, pas une requête. Les clients y poussent des événements d'interaction, dont interactionSeen, et son schéma de sortie est un objet vide. Les événements sont livrés au générateur de flux qui a servi l'élément, il n'y a donc aucune route de retour vers l'auteur de la publication.

Les compteurs d'engagement sont-ils toujours présents dans une réponse de l'API ?

Non. La liste required de app.bsky.feed.defs#postView est ["uri", "cid", "author", "record", "indexedAt"], ce qui laisse chaque compteur facultatif. Traitez un likeCount absent comme une valeur inconnue plutôt que de le ramener à zéro, sinon une panne de service ressemblera à une publication que personne n'a aimée.

AdaptlyPost
AdaptlyPost

Commencez votre essai gratuit de 7 jours

Analyses multiplateforme

Boîte sociale

Assistant IA

Combien de publications puis-je vérifier en un seul appel ?

Vingt-cinq avec app.bsky.feed.getPosts, qui plafonne son tableau uris à maxLength: 25. app.bsky.feed.getAuthorFeed renvoie jusqu'à 100 publications par page avec un cursor pour la suivante, et il ne demande aucune authentification, c'est donc la voie la moins coûteuse quand vous voulez tout l'historique récent d'un compte.

Le bookmarkCount de Bluesky annonce-t-il l'arrivée d'autres métriques ?

bookmarkCount est le plus récent des cinq compteurs, ajouté à côté de likeCount, repostCount, replyCount et quoteCount, et app.bsky.bookmark dispose déjà de son propre namespace complet avec des endpoints pour créer, supprimer et lister. Un viewCount pourrait suivre le même chemin. S'il arrive, il apparaîtra d'abord dans lexicons/app/bsky/feed/defs.json avant tout client, donc c'est ce fichier qu'il faut vérifier, pas une capture d'écran.

Les endpoints de statistiques de tools.ozone comptent-ils comme des statistiques de publication Bluesky ?

Pas pour les publications. Les quatre endpoints statistiques du dépôt, getLiveStats, getHistoricalStats, refreshStats et getReporterStats, se trouvent tous sous tools.ozone, le namespace de modération, et rendent compte des files de modération et des rapporteurs pour les modérateurs. Aucun ne touche aux réponses, aux likes ou à la portée d'une publication.

Dois-je me connecter pour consulter les chiffres d'engagement d'une publication Bluesky ?

Les compteurs publics ne demandent aucune connexion. app.bsky.feed.getAuthorFeed est documenté comme ne nécessitant pas d'authentification, ce qui explique qu'un appel à public.api.bsky.app sans jeton renvoie les mêmes champs likeCount, repostCount, replyCount, quoteCount et bookmarkCount montrés dans cet article. Ce qui se trouve derrière votre propre compte, comme les réglages de notifications, relève d'un autre sujet, mais lire les compteurs publics d'un autre compte ne demande que l'URL.

Faut-il faire confiance à un tableau de bord Bluesky qui affiche des impressions ou une portée ?

Méfiez-vous si le fournisseur ne peut pas nommer le champ. Les impressions, la portée, les vues vidéo et les visites de profil n'existent nulle part dans les lexicons de l'AT Protocol, donc un tableau de bord qui les affiche modélise le chiffre à partir d'autres signaux ou renomme l'un des cinq compteurs réels. Demandez de quel champ provient le nombre ; si la réponse n'est ni likeCount, ni repostCount, ni replyCount, ni quoteCount, ni bookmarkCount, ni un total d'abonnés, c'est une estimation.

Cet article vous a-t-il été utile ?

Dites-nous ce que vous en pensez !

Nous voir plus souvent sur Google

Un clic définit AdaptlyPost comme source préférée. Nos articles remontent alors dans vos À la une, en mode IA et dans les aperçus IA.

Avant de partir...

AdaptlyPost

AdaptlyPost

Planifiez vos contenus sur toutes les plateformes

Gérez tous vos comptes de réseaux sociaux en un seul endroit avec AdaptlyPost.

Analyses multiplateforme

Boîte sociale

Assistant IA

Termes connexes du glossaire

Articles Connexes