Glosario

Cinco contadores de interacción: ¿Bluesky tiene analíticas?

Taras Shynkarenko
Taras Shynkarenko
•Actualizado: •10 min de lectura
Cinco contadores de interacción: ¿Bluesky tiene analíticas?Cinco contadores de interacción: ¿Bluesky tiene analíticas?

TL;DR, Respuesta Rápida

10 min de lectura

Bluesky no expone ningún contador de vistas, ningún contador de impresiones ni ningún endpoint de analíticas. La definición app.bsky.feed.defs#postView lleva exactamente cinco contadores, likeCount, repostCount, replyCount, quoteCount y bookmarkCount, y ninguno de los trece namespaces bajo app.bsky es un namespace de analíticas. El protocolo sí define un evento interactionSeen, pero es solo de escritura y va a los generadores de feeds, no al autor de la publicación.

¿Bluesky tiene analíticas?

Pregunta si Bluesky tiene analíticas y la respuesta es no: los lexicons del AT Protocol que definen cada respuesta de la API de Bluesky no llevan contador de vistas, ni contador de impresiones, ni endpoint de analíticas. Una publicación vuelve con cinco contadores de interacción. Un perfil vuelve con totales de seguidores, seguidos y publicaciones. Nada en ningún sitio te dice cuánta gente vio lo que publicaste.

Eso es una afirmación sobre una ausencia, así que aquí está exactamente lo que se comprobó antes de hacerla, el 10 de septiembre de 2026:

  • Todos los archivos de lexicon en bluesky-social/atproto en la rama main, 404 archivos JSON en total. Una búsqueda que ignora mayúsculas y minúsculas sobre todos ellos devuelve cero apariciones de impression, viewCount, analytic e insight.
  • La definición de postView en lexicons/app/bsky/feed/defs.json, campo por campo.
  • El listado del directorio lexicons/app/bsky, para nombrar cada namespace que existe.
  • Una llamada en vivo sin autenticar al AppView público, para confirmar que el servicio en marcha devuelve lo que dice el esquema.

La afirmación cubre los lexicons de primera parte y el AppView público. No dice nada sobre los paneles internos que Bluesky PBC opere para sí misma, ni sobre servicios de terceros que modelan el alcance a partir de otras señales.

¿Qué campos lleva realmente app.bsky.feed.defs#postView?

Quince, y cinco de ellos son contadores.

CampoTipoQué te da
uristring, at-uriLa dirección de la publicación
cidstring, cidHash de contenido de esta versión del registro
authorrefapp.bsky.actor.defs#profileViewBasic
recordunknownEl registro de la publicación en sí, texto incluido
embedunionImágenes, vídeo, enlace externo o registro citado
replyCountintegerRespuestas
repostCountintegerRepublicaciones
likeCountintegerMe gusta
quoteCountintegerPublicaciones citadas
bookmarkCountintegerMarcadores
indexedAtstring, datetimeCuándo indexó el AppView la publicación, no cuándo se escribió
viewerrefTu propia relación con la publicación, por ejemplo si le diste me gusta
labelsarrayEtiquetas de moderación adjuntas a la publicación
threadgaterefRestricciones de respuesta en el hilo
debugunknownDescrito en el lexicon como "Debug information for internal development"

Dos detalles de esa tabla son fáciles de pasar por alto. indexedAt es una marca de tiempo de indexación, así que es el campo equivocado para usarlo como hora de publicación; el valor createdAt dentro de record es el que quieres. Y los contadores no están en la lista required de la definición, que dice ["uri", "cid", "author", "record", "indexedAt"]. Una respuesta conforme puede omitir likeCount por completo, así que el código que lo lee debería tratar un valor ausente como desconocido y no como cero.

Aquí está el servicio en marcha diciendo lo mismo:

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": []
}

Cinco claves que terminan en Count. Ninguna sexta.

¿Existe un namespace de analíticas bajo app.bsky?

No. Trece namespaces cuelgan de app.bsky, y cada uno tiene un trabajo que no es medir.

