NowAnalyticsService プロトコル : iOS
NowAnalyticsService プロトコルは、ユーザーアナリティクスデータの収集を管理するためのアナリティクスプロパティ、ユーザー設定、およびイベントを構成できる機能を提供します。
このプロトコルに準拠するオブジェクトが sharedAnalyticsService によって返されます。アプリケーションで API 呼び出しを実行するために使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| trackingConsent | ブーリアン | ユーザーが関連付けられたデバイスのアナリティクストラッキングに同意したかどうかを示すフラグ。デフォルトでは、デバイスはオプトアウトされています。この値を明示的に false に設定すると、進行中のセッションがすぐに終了し、ローカルに記録されたデータが削除されます。有効な値:
|
NowAnalyticsService - addEvent(named eventName: String, with properties: [String: Any]?)
ユーザーが特定のレベルまたは画面に到達するなどのアプリケーションイベントを追加し、イベントのカスタムプロパティの設定を有効にします。これらのイベントは、発生した順にダッシュボードに表示されます。
これらのイベントはアナリティクスダッシュボードに表示されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きイベント名 | 文字列 | 追加するイベントの名前。 |
| プロパティあり | アレイ | オプション。イベントのカスタムプロパティのキーと値のペア。プロパティキーには、ドット記号 (「.」) またはドル記号 (「$」) を含めることはできません。それらはトリミングされます。 サポートされている値のタイプは次のとおりです。
注: eventName、プロパティキー、および値の合計サイズは 300 バイト (イベントあたり) を超えてはなりません。文字列は UTF-8 でエンコードされています。この制限を超えるイベントは無視されます。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、プロパティを使用して「ログイン成功」イベントと「ケースを開く」イベントを追加する方法を示しています。
// Add event with properties
NowAnalytics.sharedAnalyticsService.addEvent(
named: "Open Case", with: ["Screen Name": "Case",
"Case Number": "123",
"Case Priority": 5
])
NowAnalyticsService - addScreenAction(named actionName: String)
現在の画面にカスタムアクションを追加します。これらのアクションは、セッションデータの一部としてユーザーダッシュボードに表示され、アプリケーションの画面変更を説明します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付き actionName | 文字列 | 画面に追加するアクションの名前 ( MyButtonClick など)。 最大長:256 UTF-8 バイト |
| タイプ | 説明 |
|---|---|
| なし |
// Add event
NowAnalytics.sharedAnalyticsService.addEvent(named: "Successful Login")
NowAnalyticsService - appendToUserProperty (named propertyName: String, listItem: String)
指定されたアイテムを 指定されたユーザープロパティリストに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付き propertyName | 文字列 | listItemを追加するユーザープロパティリストの名前。 |
| リストアイテム | 文字列 | プロパティに追加するリストアイテム。 |
| タイプ | 説明 |
|---|---|
| なし |
// Append handled case to list
NowAnalytics.sharedAnalyticsService.appendToUserProperty(named: "Case Identifiers", listItem: "TASK-1")
NowAnalyticsService - deleteCurrentUserData(完了: @escaping ((_ 成功: ブール) -> 無効))
現在のユーザーに関連付けられているすべてのアナリティクスデータを削除します。この方法では、現在のアクティブユーザーの設定も解除され、このデバイスが将来の追跡からオプトアウトされます。
現在のユーザーを設定するには、 setUserId() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 完了 | @escaping ((_ success: Bool) -> Void) | アナリティクスデータが削除された後に実行する補完ハンドラー。 補完ハンドラーの戻り値:
|
| タイプ | 説明 |
|---|---|
| なし |
// Delete user data
NowAnalytics.sharedAnalyticsService.deleteCurrentUserData(completion: { (success) -> Void in
if success {
// deletion succeeded
} else {
// deletion failed
}
})
NowAnalyticsService - incUserProperty (名前付き propertyName:文字列、値:Int)
指定された数値プロパティの値を指定された値だけインクリメントまたはデクリメントします。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付き propertyName | 文字列 | インクリメントするユーザープロパティの名前。 |
| 値別 | 整数 | プロパティをインクリメントする値。値をデクリメントするには、負の値を入力します。 |
| タイプ | 説明 |
|---|---|
| なし |
// Increment the "Cases Handled" count
NowAnalytics.sharedAnalyticsService.incUserProperty(named: "Cases Handled", by: 2)
NowAnalyticsService - installJavascriptInterface (webView:WKWebView へ)
JavaScript を使用して、WebView 内から SNAnalytics() API のメソッドを呼び出すことができます。
このメソッドは、JavaScript で使用可能な SNMobileAnalytics オブジェクトを返し、ネイティブメソッドを公開します。
| 名前 | タイプ | 説明 |
|---|---|---|
| Web ビュー | WKWebView | JavaScript インターフェイスを挿入する Web ビューオブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | SNMobileAnalytics |
// Register JS object inside the web page
// This will create an object named 'SNMobileAnalytics' on JS that will have the following methods:
// SNMobileAnalytics.setUserId(userId) example: SNMobileAnalytics.setUserId("John Doe")
// SNMobileAnalytics.startScreen(screenName) example: SNMobileAnalytics.startScreen("WelcomeScreen")
// SNMobileAnalytics.addScreenAction(actionName) example: SNMobileAnalytics.addScreenAction("MyButtonClick")
// SNMobileAnalytics.addEvent(eventName, properties) example: SNMobileAnalytics.addEvent("Successful Login")
// SNMobileAnalytics.addEvent("Successful Login", JSON.stringify({"Screen Name": "Case", "Case Number": "123", "Case Priority": 5}))
NowAnalytics.sharedAnalyticsService.installJavascriptInterface(into: webView)
NowAnalyticsService - removeUserProperty (named propertyName: String)
現在のユーザーの指定されたプロパティを削除します。
現在のユーザーを設定するには、 setUserId() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付き propertyName | 文字列 | 削除するユーザープロパティの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
// Remove unnecessary property
NowAnalytics.sharedAnalyticsService.removeUserProperty(named: "Temp Cases")
NowAnalyticsService - setDelegate(_ delegate: NowAnalyticsServiceDelegate?)
通知を受信する代理人の弱い参照を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 代理人 | NowAnalyticsServiceDelegate | オプション。 デリゲートクラスへの参照を含むオブジェクト。 |
| タイプ | 説明 |
|---|---|
| なし |
この例では、 NowAnalyticsServiceDelegate の委任クラスを定義する方法を示します。
// Define a delegate class for NowAnalyticsServiceDelegate
class NowAnalyticsDelegate: NowAnalytics.NowAnalyticsServiceDelegate {
func nowAnalyticsSessionShouldStart() -> Bool {
// Session is about to start, return true to allow session to start
return true
}
func nowAnalyticsSessionDidStart(_ sessionId: String) {
// Session was started
}
func nowAnalyticsSessionShouldEnd(_ sessionId: String) -> Bool {
// Session is about to end, return true to allow session to end
return true
}
func nowAnalyticsSessionDidEnd(_ sessionId: String) {
// Session was ended
}
func nowAnalyticsDidDetectScreen(_ screenName: String) -> String? {
// Example of skipping specific screen detection
if (screenName == "LoginViewController") {
return nil
}
// Example of appending a prefix for every screen detected
return "MyApp_" + screenName
}
}
// Register delegate
private var analyticsDelegate = NowAnalyticsDelegate() // Keep ref of delegate
NowAnalytics.sharedAnalyticsService.setDelegate(analyticsDelegate)
NowAnalyticsService - setUserId(_ userId: 文字列?)
現在のユーザーのアプリケーションのユーザー ID を設定します。現在のユーザーをログアウトするには nil を渡します。
| 名前 | タイプ | 説明 |
|---|---|---|
| userId | 文字列 | オプション。アプリケーション固有のユーザー識別子。 現在のユーザーをログアウトするには、 ユーザー ID には、HTML タグや、名前、メール、電話番号などの個人データを含めることはできません。 最大長:256 UTF-8 バイト |
| タイプ | 説明 |
|---|---|
| なし |
// Add several properties at once
NowAnalytics.sharedAnalyticsService.setUserProperties([
"Cases Handled": 100,
"Last Login": Date(),
"Is Remote": true,
"Profile URL": URL(string: "https://www.servicenow.com")!
])
NowAnalyticsService - setUserProperties(_ userProperties: [文字列: 任意])
現在のユーザーに対して、指定された値を持つ複数のプロパティを設定します。プロパティには、ユーザーのダッシュボードで追跡する任意のものを指定できます。
この関数を呼び出す前に、 setUserId() 関数を呼び出す必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| userProperty | アレイ | 設定するユーザープロパティのキーと値のペア。 サポートされている値のタイプは次のとおりです。
キーにドット記号 (「.」) またはドル記号 (「$」) を含めることはできません。 最大長:
|
| タイプ | 説明 |
|---|---|
| なし |
import NowAnalytics
// Initialize the Analytics SDK
NowAnalytics.configure(for: URL(string: "https://my.instance.service-now.com")!)
// Enable tracking consent
NowAnalytics.sharedAnalyticsService.trackingConsent = true
// Set User Id for proper identification
NowAnalytics.sharedAnalyticsService.setUserId("John Doe")
// Set the "Role" property of the user to "Admin"
NowAnalytics.sharedAnalyticsService.setUserProperty(named: "Role", with: "Admin")
// Add several properties at once
NowAnalytics.sharedAnalyticsService.setUserProperties([
"Cases Handled": 100,
"Last Login": Date(),
"Is Remote": true,
"Profile URL": URL(string: "https://www.servicenow.com")!
])
NowAnalyticsService - setUserProperty(named propertyName: String, with value: Any?)
現在のユーザーの指定されたプロパティを指定された値で設定します。アプリケーションに適した任意のプロパティを定義できます。
この関数を呼び出す前に、 setUserId() 関数を呼び出す必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付き propertyName | 文字列 | 設定するユーザープロパティの名前。ドット記号 (「.」) またはドル記号 (「$」) を含めることはできません。 最大長:256 文字 |
| 値あり | 任意 | ユーザープロパティを設定する値。 サポートされている値のタイプは次のとおりです。
最大長:1,000 文字 |
| タイプ | 説明 |
|---|---|
| なし |
// Set the "Role" property of the user to "Admin"
NowAnalytics.sharedAnalyticsService.setUserProperty(named: "Role", with: "Admin")
NowAnalyticsService - startScreen(named screenName: String)
関連する画面が UI に最初に表示される時刻をログに記録します。
viewDidAppear(_:) メソッドの後にこのメソッドを呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 指定された screenName | 文字列 | 開始時間を記録する画面の名前 ( WelcomeScreen など)。画面として定義し、アナリティクスダッシュボードに表示/アグリゲートする任意のものを指定できます。 最大長:256 UTF-8 バイト |
| タイプ | 説明 |
|---|---|
| なし |
// Mark the appearance starting time of a screen
// This method should be usually called from the viewDidAppear
NowAnalytics.sharedAnalyticsService.startScreen(named: "WelcomeScreen")