トレーニング
ラーニング パス
FastTrack サービス、データ管理などを使用して、財務と運用アプリの実装を成功させるためのプロジェクト方法論を計画および設計します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
App Center Analytics は、ユーザーの行動と顧客エンゲージメントを理解し、アプリを改善するのに役立ちます。 SDK では、セッション数とデバイスのプロパティ (モデル、OS バージョンなど) が自動的にキャプチャされます。独自のカスタム イベントを定義して、自分にとって重要なものを測定できます。 キャプチャされたすべての情報は、データを分析するために App Center ポータルで使用できます。
注意
App Center Analytics for macOS では、運送業者の国と運送業者の名前は使用できませんが、デバイスの場所で運送業者の国を設定できます。
注意
App Center の 4.0.0
バージョンでは、破壊的変更が導入されました。 App Center SDK 4.0.0 以降への移行に関するセクションに従って、App Center を以前のバージョンから移行します。
アプリケーションで SDK をまだ設定していない場合は、[ 作業の開始 ] セクションに従います。
App Center Analytics をアプリに追加して SDK を起動すると、OS のバージョン、モデルなどのセッションとデバイス プロパティが自動的に追跡され、コードは追加されなくなります。
注意
Mac Catalyst アプリでは、セッションの量が iOS アプリよりも低い場合があります。 Mac Catalyst でのセッションの追跡に使用されるライフサイクル イベントは、iOS のセッションとは異なる動作をします。
デバイスにモバイル データ モデムと SIM カードがインストールされている場合、SDK によってユーザーの国番号が自動的に報告されます。 WiFi 専用デバイスでは、既定では国番号は報告されません。 これらのユーザーの国コードを設定するには、ユーザーの場所を自分で取得し、SDK で メソッドを setCountryCode:
使用する必要があります。 私たちのアドバイスは、ユーザーの場所を追跡し、低い場所の解像度を使用することについて注意することです。 下のサンプルでは kCLLocationAccuracyKilometer
が使用されています。
CLLocationManager
取得します。CLGeocoder
、場所を ISO 国コードに変換します。setCountryCode
国コードをオーバーライドします。次のコードを使用して、デバイスの場所を取得し、アプリの通信事業者の国コードをオーバーライドします。
CLLocationManagerDelegate プロトコルを AppDelegate に追加し、locationManager プロパティを追加します。
@interface AppDelegate () <CLLocationManagerDelegate>
@property(nonatomic) CLLocationManager *locationManager;
@end
class AppDelegate: CLLocationManagerDelegate {
private var locationManager: CLLocationManager = CLLocationManager()
}
didFinishLaunchingWithOptions: メソッドで、場所マネージャーを設定します。
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()
注意
メソッドは requestWhenInUseAuthorization
macOS では使用できません。 macOS 用に開発するときに、そのメソッドの呼び出しを削除します。
デリゲート メソッドを追加します。
- (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)")
}
最大 20 個のプロパティを使用して独自のカスタム イベントを追跡して、アプリの動作を把握し、ユーザーアクションを理解し、App Center ポータルで集計を確認できます。
SDK を開始したら、 メソッドを trackEvent:withProperties
使用して、プロパティを使用してイベントを追跡します。 最大 200 個の個別のイベント名を送信できます。 また、イベント名あたり 256 文字、イベント プロパティ名とイベント プロパティ値あたり 125 文字の上限があります。
NSDictionary *properties = @{@"Category" : @"Music", @"FileName" : @"favorite.avi"};
[MSACAnalytics trackEvent:@"Video clicked" withProperties: properties];
Analytics.trackEvent("Video clicked", withProperties: ["Category" : "Music", "FileName" : "favorite.avi"])
イベントのプロパティは完全に省略可能です。イベントを追跡するだけの場合は、代わりに次のサンプルを使用します。
[MSACAnalytics trackEvent:@"Video clicked"];
Analytics.trackEvent("Video clicked")
他のイベントよりも重要度の高いビジネス クリティカルなイベントを追跡できます。
FlagsNormal
API の場合) または Critical (FlagsCritical
API の場合) として設定できます。次の API を使用して、 イベントを Critical として追跡できます。
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.
イベント転送の一時停止は、アプリがビジネス クリティカルなニーズに合わせてネットワーク帯域幅を制御する必要があるシナリオで役立ちます。 App Center バックエンドへのログの送信を一時停止できます。 一時停止しても、イベントは追跡および保存できますが、すぐには送信されません。 一時停止中にアプリが追跡するすべてのイベントは、 を呼び出 resume
した後にのみ送信されます。
[MSACAnalytics pause];
[MSACAnalytics resume];
Analytics.pause()
Analytics.resume()
実行時に App Center Analytics を有効または無効にすることができます。 これを無効にした場合、SDK はアプリの分析情報をこれ以上収集しません。
[MSACAnalytics setEnabled:NO];
Analytics.enabled = false
App Center Analytics を再度有効にするには、同じ API を使用しますが、パラメーターとして を渡します YES
/true
。
[MSACAnalytics setEnabled:YES];
Analytics.enabled = true
状態は、アプリケーションの起動間でデバイスのストレージに保持されます。
注意
このメソッドは、開始後 Analytics
にのみ使用する必要があります。
App Center Analytics が有効になっているかどうかをチェックすることもできます。
[MSACAnalytics isEnabled];
Analytics.enabled
注意
このメソッドは、開始後Analytics
にのみ使用する必要があり、常に または false
開始前に を返NO
します。
既定では、セッション ID はアプリケーションのライフサイクルによって異なります。 新しいセッションの開始を手動で制御する場合は、次の手順に従います。
注意
Analytics.StartSession() API の呼び出しごとに新しいセッションが生成されることに注意してください。 手動セッション トラッカー モードでは、この API が呼び出されない場合、すべての送信ログに null セッション値が設定されます。
注意
新しいアプリケーションの起動後にセッション ID が再生成されることに注意してください。
[MSACAnalytics enableManualSessionTracker];
Analytics.enableManualSessionTracker()
startSession
API を AppCenter.start
使用できます。[MSACAnalytics startSession];
Analytics.startSession()
既定では、SDK は最大 10 MB のすべてのログを格納します。 開発者は API を使用してストレージ サイズを増やすことができます。SDK は 、ストレージ がいっぱいになるまでログを格納し続けます。
ネットワーク接続がない場合、SDK はローカル ストレージに最大 10 MB のログを保存します。 ストレージがいっぱいになると、SDK は古いログの破棄を開始して、新しいログのスペースを作ります。 ネットワーク接続が戻ると、SDK は 50 のバッチで、または 6 秒ごとに (既定で) ログを送信します。
注意
25 日より前のログは破棄されます。
App Center SDK は 50 のバッチでログをアップロードします。SDK に送信するログが 50 個ない場合でも、6 秒後 (既定) にログが送信されます。 並列で送信されるバッチは最大 3 つまでです。 送信間隔は次のように変更できます。
// Change transmission interval to 10 seconds.
[MSACAnalytics setTransmissionInterval:10000];
// Change transmission interval to 10 seconds.
Analytics.transmissionInterval = 10000
伝送間隔の値は 6 秒から 86400 秒 (1 日) の間である必要があり、このメソッドはサービスが開始される前に呼び出す必要があります。
App Center SDK では、回復可能なネットワーク エラーに対するバックオフ再試行がサポートされています。 再試行ロジックを次に示します。
バックオフ ロジック
トレーニング
ラーニング パス
FastTrack サービス、データ管理などを使用して、財務と運用アプリの実装を成功させるためのプロジェクト方法論を計画および設計します。