NamespaceQué cubre
app.bsky.actorPerfiles, preferencias, búsqueda de cuentas
app.bsky.ageassuranceEstado de la verificación de edad
app.bsky.bookmarkCrear, borrar y listar marcadores
app.bsky.contactImportación de contactos, verificación de teléfono, descarte de coincidencias
app.bsky.draftBorradores guardados en el servidor
app.bsky.embedFormas de incrustado de imagen, vídeo, externo y registro
app.bsky.feedPublicaciones, me gusta, republicaciones, citas, hilos, generadores de feeds
app.bsky.graphSeguimientos, bloqueos, silencios, listas, starter packs
app.bsky.labelerServicios de etiquetado
app.bsky.notificationLista de notificaciones, contador de no leídas, registro de push
app.bsky.richtextFacetas de texto como enlaces y menciones
app.bsky.unspeccedEndpoints inestables que usa el cliente oficial
app.bsky.videoSubida de vídeo y estado del trabajo

Amplía la búsqueda más allá de app.bsky y el cuadro se mantiene. Las otras raíces del repositorio son com.atproto para la fontanería del protocolo, chat.bsky para mensajes directos, tools.ozone para moderación, más internal.bsky, site.standard y com.germnetwork. Los únicos endpoints de todo el conjunto con sabor estadístico son tools.ozone.report.getLiveStats, tools.ozone.report.getHistoricalStats, tools.ozone.report.refreshStats y tools.ozone.moderation.getReporterStats. Esos informan sobre colas de moderación para moderadores. getLiveStats está documentado como "Get live report statistics from the past 24 hours. Filter by queue, moderator, or report type." Nada de eso toca el rendimiento de una publicación.

¿Por qué el protocolo define un evento de visto y nunca lo reporta?

Porque el evento de visto fluye hacia los generadores de feeds, no hacia los autores. Esta es la parte que conviene citar cuando alguien insiste en que los datos tienen que estar ahí en alguna parte.

app.bsky.feed.sendInteractions es un procedimiento cuya entrada es un array de objetos app.bsky.feed.defs#interaction. Cada interacción nombra un elemento mediante una AT URI y un token de evento. Los valores conocidos incluyen:

TokenDescripción del 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"

Así que el vocabulario para una impresión existe. interactionSeen es, en términos llanos, un evento de visualización. Lo que falta es una vía de lectura. La descripción del propio procedimiento dice que envía la información "back to the feed generator that served them", y su esquema de salida es un objeto vacío, {"type": "object", "properties": {}}. Quien opera un feed personalizado puede contar los eventos de visto de los elementos que su feed sirvió. Tú, como autor de una publicación, no tienes ningún endpoint que devuelva cuántas veces se vio tu publicación, ni en ese feed ni en ningún otro.

Esa asimetría es la respuesta honesta a por qué Bluesky da la sensación de que debería tener contadores de vistas. La señal está definida, la recogen los clientes y se entrega a los generadores de feeds. Ahí se detiene.

Una persona revisa una app social en el móvil, en referencia a las cifras de interacción que sí muestra una publicación.

Adónde va el evento de visto
El usuario ve la publicación
El cliente envía interactionSeen
app.bsky.feed.sendInteractions
Generador de feed
El evento termina en el generador de feed que sirvió la publicación; el procedimiento no tiene ruta de vuelta al autor.

¿Qué puedes medir hoy en Bluesky?

Bastante, siempre que dejes de buscar alcance.

AdaptlyPost
AdaptlyPost

Empieza tu prueba gratis de 7 días

Analíticas multiplataforma

Bandeja Social

Asistente con IA

PreguntaEndpointDisponible
¿Cuántos me gusta, republicaciones, respuestas, citas, marcadores?app.bsky.feed.getPosts o app.bsky.feed.getAuthorFeedSí
¿Qué cuentas dieron me gusta a esta publicación?app.bsky.feed.getLikesSí
¿Qué cuentas la republicaron?app.bsky.feed.getRepostedBySí
¿Qué cuentas la citaron?app.bsky.feed.getQuotesSí
¿Cuántos seguidores y publicaciones tiene esta cuenta?app.bsky.actor.getProfileSí, como followersCount, followsCount, postsCount
¿Cuánta gente vio la publicación?ningunoNo
¿Cuál fue la tasa de impresiones a interacción?ningunoNo

