Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Viktigt!
Visual Studio App Center drogs tillbaka den 31 mars 2025, förutom analys- och diagnostikfunktionerna, som fortsätter att stödjas fram till den 30 juni 2026. Läs mer.
App Center Analytics hjälper dig att förstå användarbeteende och kundengagemang för att förbättra din app. SDK samlar automatiskt in sessionsantal och enhetsegenskaper som modell, operativsystemversion osv. Du kan definiera dina egna anpassade händelser för att mäta saker som är viktiga för dig. All information som samlas in är tillgänglig i App Center-portalen så att du kan analysera data.
Följ avsnittet Komma igång med WPF/WinForms eller UWP/WinUI (baserat på din plattform) om du inte har konfigurerat SDK:t i ditt program ännu.
Anvisningarna på den här sidan fungerar för UWP (inklusive Xamarin.Forms och WinUI), WPF och WinForms.
Information om sessioner och enheter
När du lägger till App Center Analytics i din app och startar SDK:n spårar den automatiskt sessioner och enhetsegenskaper som os-version, modell osv.
Anmärkning
I WinUI-appar kan mängden sessioner vara lägre än för UWP-appar på grund av detaljer i dess livscykel.
Landskod
Landskoden rapporteras inte automatiskt av SDK:t. Om du vill rapportera det manuellt kan du följa anvisningarna för din plattform nedan.
Universal Windows-plattform (UWP)
- Säkerställ att du aktiverar platstjänst för din app.
- Skaffa en autentiseringsnyckel för Bing Maps.
- Använd följande kod på valfri plats innan du anropar
AppCenter.Start(... typeof(Analytics) ...);. SomBingMapsTokenanvänder du nyckeln som hämtades i steg 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);
}
Anmärkning
För att landskoden ska visas på Analytics-sessioner AppCenter.SetCountryCode måste anropas innan du anropar AppCenter.Start.
WPF/WinForms
Eftersom WPF/WinForms-plattformar inte har något GEOPLATS-API kan du använda en landskod för systemet.
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);
}
Anmärkning
För att landskoden ska visas på Analytics-sessioner AppCenter.SetCountryCode måste anropas innan du anropar AppCenter.Start.
Anpassade händelser
Du kan spåra dina egna anpassade händelser med upp till 20 egenskaper för att förstå interaktionen mellan dina användare och appen.
När du har startat SDK använder du TrackEvent() metoden för att spåra händelser med egenskaper. Du kan skicka upp till 200 distinkta händelsenamn. Det finns också en maxgräns på 256 tecken per händelsenamn och 125 tecken per händelseegenskapsnamn och händelseegenskapsvärde.
Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {
{ "Category", "Music" },
{ "FileName", "favorite.avi"}
});
Egenskaper för händelser är helt valfria – om du bara vill spåra en händelse använder du det här exemplet i stället:
Analytics.TrackEvent("Video clicked");
Aktivera eller inaktivera App Center Analytics vid körning
Du kan aktivera och inaktivera App Center Analytics under körning. Om du inaktiverar det samlar SDK inte in mer analysinformation för appen.
Analytics.SetEnabledAsync(false);
Om du vill aktivera App Center Analytics igen använder du samma API men skickar true som en parameter.
Analytics.SetEnabledAsync(true);
Du behöver inte invänta det här anropet för att göra andra API-anrop (till exempel IsEnabledAsync) konsekventa.
Tillståndet sparas i enhetens lagring mellan programstarter.
Kontrollera om App Center Analytics är aktiverat
Du kan också kontrollera om App Center Analytics är aktiverat eller inte.
bool isEnabled = await Analytics.IsEnabledAsync();
Hantera startsessionen
Som standard beror sessions-ID:t på programmets livscykel. Om du vill styra starten av en ny session manuellt följer du nästa steg:
Anmärkning
Var uppmärksam på att varje anrop av Analytics.StartSession() API genererar en ny session. Om det här API:et inte anropas i läget för manuell sessionsspårare har alla sändande loggar ett null-sessionsvärde.
Anmärkning
Var uppmärksam på att sessions-ID:t kommer att återskapas när ett nytt program startas.
- Anropa följande metod innan SDK:et startar:
Analytics.EnableManualSessionTracker();
- Sedan kan du använda
StartSessionAPI:et efterAppCenter.Start.
Analytics.StartSession();
Lokal lagringsstorlek
Som standard lagrar SDK:et alla händelseloggar upp till 10 MB. Utvecklare kan använda ett API för att öka lagringsstorleken och SDK:n fortsätter att lagra loggar tills lagringen är full.
Ingen internetåtkomst
När det inte finns någon nätverksanslutning sparar SDK upp till 10 MB loggar i den lokala lagringen. När lagringen är full börjar SDK:n ta bort gamla loggar för att ge plats åt de nya loggarna. När enheten får internetåtkomst tillbaka skickar SDK:n loggar i batchen på 50 eller efter var 6:e sekund.
Batchbearbetning av händelseloggar
App Center SDK laddar upp loggar i en batch på 50 och om SDK:t inte har 50 loggar att skicka skickar det fortfarande loggar efter 6 sekunder. Det kan finnas högst tre batchar som skickas parallellt.
Logik för återförsök och avstigning
App Center SDK stöder back-off-återförsök vid återställningsbara nätverksfel. Nedan visas logiken för återförsök:
- 3 försök maximalt per begäran.
- Varje begäran har en egen återförsökstillståndsmaskin.
- Alla överföringskanaler är inaktiverade tills nästa gång appen körs, efter att alla omförsök för en begäran har förbrukats.
Återgångslogik
- 50% randomisering, första försöket mellan 5 och 10 sekunder, andra försöket mellan 2,5 och 5 minuter, sista försöket mellan 10 och 20 minuter.
- Om nätverket växlar från av till på (eller från wi-fi till mobil) återställs återförsökstillstånden och begäranden görs om omedelbart.