NowAnalyticsSDK インターフェイス - Android

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:16分
  • NowAnalyticsSDK インターフェイスには、ユーザーアナリティクスデータのコレクションを管理するためのアナリティクスプロパティ、ユーザー設定、およびイベントを構成できる機能が用意されています。

    表 : 1. プロパティ
    名前 タイプ Description (説明)
    構成 NowServiceConfiguration サービスに関連付ける構成。

    NowAnalyticsSDK - addEvent(eventName:文字列)

    ユーザーが特定のレベルまたは画面に到達するなど、アプリケーションイベントを追加します。これらのイベントは、発生した順序でダッシュボードに表示されます。

    表 : 2. パラメーター
    名前 タイプ Description (説明)
    名前付き eventName 文字列 追加するイベントの名前。
    表 : 3. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出してアプリケーション イベントを追加する方法を示しています。

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

    NowAnalyticsSDK - addEvent(eventName:文字列、props:MutableMap<String、Any>)

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

    表 : 4. パラメーター
    名前 タイプ 説明
    eventName 文字列 追加するイベントの名前。
    プロパティ MutableMap (ミュータブルマップ) イベントのカスタムプロパティのキーと値のペア。

    イベント名、プロパティキー、および値の合計サイズは、プロパティあたり 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:文字列、item:文字列)

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

    表 : 8. パラメーター
    名前 タイプ 説明
    propertyName 文字列 リストアイテムを追加するユーザープロパティの名前。
    item 文字列 プロパティに追加するリストアイテム。
    表 : 9. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出して、指定されたリストにケースを追加する方法を示しています。

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

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

    指定された ServiceNow インスタンス URL とコールバックを NowAnalytics に設定します。

    このメソッドが呼び出されると、関連付けられた ServiceNow インスタンスから実際の構成がフェッチされ、自動的に同期されます。

    表 : 10. パラメーター
    名前 タイプ Description (説明)
    インスタンス URL URL NowAnalyticfs サービスに関連付ける ServiceNow インスタンスの URL。
    configureCallback ConfigureCallback オプション。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:文字列、値: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. パラメーター
    名前 タイプ Description (説明)
    Web ビュー 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. パラメーター
    名前 タイプ Description (説明)
    nowAnalyticsリスナー 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. パラメーター
    名前 タイプ Description (説明)
    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. パラメーター
    名前 タイプ Description (説明)
    ユーザープロパティ MutableMap (ミュータブルマップ) 設定するユーザープロパティのキーと値のペア。
    サポートされている値の型:
    • 番号
    • 文字列
    • 日付
    • URL
    • Null
    表 : 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:文字列、propertyValue:任意)

    現在のユーザーの指定されたプロパティに指定された値を設定します。プロパティは、ユーザーのダッシュボードで追跡するものであれば何でもかまいません。

    現在のユーザーを設定するには、 NowAnalyticsSDK - setUserId(userId:文字列) 関数を呼び出します。

    表 : 30. パラメーター
    名前 タイプ 説明
    propertyName 文字列 設定するユーザープロパティの名前。
    任意 ユーザープロパティを設定する値。
    サポートされている値の型:
    • 番号
    • 文字列
    • 日付
    • URL
    • Null
    表 : 31. 返される内容
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出して、現在のユーザーのプロパティ "Role" を "Admin" に設定する方法を示しています。

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

    NowAnalyticsSDK - startScreen(screenName:文字列)

    関連する画面が UI に最初に表示された時刻をログに記録します。

    通常、このメソッドはアクティビティの onResume() メソッドから呼び出します。

    表 : 32. パラメーター
    名前 タイプ Description (説明)
    名前付き 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")