Las listas de cuentas con nombre merecen más atención de la que reciben. En la mayoría de las redes recibes un total de me gusta y nada más. Bluesky te entrega las cuentas, lo que significa que puedes preguntar de quién vienen tus republicaciones, si los mismos veinte identificadores sostienen cada lanzamiento y qué seguidores no han interactuado nunca. Ese es un tipo de análisis distinto al de las impresiones, y en algunas preguntas es mejor.

app.bsky.feed.getPosts acepta un array uris con un maxLength de 25, así que un trabajo por lotes que revise un mes de publicaciones avanza en bloques de 25. app.bsky.feed.getAuthorFeed acepta limit con un máximo de 100 y un valor por defecto de 50, más un cursor, y está documentado como "Does not require auth", que es por lo que el ejemplo de arriba corre contra public.api.bsky.app sin token.

Un analista observa un gráfico de líneas en el portátil, junto a la sección sobre convertir contadores de publicaciones en una tendencia.

¿Qué puede darte honestamente una herramienta de analíticas de Bluesky?

Dos cosas, y debería dejar claro cuál es cuál.

La primera es su propio registro de publicación. Un programador de publicaciones sabe qué envió, desde qué cuenta, en qué minuto, con qué texto, hashtags y medios, porque fue él quien lo envió. Ninguna API concede eso; son datos de primera parte que la herramienta ya tiene. También es la mitad que le falta a casi todo el mundo, porque una hoja de cálculo con horas de envío es lo que convierte un montón de contadores en una comparación.

La segunda son los contadores públicos, muestreados a lo largo del tiempo. Llamar a getAuthorFeed o getPosts de forma programada y guardar likeCount, repostCount, replyCount, quoteCount y bookmarkCount en cada pasada convierte un número en una curva, que muestra cuánto tiempo siguió acumulando interacción una publicación después de salir.

Une esas dos y puedes responder preguntas reales: cuáles de tus publicaciones en Bluesky ganaron interacción, publicadas a qué hora, en qué formato, junto a esas mismas publicaciones en las demás redes de tu calendario. Esa unión es lo que reporta las analíticas de Bluesky de AdaptlyPost, y la misma forma de informe cubre las demás redes a través de analíticas de redes sociales.

Lo que ninguna herramienta puede darte, incluida esta, son impresiones, alcance, visualizaciones de vídeo o visitas al perfil de una publicación de Bluesky. Esos números no están en la API, así que un panel que los muestra o los está modelando o está reetiquetando otra cosa. La pregunta útil para cualquier proveedor es de qué campo salió el número. Si la respuesta no es uno de los cinco contadores o un total de seguidores, el número es una estimación.

Programar publicaciones tampoco cambia nada de esto. Publicar a través de un programador de publicaciones de Bluesky te da un registro de envíos limpio contra el que medir; no le da a Bluesky un contador de vistas que no tiene.

Lo que esta página no afirma

No afirma que Bluesky nunca vaya a lanzar contadores de vistas. La lista de campos crece: bookmarkCount está junto a los cuatro contadores más antiguos, y app.bsky.bookmark es un namespace completo con sus propios endpoints de creación, borrado y listado. Si alguna vez aterriza un viewCount, aparecerá en lexicons/app/bsky/feed/defs.json antes de aparecer en ningún cliente, y ese archivo es público. Compruébalo ahí en lugar de fiarte de una captura de pantalla.

Preguntas frecuentes

¿Muestra la app de Bluesky un contador de vistas en algún sitio?

No. El cliente oficial renderiza los mismos contadores que devuelve la API, que son me gusta, republicaciones, respuestas, citas y marcadores. No hay cifra de vistas ni de impresiones en una publicación, en un perfil ni en ninguna pantalla de ajustes, porque ningún endpoint la suministra.

¿Hay algún endpoint de analíticas en los lexicons del AT Protocol?

No. Una búsqueda en los 404 archivos de lexicon de bluesky-social/atproto no devuelve ningún archivo ni campo nombrado por analíticas, insights o impresiones. Los cuatro endpoints que contienen "Stats" viven todos bajo tools.ozone, el namespace de herramientas de moderación, e informan sobre reportes de moderación en lugar de sobre publicaciones.

¿Puede una herramienta estimar las impresiones de Bluesky desde el firehose?

