---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowAnalyticsService プロトコル : iOS

# NowAnalyticsService プロトコル : iOS {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：14分

NowAnalyticsService プロトコルは、ユーザーアナリティクスデータの収集を管理するためのアナリティクスプロパティ、ユーザー設定、およびイベントを構成できる機能を提供します。

このプロトコルに準拠するオブジェクトが `sharedAnalyticsService` によって返されます。アプリケーションで API 呼び出しを実行するために使用します。  
{#NowAnalyticsServiceiOSProtocol__table_vx2_klw_5pb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| trackingConsent | ブーリアン | ユーザーが関連付けられたデバイスのアナリティクストラッキングに同意したかどうかを示すフラグ。デフォルトでは、デバイスはオプトアウトされています。この値を明示的に `false` に設定すると、進行中のセッションがすぐに終了し、ローカルに記録されたデータが削除されます。 有効な値： * true:ユーザーは、このデバイスで分析データが追跡されることに同意しました。 * false:ユーザーはデータトラッキングを拒否しました。 {#NowAnalyticsServiceiOSProtocol__ul_flc_ngx_5pb} |
[表 : 1. 要件]

{#NowAnalyticsServiceiOSProtocol__table_vx2_klw_5pb}

## NowAnalyticsService - addEvent(named eventName: String, with properties: \[String: Any\]?) {#ariaid-title2}

ユーザーが特定のレベルまたは画面に到達するなどのアプリケーションイベントを追加し、イベントのカスタムプロパティの設定を有効にします。これらのイベントは、発生した順にダッシュボードに表示されます。
これらのイベントはアナリティクスダッシュボードに表示されます。
{#NAnalyServiOs-addEvent_S_A__table_hwl_5vy_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 名前付きイベント名 | 文字列 | 追加するイベントの名前。 |
| プロパティあり | アレイ | オプション。イベントのカスタムプロパティのキーと値のペア。プロパティキーには、ドット記号 (「.」) またはドル記号 (「$」) を含めることはできません。それらはトリミングされます。 サポートされている値のタイプは次のとおりです。 * 日付 * NSNull * NSNumber * 文字列 * URL {#NAnalyServiOs-addEvent_S_A__ul_g41_kxy_spb} 注: eventName、プロパティキー、および値の合計サイズは 300 バイト (イベントあたり) を超えてはなりません。文字列は UTF-8 でエンコードされています。この制限を超えるイベントは無視されます。 |
[表 : 2. パラメーター]

{#NAnalyServiOs-addEvent_S_A__table_hwl_5vy_spb} {#NAnalyServiOs-addEvent_S_A__table_iwl_5vy_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 3. 返される内容]

{#NAnalyServiOs-addEvent_S_A__table_iwl_5vy_spb}  
次の例は、プロパティを使用して「ログイン成功」イベントと「ケースを開く」イベントを追加する方法を示しています。

    // 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) {#ariaid-title3}

現在の画面にカスタムアクションを追加します。これらのアクションは、セッションデータの一部としてユーザーダッシュボードに表示され、アプリケーションの画面変更を説明します。
{#NAnalyServiOS-addScreenAction_S__table_lxc_hzy_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 名前付き actionName | 文字列 | 画面に追加するアクションの名前 ( <kbd class="ph userinput">MyButtonClick</kbd> など)。 最大長:256 UTF-8 バイト |
[表 : 4. パラメーター]

{#NAnalyServiOS-addScreenAction_S__table_lxc_hzy_spb} {#NAnalyServiOS-addScreenAction_S__table_mxc_hzy_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#NAnalyServiOS-addScreenAction_S__table_mxc_hzy_spb}  
<br />

    // Add event
    NowAnalytics.sharedAnalyticsService.addEvent(named: "Successful Login")

## NowAnalyticsService - appendToUserProperty (named propertyName: String, listItem: String) {#ariaid-title4}

指定されたアイテムを 指定されたユーザープロパティリストに追加します。
{#NAnalyServiOS-appendToUserProp_S_S__table_uhf_jd1_tpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 名前付き propertyName | 文字列 | listItemを追加するユーザープロパティリストの名前。 |
| リストアイテム | 文字列 | プロパティに追加するリストアイテム。 |
[表 : 6. パラメーター]

{#NAnalyServiOS-appendToUserProp_S_S__table_uhf_jd1_tpb} {#NAnalyServiOS-appendToUserProp_S_S__table_vhf_jd1_tpb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 7. 返される内容]

{#NAnalyServiOS-appendToUserProp_S_S__table_vhf_jd1_tpb}  
<br />

    // Append handled case to list
    NowAnalytics.sharedAnalyticsService.appendToUserProperty(named: "Case Identifiers", listItem: "TASK-1")

## NowAnalyticsService - deleteCurrentUserData(完了: @escaping ((_ 成功: ブール) -\> 無効)) {#ariaid-title5}

現在のユーザーに関連付けられているすべてのアナリティクスデータを削除します。この方法では、現在のアクティブユーザーの設定も解除され、このデバイスが将来の追跡からオプトアウトされます。
現在のユーザーを設定するには、 [setUserId()](https://servicenow-prod.fluidtopics.net/F3aP8VZ5gf~3FPdbLhvSYw#NAnalyServiOS-setUserId_S "現在のユーザーのアプリケーションのユーザー ID を設定します。現在のユーザーをログアウトするには nil を渡します。") メソッドを使用します。
{#NAnalyServiOS-deleteCurrentUserData_O__table_akt_yry_spb__entry__3}{#NAnalyServiOS-deleteCurrentUserData_O__mobilesdkiOS-completion_data_dataerror-row}

| 名前 | タイプ | 説明 |
|-|-|-|
| 完了 | @escaping ((_ success: Bool) -\> Void) | アナリティクスデータが削除された後に実行する補完ハンドラー。 補完ハンドラーの戻り値: * 成功:ブール値 true を返します。 * 失敗:無効 - 接続がない場合など、 使用状況インサイト サーバーに到達できない場合、エラーが発生する可能性があります。エラーが発生した場合は、メソッドを再試行してください。 {#NAnalyServiOS-deleteCurrentUserData_O__ul_uzx_thj_ppb} |
[表 : 8. パラメーター]

{#NAnalyServiOS-deleteCurrentUserData_O__table_akt_yry_spb} {#NAnalyServiOS-deleteCurrentUserData_O__table_bkt_yry_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 9. 返される内容]

{#NAnalyServiOS-deleteCurrentUserData_O__table_bkt_yry_spb}  
<br />

    // Delete user data
    NowAnalytics.sharedAnalyticsService.deleteCurrentUserData(completion: { (success) -> Void in
      if success {
        // deletion succeeded
      } else {
        // deletion failed
      }
    })

## NowAnalyticsService - incUserProperty (名前付き propertyName:文字列、値:Int) {#ariaid-title6}

指定された数値プロパティの値を指定された値だけインクリメントまたはデクリメントします。
{#NAnalyServiOS-incUserProperty_S_I__table_fkc_chz_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 名前付き propertyName | 文字列 | インクリメントするユーザープロパティの名前。 |
| 値別 | 整数 | プロパティをインクリメントする値。値をデクリメントするには、負の値を入力します。 |
[表 : 10. パラメーター]

{#NAnalyServiOS-incUserProperty_S_I__table_fkc_chz_spb} {#NAnalyServiOS-incUserProperty_S_I__table_gkc_chz_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 11. 返される内容]

{#NAnalyServiOS-incUserProperty_S_I__table_gkc_chz_spb}  
<br />

    // Increment the "Cases Handled" count
    NowAnalytics.sharedAnalyticsService.incUserProperty(named: "Cases Handled", by: 2)

## NowAnalyticsService - installJavascriptInterface (webView:WKWebView へ) {#ariaid-title7}

JavaScript を使用して、WebView 内から SNAnalytics() API のメソッドを呼び出すことができます。
このメソッドは、JavaScript で使用可能な [SNMobileAnalytics](https://servicenow-prod.fluidtopics.net/E3MmyHvF7Q1U_MiVbfuuOw#SNMobileAnalytics "SNMobileAnalytics API は、JavaScript を使用して WebView 内で呼び出すことができるメソッドを提供します。これらのメソッドを使用すると、カスタムアナリティクスデータ (イベント、ページ、およびユーザープロパティ) をサービスポータルの使用状況インサイトダッシュボードにプッシュできます。") オブジェクトを返し、ネイティブメソッドを公開します。
{#NAnalyServiOS-installJSInterface_O__table_pqj_dh1_tpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| Web ビュー | WKWebView | JavaScript インターフェイスを挿入する Web ビューオブジェクト。 |
[表 : 12. パラメーター]

{#NAnalyServiOS-installJSInterface_O__table_pqj_dh1_tpb} {#NAnalyServiOS-installJSInterface_O__table_qqj_dh1_tpb__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | [SNMobileAnalytics](https://servicenow-prod.fluidtopics.net/E3MmyHvF7Q1U_MiVbfuuOw#SNMobileAnalytics "SNMobileAnalytics API は、JavaScript を使用して WebView 内で呼び出すことができるメソッドを提供します。これらのメソッドを使用すると、カスタムアナリティクスデータ (イベント、ページ、およびユーザープロパティ) をサービスポータルの使用状況インサイトダッシュボードにプッシュできます。") |
[表 : 13. 返される内容]

{#NAnalyServiOS-installJSInterface_O__table_qqj_dh1_tpb}  
<br />

    // 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) {#ariaid-title8}

現在のユーザーの指定されたプロパティを削除します。
現在のユーザーを設定するには、 [setUserId()](https://servicenow-prod.fluidtopics.net/F3aP8VZ5gf~3FPdbLhvSYw#NAnalyServiOS-setUserId_S "現在のユーザーのアプリケーションのユーザー ID を設定します。現在のユーザーをログアウトするには nil を渡します。") メソッドを使用します。
{#NAnalyServiOS-removeUserProp_S__table_jdm_lf1_tpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 名前付き propertyName | 文字列 | 削除するユーザープロパティの名前。 |
[表 : 14. パラメーター]

{#NAnalyServiOS-removeUserProp_S__table_jdm_lf1_tpb} {#NAnalyServiOS-removeUserProp_S__table_kdm_lf1_tpb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 15. 返される内容]

{#NAnalyServiOS-removeUserProp_S__table_kdm_lf1_tpb}  
<br />

    // Remove unnecessary property
    NowAnalytics.sharedAnalyticsService.removeUserProperty(named: "Temp Cases")

## NowAnalyticsService - setDelegate(_ delegate: NowAnalyticsServiceDelegate?) {#ariaid-title9}

通知を受信する代理人の弱い参照を設定します。
{#NAnalyServiOS-setDelegate_O__table_d42_j31_tpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 代理人 | [NowAnalyticsServiceDelegate](https://servicenow-prod.fluidtopics.net/WLEuiftSTZ1PA1hlHM6KFg#NowAnalyticsServiceDeliOSProtocol "NowAnalyticsServiceDelegate プロトコルは、ユーザーセッションの開始と終了、および画面変更検出に関する情報を提供するコールバック関数を提供します。") | オプション。 デリゲートクラスへの参照を含むオブジェクト。 // Register delegate private var analyticsDelegate = NowAnalyticsDelegate()  // Keep ref of delegate NowAnalytics.sharedAnalyticsService.setDelegate(analyticsDelegate) |
[表 : 16. パラメーター]

{#NAnalyServiOS-setDelegate_O__table_d42_j31_tpb} {#NAnalyServiOS-setDelegate_O__table_e42_j31_tpb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 17. 返される内容]

{#NAnalyServiOS-setDelegate_O__table_e42_j31_tpb}  
この例では、 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: 文字列?) {#ariaid-title10}

現在のユーザーのアプリケーションのユーザー ID を設定します。現在のユーザーをログアウトするには nil を渡します。
{#NAnalyServiOS-setUserId_S__table_r2r_x1z_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| userId | 文字列 | オプション。アプリケーション固有のユーザー識別子。 現在のユーザーをログアウトするには、 `nil` を渡します。 ユーザー ID には、HTML タグや、名前、メール、電話番号などの個人データを含めることはできません。 最大長:256 UTF-8 バイト |
[表 : 18. パラメーター]

{#NAnalyServiOS-setUserId_S__table_r2r_x1z_spb} {#NAnalyServiOS-setUserId_S__table_s2r_x1z_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 19. 返される内容]

{#NAnalyServiOS-setUserId_S__table_s2r_x1z_spb}  
<br />

    // 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: \[文字列: 任意\]) {#ariaid-title11}

現在のユーザーに対して、指定された値を持つ複数のプロパティを設定します。プロパティには、ユーザーのダッシュボードで追跡する任意のものを指定できます。
この関数を呼び出す前に、 [setUserId()](https://servicenow-prod.fluidtopics.net/F3aP8VZ5gf~3FPdbLhvSYw#NAnalyServiOS-setUserId_S "現在のユーザーのアプリケーションのユーザー ID を設定します。現在のユーザーをログアウトするには nil を渡します。") 関数を呼び出す必要があります。
{#NAnalyServiOS-setUserProperties_A__table_o5w_vfz_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| userProperty | アレイ | 設定するユーザープロパティのキーと値のペア。 サポートされている値のタイプは次のとおりです。 * NSNumber * 文字列 * 日付 * URL * NSNull キーにドット記号 (「.」) またはドル記号 (「$」) を含めることはできません。 最大長: * キー:256 文字 * 値:1,000 文字 {#NAnalyServiOS-setUserProperties_A__ul_vqr_1rc_zpb} |
[表 : 20. パラメーター]

{#NAnalyServiOS-setUserProperties_A__table_o5w_vfz_spb} {#NAnalyServiOS-setUserProperties_A__table_p5w_vfz_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 21. 返される内容]

{#NAnalyServiOS-setUserProperties_A__table_p5w_vfz_spb}  
<br />

    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?) {#ariaid-title12}

現在のユーザーの指定されたプロパティを指定された値で設定します。アプリケーションに適した任意のプロパティを定義できます。
この関数を呼び出す前に、 [setUserId()](https://servicenow-prod.fluidtopics.net/F3aP8VZ5gf~3FPdbLhvSYw#NAnalyServiOS-setUserId_S "現在のユーザーのアプリケーションのユーザー ID を設定します。現在のユーザーをログアウトするには nil を渡します。") 関数を呼び出す必要があります。
{#NAnalyServiOS-setUserProperty_S_A__table_idn_sdz_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 名前付き propertyName | 文字列 | 設定するユーザープロパティの名前。ドット記号 (「.」) またはドル記号 (「$」) を含めることはできません。 最大長:256 文字 |
| 値あり | 任意 | ユーザープロパティを設定する値。 サポートされている値のタイプは次のとおりです。 * 日付 * NSNull * NSNumber * 文字列 * URL 最大長:1,000 文字 |
[表 : 22. パラメーター]

{#NAnalyServiOS-setUserProperty_S_A__table_idn_sdz_spb} {#NAnalyServiOS-setUserProperty_S_A__table_jdn_sdz_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 23. 返される内容]

{#NAnalyServiOS-setUserProperty_S_A__table_jdn_sdz_spb}  
<br />

    // Set the "Role" property of the user to "Admin"
    NowAnalytics.sharedAnalyticsService.setUserProperty(named: "Role", with: "Admin")

## NowAnalyticsService - startScreen(named screenName: String) {#ariaid-title13}

関連する画面が UI に最初に表示される時刻をログに記録します。
viewDidAppear(_:) メソッドの後にこのメソッドを呼び出します。
{#NAnalyServiOS-startScreen_S__table_vw5_fyy_spb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 指定された screenName | 文字列 | 開始時間を記録する画面の名前 ( <kbd class="ph userinput">WelcomeScreen </kbd>など)。画面として定義し、アナリティクスダッシュボードに表示/アグリゲートする任意のものを指定できます。 最大長:256 UTF-8 バイト |
[表 : 24. パラメーター]

{#NAnalyServiOS-startScreen_S__table_vw5_fyy_spb} {#NAnalyServiOS-startScreen_S__table_ww5_fyy_spb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 25. 返される内容]

{#NAnalyServiOS-startScreen_S__table_ww5_fyy_spb}  
<br />

    // Mark the appearance starting time of a screen
    // This method should be usually called from the viewDidAppear
    NowAnalytics.sharedAnalyticsService.startScreen(named: "WelcomeScreen")


