Číst v angličtině

Sdílet prostřednictvím


App Center Analytics (iOS)

Důležité

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

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

App Center Analytics vám pomůže porozumět chování uživatelů a zapojení zákazníků, aby se vaše aplikace zlepšila. 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

Zařízení s iOSem bez SIM karty neodesílají sestavu s kódem země operátora na portál App Center. Pokud chcete zadat hodnotu země, použijte metodu setCountryCode k přepsání kódu země z umístění 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 ještě sadu SDK ve své aplikaci nenastavili, postupujte podle části Začínáme .

Informace o relacích a zařízeních

Jakmile do aplikace přidáte App Center Analytics a spustíte sadu SDK, bude automaticky sledovat relace a vlastnosti zařízení, včetně verze operačního systému, modelu atd. 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í jinak než události 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á mají jenom Wi-Fi, ve výchozím nastavení neoznamují kód země. Pokud chcete nastavit kód země těchto uživatelů, musíte načíst polohu uživatele sami a použít metodu setCountryCode: v sadě SDK. Doporučujeme, abyste dbaly na sledování polohy uživatelů a používaly 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 .
  • Získejte aktuální polohu zařízení pomocí CLLocationManager.
  • Převeďte umístění na kód země ISO pomocí CLGeocoder.
  • Přepište kód země dopravce pomocí metody sady SDK setCountryCode .

Pomocí následujícího kódu získáte polohu zařízení a přepíšete 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 didFinishLaunchingWithOptions: nastavení metody 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 své vlastní události s až 20 vlastnostmi , abyste věděli, co se děje ve vaší aplikaci, porozuměli akcím uživatelů a viděli 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 jedinečný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 jenom sledovat událost, 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 jsou nastavené jako Kritické a sdílejí stejné úložiště jako události.
  • Přenosový interval 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ž jsou události pozastavené, můžou se dál sledovat a ukládat, ale neodesílají se hned. Všechny události, které 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 znovu povolit App Center Analytics, použijte stejné rozhraní API, ale předejte YES/true ho jako parametr.

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

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

Poznámka

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

Kontrola, jestli je služba App Center Analytics povolená

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

[MSACAnalytics isEnabled];
Analytics.enabled

Poznámka

Tuto metodu je možné použít pouze po Analytics spuštění, vždy se vrátí NO nebo false před spuštěním.

Správa úvodní relace

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í nebude toto rozhraní API volat, budou mít všechny odesílající protokoly hodnotu relace 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 rozhraní API použít startSession 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 dál ukládat protokoly, dokud nebude úložiště plné.

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ů. Po zaplnění úložiště začne sada SDK 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é protokoly 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 intervalu přenosu musí být mezi 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 opakování

Sada App Center SDK podporuje opakované pokusy se zpětným ukončením při obnovitelných chybách sítě. Níže je logika opakování:

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

Logika zásady

  • 50% randomizace, 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ého na zapnuto (nebo z wi-fi na mobilní zařízení), stavy opakování se resetují a žádosti se okamžitě opakují.