Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Visual Studio App Center, 30 Haziran 2026'ya kadar desteklenmeye devam edecek Analiz ve Tanılama özellikleri dışında 31 Mart 2025'te kullanımdan kaldırılmıştır. Daha fazla bilgi edinin.
App Center Analytics, uygulamanızı geliştirmek için kullanıcı davranışını ve müşteri katılımını anlamanıza yardımcı olur. SDK, oturum sayısını ve model, işletim sistemi sürümü gibi cihaz özelliklerini otomatik olarak yakalar. Sizin için önemli olan şeyleri ölçmek için kendi özel olaylarınızı tanımlayabilirsiniz. Yakalanan tüm bilgileri App Center portalında kullanarak verileri analiz edebilirsiniz.
Uyarı
SIM kartı olmayan iOS cihazları, taşıyıcı ülke kodu içeren raporu App Center portalına göndermez. Ülke değeri sağlamak istiyorsanız, cihaz konumunuzdaki ülke kodunu geçersiz kılmak için yöntemini kullanın setCountryCode .
Uyarı
4.0.0 App Center sürümünde büyük değişiklikler yapılmıştır.
App Center'ı önceki sürümlerden geçirmek için App Center SDK 4.0.0 ve üzeri sürümlere geçiş bölümünü izleyin.
Uygulamanızda SDK'yı henüz ayarlamadıysanız Başlarken bölümünü izleyin.
Oturum ve cihaz bilgileri
Uygulamanıza App Center Analytics ekleyip SDK'yı başlattıktan sonra, ek kod olmadan işletim sistemi sürümü, model vb. dahil olmak üzere oturumları ve cihaz özelliklerini otomatik olarak izler.
Uyarı
Mac Catalyst uygulamalarında oturumların miktarı iOS uygulamalarından daha düşük olabilir. Mac Catalyst'te oturumları izlemek için kullanılan yaşam döngüsü olayları, iOS'ta olanlardan farklı davranır.
Cihazda mobil veri modem ve SIM kart yüklüyse SDK kullanıcının ülke kodunu otomatik olarak bildirir. Yalnızca WiFi kullanan cihazlar varsayılan olarak bir ülke kodunu raporlamaz. Bu kullanıcıların ülke kodunu ayarlamak için, kullanıcılarınızın konumunu kendiniz almalı ve SDK'da setCountryCode: yöntemini kullanmanız gerekir. Kullanıcı konumlarını izleme ve düşük konum çözünürlüğü kullanma konusunda dikkatli olmanız önerilir. Aşağıdaki örnekte kullanılır kCLLocationAccuracyKilometer.
- Cihazda Konum Hizmetleri'ni etkinleştirdiğinizden emin olun.
-
CLLocationManagerkullanarak cihazın geçerli konumunu alın. -
CLGeocoderkullanarak belirli konumu ISO ülke koduna dönüştürün. - SDK'nın
setCountryCodeyöntemini kullanarak taşıyıcı ülke kodunu geçersiz kılın.
Cihazın konumunu almak ve uygulamadaki taşıyıcı ülke kodunu geçersiz kılmak için aşağıdaki kodu kullanın:
CLLocationManagerDelegate protokolünü AppDelegate'e ekleyin ve locationManager özelliğini ekleyin:
@interface AppDelegate () <CLLocationManagerDelegate>
@property(nonatomic) CLLocationManager *locationManager;
@end
class AppDelegate: CLLocationManagerDelegate {
private var locationManager: CLLocationManager = CLLocationManager()
}
didFinishLaunchingWithOptions: yönteminde konum yöneticisini ayarlama:
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()
Uyarı
requestWhenInUseAuthorization yöntemi macOS için kullanılamıyor. macOS için geliştirme yaparken bu yönteme yapılan çağrıları kaldırın.
Temsilci yöntemlerini ekleyin:
- (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)")
}
Özel olaylar
Uygulamanızda neler olduğunu öğrenmek, kullanıcı eylemlerini anlamak ve App Center portalında toplamaları görmek için 20'ye kadar özelliğe sahip kendi özel olaylarınızı izleyebilirsiniz.
SDK'yı başlattıktan sonra, trackEvent:withProperties yöntemini kullanarak öznitelikler ile olaylarınızı izleyin.
En fazla 200 ayrı olay adı gönderebilirsiniz. Ayrıca, olay adı başına en fazla 256 karakter, olay özellik adı ve olay özelliği değeri başına 125 karakter sınırı vardır.
NSDictionary *properties = @{@"Category" : @"Music", @"FileName" : @"favorite.avi"};
[MSACAnalytics trackEvent:@"Video clicked" withProperties: properties];
Analytics.trackEvent("Video clicked", withProperties: ["Category" : "Music", "FileName" : "favorite.avi"])
Olayların özellikleri tamamen isteğe bağlıdır; yalnızca bir olayı izlemek istiyorsanız, bunun yerine şu örneği kullanın:
[MSACAnalytics trackEvent:@"Video clicked"];
Analytics.trackEvent("Video clicked")
Olay önceliği ve kalıcılığı
Diğer olaylardan daha yüksek öneme sahip iş açısından kritik olayları izleyebilirsiniz.
- Geliştiriciler olayların önceliğini Normal (
FlagsNormalAPI'de) veya Kritik (FlagsCriticalAPI'de) olarak ayarlayabilir. - Önceliği Kritik olarak ayarlanan olaylar önce depolama alanından alınır ve Normal olaylardan önce gönderilir.
- Yerel depolama alanı dolu olduğunda ve yeni olayların depolanması gerektiğinde. En düşük önceliğe sahip en eski olaylar, yeni olaylara yer açmak için önce silinir.
- Depolama alanı Kritik önceliğe sahip günlüklerle doluysa, SDK bu durumda yer açamadığından Normal önceliğe sahip bir olayı izleme işlemi başarısız olur.
- Eğer Çökme hizmetini de kullanıyorsanız, çökme günlükleri Kritik olarak ayarlanır ve olaylarla aynı depolama alanını paylaşır.
- İletim aralığı yalnızca Normal olaylara uygulanır, Kritik olaylar 3 saniye sonra gönderilir.
Bir olayı Kritik olarak izlemek için aşağıdaki API'yi kullanabilirsiniz:
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.
Günlükleri göndermeyi duraklatma ve sürdürme
Olay iletimini duraklatmak, uygulamanın iş açısından daha kritik gereksinimler için ağ bant genişliğini denetlemesi gereken senaryolarda yararlı olabilir. Günlükleri App Center arka planına göndermeyi duraklatabilirsiniz. Duraklatıldığında, olaylar yine de izlenebilir ve kaydedilebilir, ancak hemen gönderilmez. Uygulamanız duraklatıldığında izlenen tüm olaylar, yalnızca resume çağrıldığında gönderilir.
[MSACAnalytics pause];
[MSACAnalytics resume];
Analytics.pause()
Analytics.resume()
Çalışma zamanında App Center Analytics'i etkinleştirme veya devre dışı bırakma
App Center Analytics'i çalışma zamanında etkinleştirebilir ve devre dışı bırakabilirsiniz. Devre dışı bırakırsanız SDK, uygulama için daha fazla analiz bilgisi toplamaz.
[MSACAnalytics setEnabled:NO];
Analytics.enabled = false
App Center Analytics'i yeniden etkinleştirmek için aynı API'yi kullanın ancak parametre olarak geçirin YES/true .
[MSACAnalytics setEnabled:YES];
Analytics.enabled = true
Durum, uygulama başlatmaları arasında cihazın depolama alanında kalıcı olur.
Uyarı
Analytics başlatıldıktan sonra bu yöntem yalnızca kullanılmalıdır.
App Center Analytics'in etkinleştirilip etkinleştirilmediğini denetleyin
App Center Analytics'in etkinleştirilip etkinleştirilmediğini de de kontrol edebilirsiniz.
[MSACAnalytics isEnabled];
Analytics.enabled
Uyarı
Bu yöntem yalnızca Analytics başlatıldıktan sonra kullanılmalıdır; başlamadan önce her zaman NO veya false döndürür.
Başlangıç oturumlarını yönetme
Varsayılan olarak, oturum kimliği uygulamanın yaşam döngüsüne bağlıdır. Yeni oturumun başlangıcını el ile denetlemek istiyorsanız, sonraki adımları izleyin:
Uyarı
Analytics.StartSession() API'sinin her çağrısının yeni bir oturum oluşturacağını dikkate alın. El ile oturum takip modu etkinken bu API çağrılmazsa, tüm gönderim günlüklerinin oturum değeri null olur.
Uyarı
Yeni bir uygulama başlatıldıktan sonra oturum kimliğinin yeniden oluşturulacağını dikkate alın.
- SDK başlamadan önce aşağıdaki yöntemi çağırın:
[MSACAnalytics enableManualSessionTracker];
Analytics.enableManualSessionTracker()
- Ardından,
startSessionAPI'yiAppCenter.startsonra kullanabilirsiniz.
[MSACAnalytics startSession];
Analytics.startSession()
Yerel depolama boyutu
Varsayılan olarak SDK, 10 MB'a kadar olan tüm günlükleri depolar. Geliştiriciler depolama boyutunu artırmak için bir API kullanabilir ve SDK depolama alanı dolana kadar günlükleri depolamaya devam eder.
İnternet erişimi yok
Ağ bağlantısı olmadığında SDK, yerel depolama alanına 10 MB'a kadar günlüğü kaydeder. Depolama alanı dolduktan sonra SDK, yeni günlüklere yer açmak için eski günlükleri atmaya başlar. Ağ bağlantısı geri geldiğinde, SDK günlükleri 50'lik partiler halinde veya her 6 saniyede bir (varsayılan olarak) gönderir.
Uyarı
25 günden eski günlükler atılır.
Olay günlüklerini toplulaştırma
App Center SDK günlükleri 50 günlük halinde karşıya yükler. Eğer SDK'nın gönderecek 50 günlüğü yoksa, yine de günlükleri 6 saniye sonra (varsayılan olarak) gönderir. Paralel olarak gönderilebilecek en fazla üç parti/grup olabilir. İletim aralığı değiştirilebilir:
// Change transmission interval to 10 seconds.
[MSACAnalytics setTransmissionInterval:10000];
// Change transmission interval to 10 seconds.
Analytics.transmissionInterval = 10000
İletim aralığı değeri 6 saniye ile 86400 saniye (bir gün) arasında olmalıdır ve hizmet başlatılmadan önce bu yöntem çağrılmalıdır.
Yeniden deneme ve geri kapatma mantığı
App Center SDK'sı kurtarılabilir ağ hatalarında geri alma yeniden denemelerini destekler. Yeniden deneme mantığı aşağıda verilmiştir:
- İstek başına en fazla üç deneme.
- Her bir isteğin kendi yeniden deneme durum yapısı vardır.
- Bir istek tüm yeniden denemelerini tükettiğinde tüm iletim kanalları devre dışı bırakılır (sonraki uygulama işlemine kadar).
Geri çekilme mantığı
- Rastgele 50%, önce 5 ile 10 saniye arasında yeniden deneyin, ikinci yeniden deneme 2,5 ile 5 dakika arasında, son deneme 10 ile 20 dakika arasında.
- Ağ kapalıdan açığa (veya wi-fi'dan mobil ağa) geçerse, yeniden deneme durumları sıfırlanır ve istekler hemen yeniden denenir.