> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Adición de datos contextuales a las tablas de clasificación

> Adjunte metadatos personalizados a cada fila de una tabla de clasificación de PlayFab para registrar el contexto de la partida, los detalles del dispositivo o las señales antitrampas junto con las puntuaciones y el rango de los jugadores.

En este tutorial, vamos a explicar cómo agregar información contextual cada vez que se actualiza una tabla de clasificación. Es posible que el estudio de juegos quiera agregar algunos detalles sobre el contexto en el que un jugador logró una puntuación, o puede haber una característica dentro del juego relacionada con esa puntuación determinada.

Ahora vamos a pasar de nuestros ejemplos anteriores, donde teníamos un juego arcade, a un juego de disparos altamente competitivo. En este ejemplo,
el juego tiene un éxito tremendo, pero se enfrenta a un desafío. Hay demasiadas quejas de personas que "hackean" el juego con componentes
externos que eliminan el retroceso de las armas y mejoran la asistencia de apuntado. Así que ahora se nos encarga registrar más información sobre todos
los componentes usados y la información de red de nuestras partidas clasificatorias.

## Creación de una tabla de clasificación

Para mostrar cómo abordar este escenario, vamos a tomar la definición de tabla de clasificación de la página
[Cómo hacer más con las tablas de clasificación](/services/playfab/community/leaderboards/doing-more-with-leaderboards). A partir de esta definición, vamos
a ver cómo agregar metadatos a cada fila que se agregue a la tabla de clasificación.

```C# theme={null}
public static async Task CreateLeaderboardDefinitionAsync(PlayFabAuthenticationContext context, string leaderboardName)
{
    PlayFabProgressionInstanceAPI leaderboardsAPI = new PlayFabProgressionInstanceAPI(context);
    CreateLeaderboardDefinitionRequest leaderboardDefinitionRequest = new CreateLeaderboardDefinitionRequest()
    {
        AuthenticationContext = context,
        Name = leaderboardName,
        SizeLimit = 1000,
        EntityType = "title_player_account",
        VersionConfiguration = new VersionConfiguration()
        {
            MaxQueryableVersions = 1,
            ResetInterval = ResetInterval.Manual,
        },
        Columns = new List<LeaderboardColumn>()
        {
            new LeaderboardColumn()
            {
                Name = "Eliminations",
                SortDirection = LeaderboardSortDirection.Descending,
            },
            new LeaderboardColumn()
            {
                Name = "Assists",
                SortDirection = LeaderboardSortDirection.Descending,
            }
            new LeaderboardColumn()
            {
                Name = "Deaths",
                SortDirection = LeaderboardSortDirection.Ascending,
            }         
        }
    };

    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createLbDefinitionResult = await leaderboardsAPI.CreateLeaderboardDefinitionAsync(leaderboardDefinitionRequest);
}
```

### Adición de metadatos a cada fila

Queremos saber si el jugador tiene algún hardware no autorizado que afecte al juego o cualquier otro software malintencionado que pueda
mejorar el rendimiento del jugador. El sistema antitrampas es capaz de obtener toda esta información, pero como hay un
número enorme de jugadores, vamos a centrarnos en la comprobación y marcado de las puntuaciones altas junto con los metadatos de los componentes externos.

Para realizar esta acción, vamos a usar la API UpdateLeaderboard. Aquí podemos ver el ejemplo del SDK:

```C# theme={null}
public static async Task UpdateLeaderboardForPlayer(PlayFabAuthenticationContext context, string leaderboardName, string entityId, int score)
{
    PlayFabProgressionInstanceAPI leaderboardsAPI = new PlayFabProgressionInstanceAPI(context);
    UpdateLeaderboardEntriesRequest updateLeaderboardRequest = new UpdateLeaderboardEntriesRequest()
    {
        Entries = new List<LeaderboardEntryUpdate>()
        {
            new LeaderboardEntryUpdate()
            {
                EntityId = entityId,
                Scores = new List<string> { score.ToString(), (score + 1).ToString(), (score + 2).ToString() },
                Metadata = "AntiCheat Data",
            }
        },
        AuthenticationContext = context,
        LeaderboardName = leaderboardName,
    };

    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> updateResult = await leaderboardsAPI.UpdateLeaderboardEntriesAsync(updateLeaderboardRequest);
}
```

Aquí, usamos el parámetro `Metadata` dentro de `LeaderboardEntryUpdate` para agregar información que sea significativa para un desarrollador. En este caso, lo usamos para almacenar datos antitrampas. Con este ejemplo, ya estamos equipados para registrar toda la información relevante de nuestros mejores jugadores, lo que permite a los moderadores del juego
tomar mejores decisiones sobre a quién banear.

## Conclusiones

En este tutorial, aprendimos a realizar las siguientes operaciones:

* Crear una tabla de clasificación de varias columnas.
* Agregar metadatos a cada fila de la tabla de clasificación.

## Consulte también

* [Cómo hacer más con las tablas de clasificación](/services/playfab/community/leaderboards/doing-more-with-leaderboards).
* [Creación de una tabla de clasificación básica](/services/playfab/community/leaderboards/create-basic-leaderboard).
* [Límites ](/services/playfab/community/leaderboards/limits-leaderboards).
* [Cuota ](/services/playfab/community/leaderboards/quota-leaderboards).
* [Tablas de clasificación de grupos](/services/playfab/community/leaderboards/group-leaderboards).
* [Niveles manuales](/services/playfab/community/leaderboards/manual-tiers).
* [Clasificación de jugadores por estadísticas](/services/playfab/community/leaderboards/leaderboards-linked-to-stats)
* [Adición de datos contextuales a las tablas de clasificación](/services/playfab/community/leaderboards/metadata-leaderboards)
* [Referencia de API](/services/playfab/community/leaderboards/api-reference)
* [Tablas de clasificación y CloudScript](/services/playfab/community/leaderboards/leaderboards-cloudscript).
* [Tablas de clasificación con PlayStream](/services/playfab/community/leaderboards/leaderboards-with-playstream-and-telemetry)


## Related topics

- [Límites de las tablas de clasificación](/es/services/playfab/community/leaderboards/limits-leaderboards.md)
- [Tablas de clasificación de temporada](/es/services/playfab/community/leaderboards/seasonal-leaderboards.md)
- [Tablas de clasificación de grupos](/es/services/playfab/community/leaderboards/group-leaderboards.md)
- [Cuota de tablas de clasificación](/es/services/playfab/community/leaderboards/quota-leaderboards.md)
- [Inicio rápido de tablas de clasificación](/es/services/playfab/community/leaderboards/quickstart-leaderboards.md)
