NowAnalyticsService プロトコル:iOS
NowAnalyticsService プロトコルは、ユーザーアナリティクスデータの収集を管理するためのアナリティクスプロパティ、ユーザー設定、およびイベントを構成できる機能を提供します。
このプロトコルに準拠するオブジェクトは、 sharedAnalyticsService によって返されます。アプリケーションでこれを使用して API 呼び出しを実行します。
| [Name (名前)] | タイプ | 説明 |
|---|---|---|
| trackingConsent | ブール | ユーザーが関連付けられたデバイスのアナリティクス追跡に同意したかどうかを示すフラグ。デフォルトでは、デバイスはオプトアウトされています。この値を明示的に false に設定すると、進行中のセッションがすぐに終了し、ローカルに記録されたデータが削除されます。有効な値:
|
NowAnalyticsService - addEvent(名前付きイベント名:文字列、プロパティ:[文字列:任意]?)
ユーザーが特定のレベルまたは画面に到達するなどのアプリケーションイベントを追加し、イベントのカスタムプロパティの設定を有効にします。これらのイベントは、発生した順にダッシュボードに表示されます。
これらのイベントは、アナリティクスダッシュボードに表示されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きイベント名 | 文字列 | 追加するイベントの名前。 |
| プロパティあり | アレイ | オプション。イベントのカスタムプロパティのキーと値のペア。プロパティ キーにドット記号 ('.') またはドル記号 ('$') を含めることはできません。それらはトリミングされます。 サポートされている値タイプ:
注: 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(名前付き actionName: String)
現在の画面にカスタムアクションを追加します。これらのアクションは、セッションデータの一部としてユーザーダッシュボードに表示され、アプリケーションの画面変更について説明します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きアクション名 | 文字列 | 画面に追加するアクションの名前 ( MyButtonClick など)。 最大長:256 UTF-8 バイト |
| タイプ | 説明 |
|---|---|
| なし |
// Add event
NowAnalytics.sharedAnalyticsService.addEvent(named: "Successful Login")
NowAnalyticsService - appendToUserProperty(名前付きプロパティ名:文字列、listItem:文字列)
指定されたアイテムを指定されたユーザープロパティリストに追加 します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きプロパティ名 | 文字列 | listItemを追加するユーザープロパティリストの名前。 |
| リストアイテム | 文字列 | プロパティに追加するリストアイテム。 |
| タイプ | 説明 |
|---|---|
| なし |
// Append handled case to list
NowAnalytics.sharedAnalyticsService.appendToUserProperty(named: "Case Identifiers", listItem: "TASK-1")
NowAnalyticsService - deleteCurrentUserData(completion: @escaping ((_ success: Bool) -> Void))
現在のユーザーに関連付けられているすべてのアナリティクスデータを削除します。このメソッドは、現在のアクティブユーザーの設定を解除し、このデバイスを今後の追跡からオプトアウトします。
現在のユーザーを設定するには、 setUserId() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 完了 | @escaping ((_ success: Bool) -> Void) | アナリティクスデータが削除された後に実行する補完ハンドラー。 補完ハンドラーの戻り値:
|
| タイプ | 説明 |
|---|---|
| なし |
// Delete user data
NowAnalytics.sharedAnalyticsService.deleteCurrentUserData(completion: { (success) -> Void in
if success {
// deletion succeeded
} else {
// deletion failed
}
})
NowAnalyticsService - incUserProperty(名前付きプロパティ名:文字列、値別:Int)
指定された数値プロパティの値を指定された値だけインクリメントまたはデクリメントします。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きプロパティ名 | 文字列 | インクリメントするユーザープロパティの名前。 |
| 値別 | 整数 | プロパティをインクリメントする値。値をデクリメントするには、負の値を入力します。 |
| タイプ | 説明 |
|---|---|
| なし |
// 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 ビューオブジェクト。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | SNMobileアナリティクス |
// 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(名前付きプロパティ名:文字列)
現在のユーザーの指定されたプロパティを削除します。
現在のユーザーを設定するには、 setUserId() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きプロパティ名 | 文字列 | 削除するユーザープロパティの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
// Remove unnecessary property
NowAnalytics.sharedAnalyticsService.removeUserProperty(named: "Temp Cases")
NowAnalyticsService - setDelegate(_ 委任: 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: String?)
現在のユーザーのアプリケーションのユーザー 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() 関数を呼び出す必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| userProperties | アレイ | 設定するユーザープロパティのキーと値のペア。 サポートされている値タイプ:
キーにドット (「.」) またはドル記号 (「$」) を含めることはできません。 最大長:
|
| タイプ | 説明 |
|---|---|
| なし |
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(名前付きプロパティ名:文字列、値:任意?)
指定されたプロパティを現在のユーザーの指定された値で設定します。アプリケーションに適したプロパティを定義できます。
この関数を呼び出す前に、 setUserId() 関数を呼び出す必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| 名前付きプロパティ名 | 文字列 | 設定するユーザープロパティの名前。ドット ('.') またはドル記号 ('$') を含めることはできません。 最大長:256 文字 |
| 値あり | 任意 | ユーザープロパティを設定する値。 サポートされている値タイプ:
最大長:1,000 文字 |
| タイプ | 説明 |
|---|---|
| なし |
// Set the "Role" property of the user to "Admin"
NowAnalytics.sharedAnalyticsService.setUserProperty(named: "Role", with: "Admin")
NowAnalyticsService - startScreen(名前付き 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")