NowAnalyticsSDK 인터페이스 - Android

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 14분
  • NowAnalyticsSDK 인터페이스는 사용자 분석 데이터 컬렉션을 관리하기 위한 분석 속성, 사용자 설정 및 이벤트를 구성할 수 있는 기능을 제공합니다.

    표 1. 속성
    이름 유형 설명
    구성 NowServiceConfiguration 서비스와 연결할 구성입니다.

    NowAnalyticsSDK - addEvent(eventName: String)

    사용자가 특정 수준 또는 화면에 도달하는 경우와 같은 애플리케이션 이벤트를 추가합니다. 이러한 이벤트는 발생한 순서대로 대시보드에 나타납니다.

    표 2. 매개변수
    이름 유형 설명
    명명된 eventName 문자열 추가할 이벤트의 이름입니다.
    표 3. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 응용 프로그램 이벤트를 추가하는 방법을 보여 줍니다.

    // Add event
    NowAnalyticsSDK.getAnalyticsService().addEvent("Successful Login")

    NowAnalyticsSDK - addEvent(eventName: String, props: MutableMap<String, Any>)

    사용자가 특정 수준이나 화면에 도달하는 것과 같은 애플리케이션 이벤트를 추가하고 이벤트에 대한 사용자 지정 속성 설정을 활성화합니다. 이러한 이벤트는 발생한 순서대로 대시보드에 나타납니다.

    표 4. 매개변수
    이름 유형 설명
    eventName 문자열 추가할 이벤트의 이름입니다.
    props 뮤테이블맵 이벤트에 대한 사용자 지정 속성 키-값 쌍입니다.

    이벤트 이름, 속성 키 및 값의 총 크기는 속성당 300바이트를 초과할 수 없습니다. 이 제한을 초과하는 속성은 무시됩니다. 속성 키에는 점('.') 또는 달러('$') 기호가 포함될 수 없습니다. 기호가 있으면 잘립니다. 문자열은 UTF-8로 인코딩됩니다.

    지원되는 값 유형:
    • 정수
    • 두 번
    • 부동
    • 문자열
    • URL
    • 부울
    • 날짜
    표 5. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 이벤트에 대한 사용자 지정 속성을 포함하는 응용 프로그램 이벤트를 추가하는 방법을 보여 줍니다.

    // Add event with properties
    NowAnalyticsSDK.getAnalyticsService().addEvent("Open Case",
      mutableMapOf(
        "Screen Name" to "Case",
        "Case Number" to 123,
        "Case Priority" to 5
      )
    )

    NowAnalyticsSDK - addScreenAction(actionName: String)

    사용자 지정 작업을 추가합니다. 이러한 작업은 세션 데이터의 일부로 사용자 대시보드에 표시되며 애플리케이션의 화면 변경을 설명합니다.

    표 6. 매개변수
    이름 유형 설명
    actionName 문자열 화면에 추가할 작업의 이름(예: MyButtonClick)입니다.
    표 7. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 현재 화면에 사용자 지정 작업을 추가하는 방법을 보여 줍니다.

    // Add a custom action to the current screen
    NowAnalyticsSDK.getAnalyticsService().addScreenAction("MyButtonClick")

    NowAnalyticsSDK - appendToUserProperty(propertyName: String, item: String)

    지정된 항목을 지정된 사용자 속성 목록에 추가합니다.

    표 8. 매개변수
    이름 유형 설명
    propertyName 문자열 목록 항목을 추가할 사용자 속성의 이름입니다.
    항목 문자열 속성에 추가할 목록 항목입니다.
    표 9. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 지정된 목록에 케이스를 추가하는 방법을 보여 줍니다.

    // Append handled case to list
    NowAnalyticsSDK.getAnalyticsService().appendToUserProperty("Case Identifiers", "TASK-1")

    NowAnalyticsSDK - configure(instanceURL: URL, configureCallbacks: ConfigureCallbacks?)

    지정된 ServiceNow 인스턴스 URL을 구성하고 NowAnalytics에 콜백합니다.

    이 메서드가 호출되면 연결된 ServiceNow 인스턴스에서 실제 구성을 가져와 자동으로 동기화합니다.

    표 10. 매개변수
    이름 유형 설명
    인스턴스 URL URL ServiceNow NowAnalyticfs 서비스와 연결할 인스턴스의 URL입니다.
    구성 콜백 콜백 구성 옵션입니다. 인스턴스와 통신하는 동안 오류가 발생할 때마다 실행할 콜백입니다 ServiceNow . 이 콜백은 언제든지 호출할 수 있으며 여러 가지 이유로 여러 번 호출할 수 있습니다.
    표 11. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 지정된 인스턴스를 구성하는 방법을 보여 줍니다.

    // Init NowAnalytics after NowSDK is initialized
    NowAnalyticsSDK.getAnalyticsService().configure(URL("https://my.instance.service-now.com"),
      // Optional - pass callback
      object: ConfigureCallbacks {
        override fun onFail(e: Exception) {
          // configuration failed
        }
    
        override fun onSuccess() {
          // configuration succeeded
        }
      }
    )

    NowAnalyticsSDK - deleteCurrentUserData()

    현재 사용자의 모든 로컬 및 원격 데이터를 삭제합니다.

    또한 이 메서드는 현재 활성 사용자를 설정 해제하고 향후 분석 추적에서 이 장치를 옵트아웃합니다.
    주:
    이 메서드는 SNAnalytics 서버에 대한 동기 호출을 수행합니다. 따라서 사이드 스레드에서 이 작업을 수행하는 것이 좋습니다.
    표 12. 매개변수
    이름 유형 설명
    없음
    표 13. 반환
    유형 설명
    부울 삭제가 성공했는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 성공적으로 삭제되었습니다.
    • false: 삭제에 실패했습니다. SNAnalytics 서버에 연결할 수 없는 경우(예: 연결이 없는 경우) 오류가 발생할 수 있습니다. 메서드를 다시 시도해야 합니다.

    다음 코드 예제에서는 이 함수를 호출하여 현재 사용자의 데이터를 삭제하는 방법을 보여 줍니다.

    // Delete user data
    NowAnalyticsSDK.getAnalyticsService().deleteCurrentUserData()

    NowAnalyticsSDK - getTrackingConsent()

    분석 추적에 대한 현재 사용자의 동의 응답을 반환합니다.

    표 14. 매개변수
    이름 유형 설명
    없음
    표 15. 반환
    유형 설명
    부울 현재 사용자가 데이터 수집에 동의했는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 사용자가 데이터 수집에 동의했습니다.
    • false: 사용자가 데이터 수집을 옵트아웃했습니다.

    다음 코드 예제에서는 이 함수를 호출하여 분석 추적에 대한 현재 사용자의 동의 응답을 요청하는 방법을 보여 줍니다.

    // Get the current user tracking consent value
    val curUserConsent = NowAnalytics.sharedAnalyticsService.getTrackingConsent()

    NowAnalyticsSDK - incUserProperty(propertyName: String, value: Double)

    지정된 숫자 속성의 값을 지정된 값만큼 늘리거나 줄입니다.

    표 16. 매개변수
    이름 유형 설명
    propertyName 문자열 증가시킬 사용자 속성의 이름입니다.
    두 번 속성을 증가시키는 값입니다. 음수 값을 입력하여 값을 감소시킵니다.
    표 17. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    // Increment numeric_property_name by one
    NowAnalyticsSDK.getAnalyticsService().incUserProperty("numeric_property_name", 1.0)
    
    // Decrement numeric_property_name by one
    NowAnalyticsSDK.getAnalyticsService().incUserProperty("numeric_property_name", -1.0)

    NowAnalyticsSDK - installJavascriptInterface(webView: WebView)

    JavaScript를 사용하여 {@link android.webkit.WebView} 내에서 javaScript.SNMobileAnalytics 메서드를 호출할 수 있습니다.

    표 18. 매개변수
    이름 유형 설명
    웹뷰 WKWebView 연결할 {@link android.webkit.WebView}입니다.
    표 19. 반환
    유형 설명
    없음

    다음 코드 예제는 이 함수를 호출하여 javaScript.SNMobileAnalytics 메소드의 호출을 활성화하는 방법을 보여줍니다.

    // Register JS object inside the web page
    // This creates an object called 'SNMobileAnalytics' on JS that has 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}))
    NowAnalyticsSDK.getAnalyticsService().installJavascriptInterface(webView)

    NowAnalyticsSDK - removeUserProperty(propertyName: String)

    현재 사용자에 대해 지정된 속성을 삭제합니다.

    표 20. 매개변수
    이름 유형 설명
    propertyName 문자열 삭제할 사용자 속성의 이름입니다.
    표 21. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 "Temp Cases" 속성을 제거하는 방법을 보여 줍니다.

    // Remove unnecessary property
    NowAnalyticsSDK.getAnalyticsService().removeUserProperty("Temp Cases")

    NowAnalyticsSDK - setListener(nowAnalyticsListener: NowAnalyticsListener?)

    세션 변경 및 자동 화면 탐지와 같은 NowAnalytics 이벤트에 대한 수신기를 설정합니다.

    주:
    이 메서드를 호출할 때마다 수신기가 재정의됩니다.
    표 22. 매개변수
    이름 유형 설명
    nowAnalyticsListener NowAnalytics리스너 NowAnalytics가 세션 이벤트에 대해 알리는 인터페이스입니다.
    • onNowAnalyticsScreenDetected: NowAnalytics가 자동으로 화면을 탐지할 때 호출됩니다.
    • onNowAnalyticsSessionEnded: 세션이 종료된 후 호출됩니다.
    • onNowAnalyticsSessionEnding: 세션이 끝나기 직전에 호출되어 세션이 종료되는 것을 방지할 수 있습니다.
    • onNowAnalyticsSessionStarted: 세션이 시작되었을 때 호출됩니다.
    • onNowAnalyticsSessionStarting: 세션이 시작되기 직전에 호출되어 세션이 시작되지 않도록 할 수 있습니다.
    표 23. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 NowAnalyticsListener()를 설정하는 방법을 보여 줍니다.

    // From anywhere in the code you can register the delegate
    NowAnalyticsSDK.getAnalyticsService().setListener(NowAnalyticsListener())

    NowAnalyticsSDK - setTrackingConsent(consentGiven: 부울)

    현재 사용자의 동의 응답을 분석 추적으로 설정합니다.

    표 24. 매개변수
    이름 유형 설명
    consentGiven 부울 분석 추적에 대한 현재 사용자의 동의를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 사용자가 데이터 추적에 동의했습니다.
    • false: 사용자가 데이터 추적을 옵트아웃했습니다.
    표 25. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 현재 사용자의 동의 응답을 분석 추적으로 설정하는 방법을 보여 줍니다.

    // Enable tracking consent
    NowAnalyticsSDK.getAnalyticsService().setTrackingConsent(true)

    NowAnalyticsSDK - setUserId(userId: 문자열)

    애플리케이션별 사용자 식별자를 설정합니다. nil을 전달하여 현재 사용자를 로그아웃합니다.

    표 26. 매개변수
    이름 유형 설명
    userID 문자열 고유한 애플리케이션 관련 사용자 식별자입니다. 이 식별자는 대시보드에서 해당 사용자에 대한 보고서를 집계하는 데 사용됩니다.
    표 27. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 애플리케이션별 사용자 식별자를 "John Doe"로 설정하는 방법을 보여 줍니다.

    // Set User Id for proper identification
    NowAnalyticsSDK.getAnalyticsService().setUserId("John Doe")

    NowAnalyticsSDK - setUserProperties(userProperties: MutableMap<String, Any>)

    현재 사용자에 대해 지정된 값으로 여러 속성을 설정합니다. 속성은 대시보드에서 사용자를 추적하려는 모든 것이 될 수 있습니다.

    현재 사용자를 설정하려면 함수를 호출합니다 NowAnalyticsSDK - setUserId(userId: 문자열) .

    표 28. 매개변수
    이름 유형 설명
    userProperties 뮤테이블맵 설정할 사용자 속성의 키-값 쌍입니다.
    지원되는 값 유형:
    • 번호
    • 문자열
    • 날짜
    • URL
    표 29. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 현재 사용자에 대한 여러 속성을 설정하는 방법을 보여 줍니다.

    // Add several properties at once
    NowAnalyticsSDK.getAnalyticsService().setUserProperties(
      mutableMapOf(
        "Cases Handled" to 100,
        "Last Login" to Date(),
        "Is Remote" to true,
        "Profile URL" to URL("https://www.servicenow.com")
      )
    )

    NowAnalyticsSDK - setUserProperty(propertyName: String, propertyValue: Any)

    현재 사용자에 대해 지정된 속성을 지정된 값으로 설정합니다. 속성은 대시보드에서 사용자를 추적하려는 모든 것이 될 수 있습니다.

    현재 사용자를 설정하려면 함수를 호출합니다 NowAnalyticsSDK - setUserId(userId: 문자열) .

    표 30. 매개변수
    이름 유형 설명
    propertyName 문자열 설정할 사용자 속성의 이름입니다.
    모두 사용자 속성을 설정할 값입니다.
    지원되는 값 유형:
    • 번호
    • 문자열
    • 날짜
    • URL
    표 31. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 현재 사용자의 속성 "Role"을 "Admin"으로 설정하는 방법을 보여 줍니다.

    // Set the "Role" property of the user to "Admin"
    NowAnalyticsSDK.getAnalyticsService().setUserProperty("Role", "Admin")

    NowAnalyticsSDK - startScreen(screenName: String)

    연결된 화면이 UI에 처음 나타나는 시간을 기록합니다.

    일반적으로 활동의 onResume() 메서드에서 이 메서드를 호출합니다.

    표 32. 매개변수
    이름 유형 설명
    명명된 screenName 문자열 시작 시간을 기록할 화면의 이름입니다(예: WelcomeScreen). 이는 분석 대시보드에서 화면 및 표시/집계로 정의하려는 모든 것이 될 수 있습니다.
    표 33. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하여 "WelcomeScreen" 디스플레이의 시작 시간을 설정하는 방법을 보여 줍니다.

    // Mark the appearance starting time of a screen
    // This method should be usually called from the onResume() method
    NowAnalyticsSDK.getAnalyticsService().startScreen("WelcomeScreen")