Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Visual Studio App Center bylo vyřazeno 31. března 2025 s výjimkou funkcí Analýzy a diagnostiky, které se budou dál podporovat až do 30. června 2026. Další informace.
App Center Analytics vám pomůže pochopit chování uživatelů a zapojení zákazníků a zlepšit tak vaši aplikaci. Sada SDK automaticky zaznamenává počet relací a vlastnosti zařízení, jako je model, verze operačního systému atd. Můžete definovat vlastní události pro měření věcí, které jsou pro vás důležité. Všechny zachycené informace jsou k dispozici na portálu App Center, abyste mohli analyzovat data.
Poznámka:
iOS zařízení bez SIM karty neodesílají zprávu s kódem země poskytovatele na portál App Center. Pokud chcete zadat hodnotu země, použijte metodu setCountryCode k přepsání kódu země z polohy zařízení.
Poznámka:
4.0.0 Ve verzi App Center byly zavedeny zásadní změny. Pokud chcete migrovat App Center z předchozích verzí, postupujte podle části Migrace do sady App Center SDK 4.0.0 a vyšší .
Pokud jste ještě nenastavili sadu SDK ve své aplikaci, postupujte podle části Začínáme .
Informace o relacích a zařízeních
Jakmile do aplikace přidáte analýzu App Center a spustíte sadu SDK, automaticky bude sledovat relace a vlastnosti zařízení, včetně verze operačního systému, modelu atd. bez dalšího kódu.
Poznámka:
U aplikací Mac Catalyst může být počet relací nižší než u aplikací pro iOS. Události životního cyklu používané ke sledování relací v systému Mac Catalyst se chovají odlišně od událostí v iOSu.
Sada SDK automaticky hlásí kód země uživatele, pokud má zařízení nainstalovaný mobilní datový modem a sim kartu. Zařízení jen pro Wi-Fi ve výchozím nastavení neoznamují kód země. Pokud chcete nastavit kód země těchto uživatelů, musíte samostatně načíst umístění vašeho uživatele a použít metodu setCountryCode: v sadě SDK. Naším doporučením je mít na paměti sledování umístění uživatelů a používat nízké rozlišení polohy. Následující ukázka používá kCLLocationAccuracyKilometer.
- Ujistěte se, že na zařízení povolíte službu Location Services .
- Získejte aktuální umístění zařízení pomocí
CLLocationManager. - Převeďte umístění na kód země ISO pomocí
CLGeocoder. - Přepište kód země poskytovatele služeb pomocí metody SDK
setCountryCode.
Pomocí následujícího kódu získejte polohu zařízení a přepište kód země dopravce v aplikaci:
Přidejte do AppDelegate protokol CLLocationManagerDelegate a přidejte vlastnost locationManager:
@interface AppDelegate () <CLLocationManagerDelegate>
@property(nonatomic) CLLocationManager *locationManager;
@end
class AppDelegate: CLLocationManagerDelegate {
private var locationManager: CLLocationManager = CLLocationManager()
}
V metodě didFinishLaunchingWithOptions se nastaví správce polohy:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
[self.locationManager requestWhenInUseAuthorization];
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer
self.locationManager.requestWhenInUseAuthorization()
Poznámka:
Metoda requestWhenInUseAuthorization není pro macOS dostupná. Při vývoji pro macOS odeberte volání této metody.
Přidejte metody delegáta:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
if (status == kCLAuthorizationStatusAuthorizedWhenInUse) {
[manager requestLocation];
}
}
- (void)locationManger:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {
CLLocation *location = [locations lastObject];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder reverseGeocodeLocation:location
completionHandler:^(NSArray *placemarks, NSError *error) {
if (placemarks.count == 0 || error)
return;
CLPlacemark *pm = [placemarks firstObject];
[MSACAppCenter setCountryCode:pm.ISOcountryCode];
}]
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"Failed to find user's location: \(error.localizedDescription)");
}
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if (status == kCLAuthorizationStatusAuthorizedWhenInUse) {
manager.requestLocation()
}
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let userLocation:CLLocation = locations[0] as CLLocation
CLGeocoder().reverseGeocodeLocation(userLocation) { (placemarks, error) in
if error == nil {
AppCenter.countryCode = placemarks?.first?.isoCountryCode
}
}
}
func locationManager(_ Manager: CLLocationManager, didFailWithError error: Error) {
print("Failed to find user's location: \(error.localizedDescription)")
}
Vlastní události
Můžete sledovat vlastní události s až 20 vlastnostmi , abyste věděli, co se děje v aplikaci, porozumět akcím uživatelů a zobrazit agregace na portálu App Center.
Po spuštění sady SDK použijte metodu trackEvent:withProperties ke sledování událostí s příslušnými vlastnostmi. Můžete odeslat až 200 jedinečných názvů událostí. Existuje také maximální limit 256 znaků na název události a 125 znaků na název vlastnosti události a hodnota vlastnosti události.
NSDictionary *properties = @{@"Category" : @"Music", @"FileName" : @"favorite.avi"};
[MSACAnalytics trackEvent:@"Video clicked" withProperties: properties];
Analytics.trackEvent("Video clicked", withProperties: ["Category" : "Music", "FileName" : "favorite.avi"])
Vlastnosti událostí jsou zcela volitelné – pokud chcete jenom sledovat událost, použijte místo toho tuto ukázku:
[MSACAnalytics trackEvent:@"Video clicked"];
Analytics.trackEvent("Video clicked")
Priorita a trvalost události
Můžete sledovat důležité obchodní události, které mají vyšší důležitost než jiné události.
- Vývojáři můžou nastavit prioritu událostí jako normální (
FlagsNormalv rozhraní API) nebo Kritické (FlagsCriticalv rozhraní API). - Události s prioritou nastavenou jako Kritická se nejprve načtou z úložiště a odešlou se před normálními událostmi.
- Pokud je místní úložiště plné a nové události je potřeba uložit. Nejstarší události s nejnižší prioritou se nejprve odstraní, aby se uvolnilo místo pro nové události.
- Pokud je úložiště plné protokolů s prioritou Kritické , sledování události s normální prioritou selže, protože sada SDK v takovém případě nemůže vytvořit místo.
- Pokud používáte službu Crashes, protokoly o pádech se nastaví jako kritické a sdílí stejný úložný prostor jako události.
- Interval přenosu se použije pouze u normálních událostí, kritické události se odešlou po 3 sekundách.
Ke sledování události jako kritické můžete použít následující rozhraní API:
NSDictionary *properties = @{@"Category" : @"Music", @"FileName" : @"favorite.avi"};
[MSACAnalytics trackEvent:@"Video clicked" withProperties:properties flags:MSACFlagsCritical];
// If you're using name only, you can pass nil as properties.
let properties = ["Category" : "Music", "FileName" : "favorite.avi"];
Analytics.trackEvent("Video clicked", withProperties: properties, flags: .critical)
// If you're using name only, you can pass nil as properties.
Pozastavení a obnovení odesílání protokolů
Pozastavení přenosu událostí může být užitečné ve scénářích, kdy aplikace potřebuje řídit šířku pásma sítě pro důležitější obchodní potřeby. Odesílání protokolů do back-endu App Center můžete pozastavit. Když je pozastaveno, události se stále dají sledovat a ukládat, ale neodesílají se hned. Všechny události, které vaše aplikace sleduje, zatímco je pozastavena, budou odeslány pouze, jakmile zavoláte resume.
[MSACAnalytics pause];
[MSACAnalytics resume];
Analytics.pause()
Analytics.resume()
Povolit nebo zakázat App Center Analytics během provozu
Analýzu App Center můžete povolit a zakázat za běhu. Pokud ji zakážete, sada SDK nebude shromažďovat žádné další analytické informace o aplikaci.
[MSACAnalytics setEnabled:NO];
Analytics.enabled = false
Pokud chcete znovu povolit analýzu App Center, použijte stejné rozhraní API, ale předejte ho jako parametr YES/true.
[MSACAnalytics setEnabled:YES];
Analytics.enabled = true
Stav se zachová v úložišti zařízení napříč spuštěním aplikace.
Poznámka:
Tuto metodu je nutné použít pouze po Analytics spuštění.
Kontrola, jestli je povolená analýza App Center
Můžete také zkontrolovat, jestli je povolená analýza App Center nebo ne.
[MSACAnalytics isEnabled];
Analytics.enabled
Poznámka:
Tato metoda se smí použít pouze poté, co bylo Analytics spuštěno, vždy vrátí NO nebo false před spuštěním.
Správa úvodní relace
Identifikátor relace ve výchozím nastavení závisí na životním cyklu aplikace. Pokud chcete ručně ovládat zahájení nové relace, postupujte podle následujících kroků:
Poznámka:
Věnujte pozornost tomu, že každé volání rozhraní API Analytics.StartSession() vygeneruje novou relaci. Pokud v režimu manuálního sledování relací nebude toto API voláno, všechny odesílané záznamy budou mít hodnotu relace jako null.
Poznámka:
Pamatujte, že po spuštění nové aplikace se identifikátor relace znovu vygeneruje.
- Před spuštěním sady SDK zavolejte následující metodu:
[MSACAnalytics enableManualSessionTracker];
Analytics.enableManualSessionTracker()
- Pak můžete použít
startSessionrozhraní API poAppCenter.start:
[MSACAnalytics startSession];
Analytics.startSession()
Velikost místního úložiště
Ve výchozím nastavení SDK ukládá všechny protokoly až do 10 MB. Vývojáři můžou pomocí rozhraní API zvětšit velikost úložiště a sada SDK bude uchovávat protokoly, dokud nebude úložiště plné.
Bez přístupu k internetu
Pokud není k dispozici žádné síťové připojení, ukládá SDK do místního úložiště až 10 MB protokolů. Jakmile je úložiště plné, sada SDK začne zahodit staré protokoly, aby se uvolnily místo pro nové protokoly. Jakmile se připojení k síti vrátí, sada SDK odesílá protokoly v dávce 50 nebo po každých 6 sekundách (ve výchozím nastavení).
Poznámka:
Protokoly starší než 25 dnů se zahodí.
Seskupování protokolů událostí
Sada App Center SDK nahraje protokoly v dávce 50 a pokud sada SDK nemá 50 protokolů k odeslání, protokoly se budou posílat i po 6 sekundách (ve výchozím nastavení). Paralelně se odesílají maximálně tři dávky. Interval přenosu lze změnit:
// Change transmission interval to 10 seconds.
[MSACAnalytics setTransmissionInterval:10000];
// Change transmission interval to 10 seconds.
Analytics.transmissionInterval = 10000
Hodnota intervalu přenosu musí být v rozmezí 6 sekund až 86400 sekund (jeden den) a tato metoda musí být volána před spuštěním služby.
Logika opakování a zpětného vypnutí
Sada App Center SDK podporuje opakované pokusy o obnovení při obnovitelných chybách sítě. Níže je logika opakování:
- Maximálně tři pokusy na jednu žádost.
- Každý požadavek má svůj vlastní počítač stavu opakování.
- Všechny přenosové kanály jsou deaktivovány (až do dalšího procesu aplikace) poté, co jeden požadavek vyčerpá všechny své opakované pokusy.
Logika ústupu
- 50% randomizace, první opakování mezi 5 a 10 sekundy, druhé opakování mezi 2,5 a 5 minut, poslední pokus mezi 10 a 20 minut.
- Pokud se síťový přepínač přepne ze stavu vypnuto do stavu zapnuto (nebo z wi-fi na stav mobilní zařízení), stavy opakování se resetují a žádosti se budou opakovat okamžitě.