Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
A Visual Studio App Center 2025. március 31-én megszűnt, kivéve az Elemzési és diagnosztikai funkciókat, amelyek 2026. június 30-ig továbbra is támogatottak lesznek. Tudj meg többet.
Az App Center Analytics segít megérteni a felhasználói viselkedést és az ügyfelek bevonását az alkalmazás fejlesztéséhez. Az SDK automatikusan rögzíti a munkamenetek számát és az eszköz tulajdonságait, például a modellt, az operációs rendszer verzióját stb. Saját egyéni eseményeket is meghatározhat, hogy felmérje az Ön számára fontos dolgokat. Minden rögzített információ elérhető az App Center portálon az adatok elemzéséhez.
Megjegyzés:
A szolgáltató országa és a szolgáltató neve nem érhető el a macOS-hez készült App Center Analyticsben, de beállíthatja a szolgáltató országát az eszköz helyével.
Megjegyzés:
Az App Center 4.0.0 verziójában kompatibilitástörő változások jelentek meg. Kövesse az Áttelepítés az App Center SDK 4.0.0-s és újabb verziójára című szakaszt az App Center korábbi verziókból való áttelepítéséhez.
Ha még nem állította be az SDK-t az alkalmazásban, kövesse az Első lépések szakaszt.
Munkamenet- és eszközinformációk
Miután hozzáadta az App Center Analyticset az alkalmazáshoz, és elindítja az SDK-t, automatikusan nyomon követi a munkameneteket és az eszköztulajdonságokat, beleértve az operációs rendszer verzióját, modelljét és így tovább, további kód nélkül.
Megjegyzés:
Mac Catalyst-alkalmazásokban a munkamenetek mennyisége alacsonyabb lehet, mint az iOS-alkalmazásokban. A Mac Catalyst munkameneteinek nyomon követésére használt életciklus-események másképp viselkednek, mint az iOS-en.
Az SDK automatikusan jelenti a felhasználó országkódját, ha az eszközre mobiladat-modem és SIM-kártya van telepítve. A csak wi-fi rendszerű eszközök alapértelmezés szerint nem jelentenek országkódot. A felhasználók országkódjának beállításához saját maga kell lekérnie a felhasználó helyét, és használnia kell a módszert az setCountryCode: SDK-ban. Azt javasoljuk, hogy ügyeljen a felhasználói helyek nyomon követésére, és használjon alacsony helyfelbontást. Az alábbi minta a következőt használja kCLLocationAccuracyKilometer: .
- Győződjön meg arról, hogy engedélyezi a Location Services szolgáltatást az eszközön.
- Az eszköz aktuális helyének lekérése a következővel
CLLocationManager: . - A hely konvertálása ISO-országkóddá a használatával
CLGeocoder. - Felülbírálja a szállító országkódját az SDK metódusával
setCountryCode.
Az alábbi kóddal lekérheti az eszköz helyét, és felülbírálhatja a szolgáltató országkódját az alkalmazásban:
Adja hozzá a CLLocationManagerDelegate protokollt az AppDelegate-hez, és adja hozzá a locationManager tulajdonságot:
@interface AppDelegate () <CLLocationManagerDelegate>
@property(nonatomic) CLLocationManager *locationManager;
@end
class AppDelegate: CLLocationManagerDelegate {
private var locationManager: CLLocationManager = CLLocationManager()
}
Az didFinishLaunchingWithOptions: metódusban konfigurálja a helykezelőt.
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()
Megjegyzés:
A requestWhenInUseAuthorization metódus macOS esetén nem érhető el. Távolítsa el a metódus hívásait a macOS-alapú fejlesztés során.
Adja hozzá a delegálási metódusokat:
- (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)")
}
Egyéni események
A saját egyéni eseményeit akár 20 tulajdonsággal is nyomon követheti, hogy tudja, mi történik az alkalmazásban, megismerheti a felhasználói műveleteket, és megtekintheti az összesítéseket az App Center portálon.
Miután elindította az SDK-t, a trackEvent:withProperties metódussal tulajdonságokkal követheti nyomon az eseményeket.
Legfeljebb 200 különböző eseménynevet küldhet el. Emellett legfeljebb 256 karakter lehet eseménynévként, eseménytulajdonság neveként és értékeként pedig 125 karakter.
NSDictionary *properties = @{@"Category" : @"Music", @"FileName" : @"favorite.avi"};
[MSACAnalytics trackEvent:@"Video clicked" withProperties: properties];
Analytics.trackEvent("Video clicked", withProperties: ["Category" : "Music", "FileName" : "favorite.avi"])
Az események tulajdonságai teljesen opcionálisak – ha csak nyomon szeretne követni egy eseményt, használja inkább ezt a mintát:
[MSACAnalytics trackEvent:@"Video clicked"];
Analytics.trackEvent("Video clicked")
Esemény prioritása és megőrzése
Nyomon követheti az üzletileg kritikus eseményeket, amelyek nagyobb jelentőséggel bírnak, mint más események.
- A fejlesztők az események prioritását normálként (
FlagsNormalaz API-ban) vagy kritikusként (FlagsCriticalaz API-ban) állíthatják be. - A kritikusként beállított prioritású eseményeket a rendszer először lekéri a tárolóból, és a normál események előtt küldi el.
- Ha a helyi tároló megtelt, és új eseményeket kell tárolni. A legalacsonyabb prioritású legrégebbi eseményeket először törli a rendszer, hogy helyet biztosítsunk az újaknak.
- Ha a tároló tele van kritikus prioritású naplókkal, akkor a Normál prioritású események nyomon követése meghiúsul, mivel az SDK ebben az esetben nem tud helyet biztosítani.
- Ha az Összeomlások szolgáltatást is használja, az összeomlási naplók kritikusként vannak beállítva, és ugyanazt a tárterületet használják, mint az események.
- Az átviteli időköz csak normál eseményekre vonatkozik, a kritikus események 3 másodperc után lesznek elküldve.
Az alábbi API-val kritikusként követheti nyomon az eseményeket:
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.
Naplók küldésének szüneteltetése és folytatása
Az eseményátvitel szüneteltetése olyan helyzetekben lehet hasznos, amikor az alkalmazásnak a hálózati sávszélességet kell szabályoznia az üzleti szempontból kritikusabb igények kielégítéséhez. Szüneteltetheti a naplók App Center-háttérrendszerbe való küldését. A szüneteltetéskor az események továbbra is nyomon követhetők és menthetők, de nem küldhetők el azonnal. Az alkalmazás által követett eseményeket, amelyek szünetelnek, csak akkor küldi el, miután a resume hívás megtörtént.
[MSACAnalytics pause];
[MSACAnalytics resume];
Analytics.pause()
Analytics.resume()
Az App Center Analytics engedélyezése vagy letiltása futásidőben
Az App Center Analytics futásidőben engedélyezhető és letiltható. Ha letiltja, az SDK nem gyűjt további elemzési adatokat az alkalmazáshoz.
[MSACAnalytics setEnabled:NO];
Analytics.enabled = false
Az App Center Analytics ismételt engedélyezéséhez használja ugyanazt az API-t, de adja át YES/true paraméterként.
[MSACAnalytics setEnabled:YES];
Analytics.enabled = true
Az állapot megmarad az eszköz tárolójában az alkalmazásindítások során.
Megjegyzés:
Ezt a módszert csak akkor szabad használni, ha a Analytics már elindult.
Ellenőrizze, hogy engedélyezve van-e az App Center Analytics
Azt is ellenőrizheti, hogy az App Center Analytics engedélyezve van-e.
[MSACAnalytics isEnabled];
Analytics.enabled
Megjegyzés:
Ezt a metódust csak az indítás után, Analytics, lehet használni; mindig vissza fog térni NO vagy false az indítás előtt.
Indítási munkamenet kezelése
Alapértelmezés szerint a munkamenet-azonosító az alkalmazás életciklusától függ. Ha manuálisan szeretné szabályozni az új munkamenet kezdetét, kövesse a következő lépéseket:
Megjegyzés:
Figyelje meg, hogy az Analytics.StartSession() API minden egyes hívása új munkamenetet hoz létre. Ha manuális munkamenet-követő módban ez az API nem lesz meghívva, akkor az összes küldő napló null munkamenet-értékkel fog rendelkezni.
Megjegyzés:
Ügyeljen arra, hogy egy új alkalmazás elindítása után a munkamenet-azonosító újra létre lesz hozva.
- Az SDK indítása előtt hívja meg a következő metódust:
[MSACAnalytics enableManualSessionTracker];
Analytics.enableManualSessionTracker()
- Ezután használhatja a
startSessionAPI-t aAppCenter.startután.
[MSACAnalytics startSession];
Analytics.startSession()
Helyi tárterület mérete
Alapértelmezés szerint az SDK az összes naplót legfeljebb 10 MB-ig tárolja. A fejlesztők api-val növelhetik a tárterület méretét , és az SDK a tárterület megteltéig tárolja a naplókat.
Nincs internet-hozzáférés
Ha nincs hálózati kapcsolat, az SDK legfeljebb 10 MB naplót ment a helyi tárolóba. Miután megtelt a tárterület, az SDK elkezdi elvetni a régi naplókat, hogy helyet biztosítsunk az új naplóknak. A hálózati kapcsolat visszatérése után az SDK 50 vagy 6 másodpercenként küld naplókat (alapértelmezés szerint).
Megjegyzés:
A rendszer elveti a 25 napnál régebbi naplókat.
Eseménynaplók kötegelése
Az App Center SDK egy 50-ből álló kötegben tölti fel a naplókat, és ha az SDK-nak nincs 50 elküldendő naplója, akkor is 6 másodperc után (alapértelmezés szerint) elküldi a naplókat. Egyszerre legfeljebb három köteg küldhető el. Az átviteli időköz módosítható:
// Change transmission interval to 10 seconds.
[MSACAnalytics setTransmissionInterval:10000];
// Change transmission interval to 10 seconds.
Analytics.transmissionInterval = 10000
Az átviteli időköz értékének 6 másodperc és 86400 másodperc (egy nap) között kell lennie, és ezt a metódust a szolgáltatás elindítása előtt kell meghívni.
Újrapróbálkozási és visszalépési logika
Az App Center SDK támogatja a helyreállítható hálózati hibák visszalépési újrapróbálkozását. Az alábbiakban az újrapróbálkozás logikája látható:
- Kérésenként maximum három próbálkozás.
- Minden kérelemnek megvan a saját újrapróbálkozási állapotgépe.
- Az összes átviteli csatorna le van tiltva (a következő alkalmazásfolyamatig), miután egy kérés kimeríti az összes újrapróbálkozást.
Visszalépési mechanizmus
- 50% véletlenszerűség, első próbálkozás 5 és 10 másodperc között, második újrapróbálkozás 2,5 és 5 perc között, utolsó próbálkozás 10 és 20 perc között.
- Ha a hálózat kikapcsolt állapotból bekapcsolt állapotba vált (vagy wi-fi-ról mobilra), az újrapróbálkozási állapotok alaphelyzetbe állítódnak, és a kérések azonnal újra megkísérelnek.