> ## 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.

# Conexión del SDK de C# de Kusto a Insights

> Use el SDK de C# de Kusto con autenticación de Microsoft Entra ID para consultar los datos del juego de la versión heredada de PlayFab Insights desde Azure Functions o aplicaciones .NET personalizadas.

# Tutorial: Conexión del SDK de C# de Kusto a Insights

Esta guía le ayuda a empezar a usar el SDK de C# de Kusto junto con Insights. Después de conectarse, puede consultar sus datos de Insights desde funciones de Azure. Para obtener más información sobre otras herramientas que puede conectar a Insights, consulte [Conexión de herramientas externas a Insights](/services/playfab/data-analytics/legacy/connectivity).

<Note>
  PlayFab Insights Management se retiró el 31/03/2026. Le recomendamos usar las [conexiones de Azure Data Explorer (ADX)](/services/playfab/data-analytics/export-data/data-connection-adx) para administrar su rendimiento y costos de ahora en adelante. Si su título todavía usa **Insights**, siga consultando este artículo para conocer los detalles de implementación. Para obtener más información, consulte [PlayFab Digest: March feature updates](https://developer.microsoft.com/en-us/games/articles/2026/04/playfab-digest-march-feature-updates/).
</Note>

## Requisitos previos

### Cuenta de PlayFab autenticada con AAD

Necesita una cuenta o un usuario de PlayFab cuyo proveedor de autenticación esté establecido en Microsoft. El proveedor de autenticación de Microsoft usa Azure Active Directory (AAD) para la autenticación, lo cual es obligatorio para usar los servicios de Azure. Consulte [Autenticación de Azure Active Directory para Game Manager](/services/playfab/identity/dev-identity/authentication/aad-authentication) para obtener instrucciones sobre cómo crear una cuenta o un usuario autenticado con AAD.

Para comprobar que la cuenta, o el usuario, está configurado para usar el proveedor de autenticación de Microsoft:

* Visite [developer.playfab.com](https://developer.playfab.com).
* Seleccione **Sign in with Microsoft** para acceder a su cuenta de PlayFab.

Si puede iniciar sesión, la cuenta está configurada para usar el proveedor de autenticación de Microsoft.

### Permisos de Game Manager para Insights

Debe asignar a su cuenta un [rol de usuario](/services/playfab/identity/dev-identity/permissions/playfab-user-roles) con los siguientes permisos de Game Manager habilitados:

* Estado de administrador.
* Acceso a la pestaña Explorer y a los datos asociados.
* Acceso de lectura y escritura a los datos de Analytics.

Puede crear un rol de usuario nuevo o agregar estos permisos a un rol existente.

### Otros requisitos previos

* [Crear una aplicación de Azure Active Directory (AAD) y conectarla a la base de datos de su título](/services/playfab/data-analytics/legacy/connectivity/creating-AAD-app-for-insights)

## Instalar paquetes

1. Instale los siguientes paquetes NuGet:
   * Obligatorio: [Microsoft.Azure.Kusto.Data](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Data/)
   * Opcional: [Microsoft.Azure.Kusto.Ingest](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Ingest/)
   * Para ver más paquetes opcionales, consulte la [documentación del SDK de .NET de Kusto](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/netfx/about-the-sdk)
2. A continuación se muestra código de ejemplo para empezar.

```csharp theme={null}
namespace HelloPlayFabInsights
{
    using System;
    using Kusto.Data;
    using Kusto.Data.Common;
    using Kusto.Data.Net.Client;

    class Program
    {
        const string Cluster = "https://insights.playfab.com";
        const string Database = "<title id>";
        const string AzureAuthority = "microsoft.onmicrosoft.com";
        const string ClientId = "<app id>";
        const string ClientSecret = "<app secret>";

        static void Main()
        {
            var kcsb = new KustoConnectionStringBuilder(Cluster, Database).WithAadApplicationKeyAuthentication(ClientId, ClientSecret, AzureAuthority);

            Console.WriteLine("Run Query...");
            RunQuery(kcsb);

            Console.WriteLine("Run Command...");
            RunCommand(kcsb);
            
        }
    
        /// <summary>
        /// Run a query on your Insights database, and write the results to the console.
        /// </summary>
        /// <param name="kcsb"></param>
        static void RunQuery(KustoConnectionStringBuilder kcsb)
        {
            using (var queryProvider = KustoClientFactory.CreateCslQueryProvider(kcsb))
            {
                var query = "['events.all'] | limit 10";

                var clientRequestProperties = new ClientRequestProperties() {
                    Application = "DotNetSDK",
                    ClientRequestId = Guid.NewGuid().ToString() 
                };
                using (var reader = queryProvider.ExecuteQuery(query, clientRequestProperties))
                { 
                    while (reader.Read())
                    {
                        string name = reader.GetString(2);
                        string titleId = reader.GetString(5);
                        DateTime timestamp = reader.GetDateTime(8);
                        Console.WriteLine("{0}\t{1}\t{2}", name, titleId, timestamp);
                    }
                }
            }
        }

        /// <summary>
        /// Run the ".show tables" command on your Insights database, and write the results to the console.
        /// </summary>
        /// <param name="kcsb"></param>
        static void RunCommand(KustoConnectionStringBuilder kcsb)
        {
            using (var commandProvider = KustoClientFactory.CreateCslAdminProvider(kcsb))
            {
                var command = ".show tables";

                var clientRequestProperties = new ClientRequestProperties()
                {
                    Application = "DotNetSDK",
                    ClientRequestId = Guid.NewGuid().ToString()
                };
                using (var reader = commandProvider.ExecuteControlCommand(command, clientRequestProperties))
                {
                    while (reader.Read())
                    {
                        string tableName = reader.GetString(0);
                        string databaseName = reader.GetString(1);
                        Console.WriteLine("{0}\t{1}", tableName, databaseName);
                    }
                }
            }
        }
    }
}
```

## Recursos adicionales

* [Ejemplos de .NET de Azure Kusto](https://github.com/Azure/azure-kusto-samples-dotnet)
* [Documentación de la biblioteca cliente de Kusto](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/netfx/about-kusto-data)


## Related topics

- [Conexión de herramientas externas con Insights](/es/services/playfab/data-analytics/legacy/connectivity/index.md)
- [Conexión de Kusto Explorer a Insights](/es/services/playfab/data-analytics/legacy/connectivity/connecting-kusto-explorer-to-insights.md)
- [Conexión de Python a Insights](/es/services/playfab/data-analytics/legacy/connectivity/connecting-python-to-insights.md)
- [Conexión de Grafana a Insights](/es/services/playfab/data-analytics/legacy/connectivity/connecting-grafana-to-insights.md)
- [Conexión de Azure Data Explorer a Insights](/es/services/playfab/data-analytics/legacy/connectivity/connecting-azure-data-explorer-to-insights.md)
