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

# Conectando o SDK do Kusto para C# ao Insights

> Use o SDK do Kusto para C# com a autenticação do Microsoft Entra ID para consultar dados de jogos do PlayFab Insights herdado no Azure Functions ou em aplicativos .NET personalizados.

# Tutorial: Conectando o SDK do Kusto para C# ao Insights

Este guia ajuda você a começar a usar o SDK do Kusto para C# com o Insights. Após a conexão, você pode consultar seu Insights a partir do Azure Functions. Para saber mais sobre outras ferramentas às quais você pode conectar o Insights, confira [Conectando ferramentas externas ao Insights](/pt-BR/services/playfab/data-analytics/legacy/connectivity).

<Note>
  O PlayFab Insights Management foi desativado em 31/03/2026. Recomendamos usar as [Conexões do Azure Data Explorer (ADX)](/pt-BR/services/playfab/data-analytics/export-data/data-connection-adx) para gerenciar seu desempenho e custo daqui em diante. Se o seu título ainda estiver usando o **Insights**, continue consultando este artigo para obter detalhes de implementação. Para obter mais informações, confira [PlayFab Digest: March feature updates](https://developer.microsoft.com/en-us/games/articles/2026/04/playfab-digest-march-feature-updates/).
</Note>

## Pré-requisitos

### Conta do PlayFab autenticada com AAD

Você precisa de uma conta ou usuário do PlayFab cujo provedor de autenticação esteja definido como Microsoft. O provedor de autenticação da Microsoft usa o Azure Active Directory (AAD) para autenticação, o que é necessário para usar os serviços do Azure. Confira [Autenticação do Azure Active Directory para o Game Manager](/pt-BR/services/playfab/identity/dev-identity/authentication/aad-authentication) para obter instruções sobre como criar uma conta ou usuário autenticado pelo AAD.

Para verificar se a conta, ou o usuário, está definida para usar o provedor de autenticação da Microsoft:

* Acesse [developer.playfab.com](https://developer.playfab.com).
* Selecione **Entrar com a Microsoft** para acessar sua conta do PlayFab.

Se você conseguir entrar, a conta está definida para usar o provedor de autenticação da Microsoft.

### Permissões do Game Manager para o Insights

Você precisa atribuir à sua conta uma [função de usuário](/pt-BR/services/playfab/identity/dev-identity/permissions/playfab-user-roles) com as seguintes permissões do Game Manager habilitadas:

* Status de administrador.
* Acesso à guia Explorer e aos dados associados.
* Acesso de leitura e gravação aos dados de Analytics.

Você pode criar uma nova função de usuário ou adicionar essas permissões a uma função existente.

### Outros pré-requisitos

* [Criar um aplicativo do Azure Active Directory (AAD) e conectá-lo ao banco de dados do seu título](/pt-BR/services/playfab/data-analytics/legacy/connectivity/creating-AAD-app-for-insights)

## Instalar pacotes

1. Instale os seguintes pacotes NuGet:
   * Obrigatório: [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 mais pacotes opcionais, confira a [documentação do SDK do Kusto para .NET](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/netfx/about-the-sdk)
2. Veja abaixo um código de exemplo para começar.

```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 adicionais

* [Exemplos do Azure Kusto para .NET](https://github.com/Azure/azure-kusto-samples-dotnet)
* [Documentação da biblioteca de cliente do Kusto](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/netfx/about-kusto-data)


## Related topics

- [Conectando ferramentas externas ao Insights](/pt-BR/services/playfab/data-analytics/legacy/connectivity/index.md)
- [Conectando o Kusto Explorer ao Insights](/pt-BR/services/playfab/data-analytics/legacy/connectivity/connecting-kusto-explorer-to-insights.md)
- [Conectando o Python ao Insights](/pt-BR/services/playfab/data-analytics/legacy/connectivity/connecting-python-to-insights.md)
- [Conectando o Grafana ao Insights](/pt-BR/services/playfab/data-analytics/legacy/connectivity/connecting-grafana-to-insights.md)
- [Conectando o Azure Data Explorer ao Insights](/pt-BR/services/playfab/data-analytics/legacy/connectivity/connecting-azure-data-explorer-to-insights.md)
