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

# Connexion du SDK Kusto C# à Insights

> Utilisez le SDK Kusto C# avec l'authentification Microsoft Entra ID pour interroger les données de jeu de l'ancienne version de PlayFab Insights à partir d'Azure Functions ou d'applications .NET personnalisées.

# Tutoriel : Connexion du SDK Kusto C# à Insights

Ce guide vous aide à commencer à utiliser le SDK Kusto C# avec Insights. Une fois la connexion établie, vous pouvez interroger Insights à partir d'Azure Functions. Pour en savoir plus sur les autres outils auxquels vous pouvez connecter Insights, consultez [Connexion d'outils externes à Insights](/fr/services/playfab/data-analytics/legacy/connectivity).

<Note>
  PlayFab Insights Management a été mis hors service le 31/03/2026. Nous vous recommandons d'utiliser les [connexions Azure Data Explorer (ADX)](/fr/services/playfab/data-analytics/export-data/data-connection-adx) pour gérer vos performances et vos coûts à l'avenir. Si votre titre utilise toujours **Insights**, continuez à consulter cet article pour les détails d'implémentation. Pour plus d'informations, consultez [PlayFab Digest: March feature updates](https://developer.microsoft.com/en-us/games/articles/2026/04/playfab-digest-march-feature-updates/).
</Note>

## Prérequis

### Compte PlayFab authentifié avec AAD

Vous avez besoin d'un compte ou d'un utilisateur PlayFab dont le fournisseur d'authentification est défini sur Microsoft. Le fournisseur d'authentification Microsoft utilise Azure Active Directory (AAD) pour l'authentification, ce qui est nécessaire pour utiliser les services Azure. Consultez [Authentification Azure Active Directory pour Game Manager](/fr/services/playfab/identity/dev-identity/authentication/aad-authentication) pour obtenir des instructions sur la création d'un compte ou d'un utilisateur authentifié par AAD.

Pour vérifier que le compte, ou l'utilisateur, est configuré pour utiliser le fournisseur d'authentification Microsoft :

* Rendez-vous sur [developer.playfab.com](https://developer.playfab.com).
* Sélectionnez **Sign in with Microsoft** pour accéder à votre compte PlayFab.

Si vous parvenez à vous connecter, le compte est configuré pour utiliser le fournisseur d'authentification Microsoft.

### Autorisations Game Manager pour Insights

Vous devez attribuer à votre compte un [rôle d'utilisateur](/fr/services/playfab/identity/dev-identity/permissions/playfab-user-roles) avec les autorisations Game Manager suivantes activées :

* Statut d'administrateur.
* Accès à l'onglet Explorer et aux données associées.
* Accès en lecture et en écriture aux données Analytics.

Vous pouvez créer un nouveau rôle d'utilisateur ou ajouter ces autorisations à un rôle existant.

### Autres prérequis

* [Créer une application Azure Active Directory (AAD) et la connecter à la base de données de votre titre](/fr/services/playfab/data-analytics/legacy/connectivity/creating-AAD-app-for-insights)

## Installer les packages

1. Installez les packages NuGet suivants :
   * Obligatoire : [Microsoft.Azure.Kusto.Data](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Data/)
   * Facultatif : [Microsoft.Azure.Kusto.Ingest](https://www.nuget.org/packages/Microsoft.Azure.Kusto.Ingest/)
   * Pour d'autres packages facultatifs, consultez la [documentation du SDK Kusto .NET](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/netfx/about-the-sdk)
2. Voici un exemple de code pour commencer.

```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);
                    }
                }
            }
        }
    }
}
```

## Ressources supplémentaires

* [Exemples Azure Kusto .NET](https://github.com/Azure/azure-kusto-samples-dotnet)
* [Documentation de la bibliothèque cliente Kusto](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/netfx/about-kusto-data)


## Related topics

- [Connexion d'outils externes à Insights](/fr/services/playfab/data-analytics/legacy/connectivity/index.md)
- [Connexion de Kusto Explorer à Insights](/fr/services/playfab/data-analytics/legacy/connectivity/connecting-kusto-explorer-to-insights.md)
- [Connexion de Python à Insights](/fr/services/playfab/data-analytics/legacy/connectivity/connecting-python-to-insights.md)
- [Connexion de Grafana à Insights](/fr/services/playfab/data-analytics/legacy/connectivity/connecting-grafana-to-insights.md)
- [Connexion d'Azure Data Explorer à Insights](/fr/services/playfab/data-analytics/legacy/connectivity/connecting-azure-data-explorer-to-insights.md)
