Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Visual Studio App Center a été mis hors service le 31 mars 2025, à l’exception des fonctionnalités d’analyse et de diagnostic, qui continueront d’être prises en charge jusqu’au 30 juin 2026. En savoir plus.
App Center Analytics vous aide à comprendre le comportement des utilisateurs et l’engagement client pour améliorer votre application. Le SDK capture automatiquement le nombre de sessions et les propriétés d’appareil, comme le modèle, la version du système d’exploitation, etc. Vous pouvez définir vos propres événements personnalisés pour mesurer les éléments qui vous concernent. Toutes les informations capturées sont disponibles dans le portail App Center pour vous permettre d’analyser les données.
Suivez la section Prise en main de WPF/WinForms ou UWP/WinUI Getting Started (basée sur votre plateforme) si vous n’avez pas encore configuré le Kit de développement logiciel (SDK) dans votre application.
Les instructions de cette page fonctionnent pour UWP (y compris Xamarin.Forms et WinUI), WPF et WinForms.
Informations sur la session et l’appareil
Une fois que vous avez ajouté App Center Analytics à votre application et démarré le Kit de développement logiciel (SDK), il effectue automatiquement le suivi des sessions et des propriétés d’appareil comme la version du système d’exploitation, le modèle, etc.
Remarque
Sur les applications WinUI, la quantité de sessions peut être inférieure à celle des applications UWP en raison de spécificités de son cycle de vie.
Code de pays
Le code de pays n’est pas signalé automatiquement par le Kit de développement logiciel (SDK). Si vous souhaitez le signaler manuellement, vous pouvez suivre les instructions de votre plateforme ci-dessous.
Plateforme Windows Universelle (UWP)
- Veillez à activer la fonctionnalité d’emplacement pour votre application.
- Obtenez une clé d’authentification Bing Maps.
- Utilisez le code suivant à n’importe quel endroit avant d’appeler
AppCenter.Start(... typeof(Analytics) ...);
. CommeBingMapsToken
, utilisez la clé obtenue à l’étape 2.
private static async Task SetCountryCode()
{
// The following country code is used only as a fallback for the main implementation.
// This fallback country code doesn't reflect the physical device location, but rather the
// country that corresponds to the culture it uses.
var countryCode = new GeographicRegion().CodeTwoLetter;
var accessStatus = await Geolocator.RequestAccessAsync();
switch (accessStatus)
{
case GeolocationAccessStatus.Allowed:
var geoLocator = new Geolocator
{
DesiredAccuracyInMeters = 100
};
var position = await geoLocator.GetGeopositionAsync();
var myLocation = new BasicGeoposition
{
Longitude = position.Coordinate.Point.Position.Longitude,
Latitude = position.Coordinate.Point.Position.Latitude
};
var pointToReverseGeocode = new Geopoint(myLocation);
MapService.ServiceToken = Constants.BingMapsAuthKey;
var result = await MapLocationFinder.FindLocationsAtAsync(pointToReverseGeocode);
if (result.Status != MapLocationFinderStatus.Success || result.Locations == null || result.Locations.Count == 0)
{
break;
}
// The returned country code is in 3-letter format (ISO 3166-1 alpha-3).
// Below we convert it to ISO 3166-1 alpha-2 (two letter).
var country = result.Locations[0].Address.CountryCode;
countryCode = new GeographicRegion(country).CodeTwoLetter;
break;
case GeolocationAccessStatus.Denied:
AppCenterLog.Info(LogTag, "Geolocation access denied. To set country code in App Center, enable location service in Windows 10.");
break;
case GeolocationAccessStatus.Unspecified:
break;
}
AppCenter.SetCountryCode(countryCode);
}
Remarque
Pour que le code de pays s’affiche sur les sessions Analytics, AppCenter.SetCountryCode
doit être appelé avant d’appeler AppCenter.Start
.
WPF/WinForms
Comme les plateformes WPF/WinForms n’ont pas d’API de géolocalisation, vous pouvez utiliser un code de pays système.
using System.Globalization;
private static void SetCountryCode()
{
// This fallback country code doesn't reflect the physical device location, but rather the
// country that corresponds to the culture it uses.
var countryCode = RegionInfo.CurrentRegion.TwoLetterISORegionName;
AppCenter.SetCountryCode(countryCode);
}
Remarque
Pour que le code de pays s’affiche sur les sessions Analytics, AppCenter.SetCountryCode
doit être appelé avant d’appeler AppCenter.Start
.
Événements personnalisés
Vous pouvez suivre vos propres événements personnalisés avec jusqu’à 20 propriétés pour comprendre l’interaction entre vos utilisateurs et l’application.
Une fois que vous avez démarré le Kit de développement logiciel (SDK), utilisez la TrackEvent()
méthode pour suivre vos événements avec des propriétés. Vous pouvez envoyer jusqu’à 200 noms d’événements distincts. En outre, il existe une limite maximale de 256 caractères par nom d’événement et de 125 caractères par nom de propriété d’événement et valeur de propriété d’événement.
Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {
{ "Category", "Music" },
{ "FileName", "favorite.avi"}
});
Les propriétés des événements sont entièrement facultatives : si vous souhaitez simplement suivre un événement, utilisez cet exemple à la place :
Analytics.TrackEvent("Video clicked");
Activer ou désactiver App Center Analytics au moment de l’exécution
Vous pouvez activer et désactiver App Center Analytics au moment de l’exécution. Si vous le désactivez, le Kit de développement logiciel (SDK) ne collecte plus d’informations d’analyse pour l’application.
Analytics.SetEnabledAsync(false);
Pour réactiver App Center Analytics, utilisez la même API, mais passez true
en tant que paramètre.
Analytics.SetEnabledAsync(true);
Vous n’avez pas besoin d’attendre cet appel pour effectuer d’autres appels d’API (par IsEnabledAsync
exemple) cohérents.
L’état est conservé dans le stockage de l’appareil dans les lancements d’application.
Vérifier si App Center Analytics est activé
Vous pouvez également vérifier si App Center Analytics est activé ou non.
bool isEnabled = await Analytics.IsEnabledAsync();
Gérer la session de démarrage
Par défaut, l’ID de session dépend du cycle de vie de l’application. Si vous souhaitez contrôler manuellement le début d’une nouvelle session, suivez les étapes suivantes :
Remarque
Soyez attentif à ce que chaque appel de l’API Analytics.StartSession() génère une nouvelle session. Si, en mode de suivi de session manuel, cette API ne sera pas appelée, tous les journaux d’activité d’envoi auront une valeur de session Null.
Remarque
Attention, après le lancement d’une nouvelle application, l’ID de session sera régénéré.
- Appelez la méthode suivante avant le démarrage du Kit de développement logiciel (SDK) :
Analytics.EnableManualSessionTracker();
- Vous pouvez ensuite utiliser l’API
StartSession
après :AppCenter.Start
Analytics.StartSession();
Taille du stockage local
Par défaut, le Kit de développement logiciel (SDK) stocke tous les journaux d’événements jusqu’à 10 Mo. Les développeurs peuvent utiliser une API pour augmenter la taille de stockage et le SDK continuera à stocker les journaux jusqu'à ce que le stockage soit plein.
Aucun accès à Internet
Lorsqu'il n'y a aucune connectivité réseau, le SDK enregistre jusqu'à 10 Mo de fichiers journaux dans le stockage local. Une fois que le stockage est plein, le Kit de développement logiciel (SDK) commence à supprimer les anciens journaux afin de faire de la place pour les nouveaux journaux. Une fois que l'appareil retrouve l'accès à Internet, le Kit de développement logiciel (SDK) envoie les journaux par lots de 50 ou toutes les 6 secondes.
Journaux des événements de traitement par lots
Le kit de développement logiciel (SDK) App Center charge les journaux d'activité dans un lot de 50 et, si le SDK n’a pas 50 journaux d'activité à envoyer, il envoie toujours les journaux après 6 secondes. Il peut y avoir un maximum de trois lots envoyés en parallèle.
Nouvelle tentative et logique d’interruption
Le Kit de développement logiciel (SDK) App Center prend en charge les nouvelles tentatives sur les erreurs réseau récupérables. Voici la logique de nouvelle tentative :
- 3 essais maximum par requête.
- Chaque requête a son propre automate d'état de réessai.
- Tous les canaux de transmission sont désactivés (jusqu’au prochain processus d’application) après qu’une demande épuise toutes ses nouvelles tentatives.
Logique de repli
- 50% randomisation, premier réessai entre 5 et 10 secondes, deuxième réessai entre 2,5 et 5 minutes, dernière tentative entre 10 et 20 minutes.
- Si le réseau bascule de coupé à actif (ou de wi-fi à mobile), les états de réinitialisation sont activés et les demandes sont retentées immédiatement.