Tutorial: Connecting Python to Insights
This guide helps you get started using Python with Insights. It uses the Azure Kusto Python SDK. After connecting, you can query your game data with Python and use the library from Jupyter Notebooks. To learn more about other tools you can connect with Insights, see Connecting external tools to Insights.
Note
PlayFab Insights Management was deprecated on December 11th, 2023. We recommend using Azure Data Explorer (ADX) Connections to manage your performance and cost going forward. If your title is still using Insights, continue to see this article for implementation details. For more information, see Insights Deprecation Blog.
Prerequisites
PlayFab account authenticated with Azure AD
You need a PlayFab account or user for which the authentication provider is set to Microsoft. The Microsoft authentication provider uses Azure Active Directory (Azure AD) for authentication which is required to use the Azure services. See Azure Active Directory Authentication for Game Manager for instructions on creating an Azure AD-authenticated account or user.
To verify that the account, or user, is set to use the Microsoft authentication provider:
- Visit the PlayFab log in page.
- Select Sign in with Microsoft to access your PlayFab account.
If you can sign in, then the account is set to use the Microsoft authentication provider.
Game Manager permissions for Insights
You need to assign your account a user role with the following Game Manager permissions enabled:
- Admin status.
- Access to the Explorer tab and associated data.
- Read and write access to Analytics data.
You can either create a new user role or add these permissions to an existing role.
Other prerequisites
Install Python packages
Install the following python packages using pip:
- azure-kusto-data
- azure-kusto-ingest
- adal
Below is an example script to get started with.
from azure.kusto.data.exceptions import KustoServiceError
from azure.kusto.data.request import KustoClient, KustoConnectionStringBuilder, ClientRequestProperties
from msal import ConfidentialClientApplication
cluster = "https://insights.playfab.com"
# These parameters are taken from your Azure app
client_id = "<Azure app client id>"
client_secret = "<Azure app client secret>"
tenant = "<Azure app tenant id>"
authority_url = "https://login.microsoftonline.com/" + tenant
client_instance = ConfidentialClientApplication(
client_id=client_id,
client_credential=client_secret,
authority=authority_url,
)
# Acquire a token from AAD to pass to PlayFab
_scopes = ["https://help.kusto.windows.net"]
token_response = client_instance.acquire_token_for_client(scopes=_scopes)
token = None
if token_response:
if token_response['access_token']:
token = token_response['access_token']
kcsb = KustoConnectionStringBuilder.with_aad_application_token_authentication(cluster, token)
client = KustoClient(kcsb)
db = "<title id>"
query = "['events.all'] | count"
# Force Kusto to use the v1 query endpoint
client._query_endpoint = cluster + "/v1/rest/query"
crp = ClientRequestProperties()
crp.application = "KustoPythonSDK"
response = client.execute(db, query)
# Response processing
print(response)
Additional resources
- Azure Kusto Python SDK documentation
- To learn about other tools to connect to Insights, see Connecting external tools to Insights