No medir, solo modelar. El firehose com.atproto.sync transmite commits de repositorio, así que un consumidor ve la creación de registros app.bsky.feed.like y app.bsky.feed.repost según ocurren. Ver una publicación no crea ningún registro, lo que significa que nada cruza el firehose cuando alguien lee y sigue desplazándose. Cualquier cifra de impresiones derivada de ahí es la salida de un modelo.

¿Me permite app.bsky.feed.sendInteractions ver quién vio mi publicación?

No. Es un procedimiento, no una consulta. Los clientes empujan eventos de interacción hacia él, incluido interactionSeen, y su esquema de salida es un objeto vacío. Los eventos se entregan al generador de feeds que sirvió el elemento, así que no hay ruta de vuelta al autor de la publicación.

¿Están siempre presentes los contadores de interacción en una respuesta de la API?

No. La lista required de app.bsky.feed.defs#postView es ["uri", "cid", "author", "record", "indexedAt"], lo que deja opcional a cada contador. Trata un likeCount ausente como un valor desconocido en lugar de ponerlo a cero, o una caída del servicio parecerá una publicación que no le gustó a nadie.

AdaptlyPost
AdaptlyPost

Empieza tu prueba gratis de 7 días

Analíticas multiplataforma

Bandeja Social

Asistente con IA

¿Cuántas publicaciones puedo consultar por contadores en una sola llamada?

Veinticinco con app.bsky.feed.getPosts, que limita su array uris a maxLength: 25. app.bsky.feed.getAuthorFeed devuelve hasta 100 publicaciones por página con un cursor para la siguiente, y no necesita autenticación, así que es la vía más barata cuando quieres el historial reciente de una cuenta entera.

¿Significa el bookmarkCount de Bluesky que llegarán más métricas?

bookmarkCount es el más reciente de los cinco contadores, sumado junto a likeCount, repostCount, replyCount y quoteCount, y app.bsky.bookmark ya tiene su propio namespace completo con endpoints para crear, borrar y listar. Un viewCount podría seguir el mismo camino. Si llega, aparecerá primero en lexicons/app/bsky/feed/defs.json antes que en cualquier cliente, así que ese archivo es el lugar donde comprobarlo, no una captura de pantalla.

¿Cuentan los endpoints de estadísticas de tools.ozone como analíticas de publicaciones de Bluesky?

Ahí no encontrarás analíticas de publicaciones. Los cuatro endpoints de estadísticas del repositorio, getLiveStats, getHistoricalStats, refreshStats y getReporterStats, están todos bajo tools.ozone, el namespace de moderación, y reportan sobre colas de moderación y denunciantes para moderadores. Ninguno toca respuestas, me gusta ni alcance de una publicación.

¿Necesito iniciar sesión para consultar las cifras de interacción de una publicación de Bluesky?

Los contadores públicos no piden inicio de sesión. app.bsky.feed.getAuthorFeed está documentado como que no requiere autenticación, por eso una llamada a public.api.bsky.app sin token devuelve los mismos campos likeCount, repostCount, replyCount, quoteCount y bookmarkCount que muestra este artículo. Lo que queda detrás de tu propia cuenta, como los ajustes de notificaciones, es otro asunto, pero leer los contadores públicos de otra cuenta solo necesita la URL.

¿Debería confiar en un panel de Bluesky que muestra impresiones o alcance?

Desconfía si el proveedor no puede nombrar el campo. Las impresiones, el alcance, las vistas de video y las visitas al perfil no existen en los lexicons del AT Protocol, así que un panel que los muestra está modelando la cifra a partir de otras señales o renombrando uno de los cinco contadores reales. Pregunta de qué campo sale el número; si la respuesta no es likeCount, repostCount, replyCount, quoteCount, bookmarkCount o un total de seguidores, es una estimación.

¿Te resultó útil este artículo?

¡Cuéntanos qué te parece!

Vernos más en Google

Un clic marca AdaptlyPost como fuente preferida y nuestros artículos aparecen más arriba en tus Noticias destacadas, el modo IA y los resúmenes con IA.

Antes de irte...

AdaptlyPost

AdaptlyPost

Programa tu contenido en todas las plataformas

Gestiona todas tus cuentas de redes sociales en un solo lugar con AdaptlyPost.

Analíticas multiplataforma

Bandeja Social

Asistente con IA

Términos relacionados del glosario

Artículos Relacionados