Sdílet prostřednictvím


App Center Analytics (macOS)

Důležité

Visual Studio App Center je naplánované k vyřazení na 31. března 2025. I když můžete Visual Studio App Center dál používat, dokud ho úplně nevyřadíte, existuje několik doporučených alternativ, na které můžete migraci zvážit.

Přečtěte si další informace o časových osách a alternativách podpory.

App Center Analytics pomáhá porozumět 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 a měřit věci, na kterých vám záleží. Všechny zachycené informace jsou k dispozici na portálu App Center, kde můžete analyzovat data.

Poznámka

Země operátora a název operátora nejsou k dispozici v App Center Analytics pro macOS, ale můžete nastavit zemi operátora podle polohy vašeho 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 na sadu App Center SDK 4.0.0 a vyšší .

Pokud jste v aplikaci ještě nenastavili sadu SDK, 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, bude automaticky sledovat relace a vlastnosti zařízení, včetně verze operačního systému, modelu atd., a to bez dalšího kódu.

Poznámka

V aplikacích 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í na 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í, která jsou jenom Wi-Fi, ve výchozím nastavení nehlásí kód země. Pokud chcete nastavit kód země těchto uživatelů, musíte sami načíst polohu uživatele a použít metodu setCountryCode: v sadě SDK. Doporučujeme, abyste měli na paměti sledování polohy uživatelů a používali nízké rozlišení polohy. Následující ukázka používá kCLLocationAccuracyKilometer.

  • Ujistěte se, že jste na zařízení povolili zjišťování polohy .
  • Pomocí příkazu získejte aktuální polohu CLLocationManagerzařízení.
  • Převeďte umístění na kód země ISO pomocí CLGeocoder.
  • Přepište kód země operátora pomocí metody sady SDK setCountryCode .

Pomocí následujícího kódu získejte polohu zařízení a přepište kód země dopravce v aplikaci:

Do AppDelegate přidejte 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: nastavte správce umístění:

  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í k dispozici pro macOS. 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ěli akcím uživatelů a zobrazili agregace na portálu App Center.

Po spuštění sady SDK použijte metodu trackEvent:withProperties ke sledování událostí pomocí vlastností. Můžete odeslat až 200 různých názvů událostí. Platí také maximální limit 256 znaků na název události a 125 znaků na název vlastnosti události a hodnotu 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 událost jenom sledovat, použijte místo toho tuto ukázku:

[MSACAnalytics trackEvent:@"Video clicked"];
Analytics.trackEvent("Video clicked")

Priorita a trvalost událostí

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í (FlagsNormal v rozhraní API) nebo Kritické (FlagsCritical v 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.
  • Když je místní úložiště plné a je potřeba uložit nové události. 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 kritickou prioritou, sledování události s normální prioritou selže, protože sada SDK v takovém případě nemůže uvolnit místo.
  • Pokud používáte také službu Crashes, protokoly chyb se nastaví jako Kritické a sdílejí stejné úložiště 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ž se události pozastaví, dají se dál sledovat a ukládat, ale neodesílají se hned. Všechny události, které vaše aplikace sleduje, když je pozastavená, se odešlou jenom po zavolání resume.

[MSACAnalytics pause];
[MSACAnalytics resume];
Analytics.pause()
Analytics.resume()

Povolení nebo zakázání App Center Analytics za běhu

App Center Analytics můžete povolit a zakázat za běhu. Pokud ho zakážete, sada SDK nebude pro aplikaci shromažďovat žádné další analytické informace.

[MSACAnalytics setEnabled:NO];
Analytics.enabled = false

Pokud chcete analýzu App Center znovu povolit, použijte stejné rozhraní API, ale předejte YES/true ho jako parametr.

[MSACAnalytics setEnabled:YES];
Analytics.enabled = true

Stav se během spouštění aplikací zachová v úložišti zařízení.

Poznámka

Tuto metodu je možné použít až po Analytics spuštění.

Kontrola, jestli je povolená analýza app center

Můžete také zkontrolovat, jestli je služba App Center Analytics povolená nebo ne.

[MSACAnalytics isEnabled];
Analytics.enabled

Poznámka

Tato metoda musí být použita pouze po Analytics spuštění, bude vždy vrácena NO nebo false před spuštěním.

Spravovat úvodní relaci

ID relace ve výchozím nastavení závisí na životním cyklu aplikace. Pokud chcete řídit zahájení nové relace ručně, 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 se v režimu ručního sledování relací toto rozhraní API nebude volat, budou mít všechny odesílající protokoly hodnotu relace s hodnotou null.

Poznámka

Věnujte pozornost tomu, že po spuštění nové aplikace se ID 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 startSession rozhraní API po :AppCenter.start
[MSACAnalytics startSession];
Analytics.startSession()

Velikost místního úložiště

Ve výchozím nastavení sada 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 ukládat protokoly, dokud se úložiště zaplní.

Bez přístupu k internetu

Pokud není k dispozici žádné připojení k síti, sada SDK uloží do místního úložiště až 10 MB protokolů. Jakmile se úložiště zaplní, sada SDK začne zahazovat staré protokoly, aby uvolnila 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í.

Dávkování protokolů událostí

Sada App Center SDK nahrává protokoly v dávce 50, a pokud sada SDK nemá 50 protokolů k odeslání, bude protokoly odesílat i po 6 sekundách (ve výchozím nastavení). Paralelně se můžou odesílat 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 přenosového intervalu musí být v rozmezí od 6 sekund do 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í v síti. Níže je logika opakování:

  • Maximálně tři pokusy na požadavek.
  • Každý požadavek má svůj vlastní počítač se stavem opakování.
  • Všechny přenosové kanály jsou zakázány (až do dalšího procesu aplikace) poté, co jeden požadavek vyčerpá všechny své opakování.

Logika zálohování

  • 50% náhodnost, první opakování mezi 5 a 10 sekund, druhé opakování mezi 2,5 a 5 minut, poslední pokus mezi 10 a 20 minut.
  • Pokud se síť přepne z vypnuté na zapnuto (nebo z wi-fi na mobilní), stavy opakování se resetují a žádosti se okamžitě opakují.