Protocole NowAnalyticsService : iOS

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 7 minutes de lecture
  • Le protocole NowAnalyticsService fournit des fonctions qui vous permettent de configurer les propriétés d’analyse, les paramètres utilisateur et les événements pour gérer la collecte de données d’analyse utilisateur.

    Un objet conforme à ce protocole est renvoyé par sharedAnalyticsService. Utilisez-la dans votre application pour effectuer des appels d’API.

    Tableau 1. Besoins
    Nom Type Description
    Consentement au suivi Booléen Marqueur indiquant si l’utilisateur a consenti au suivi des analyses pour l’appareil associé. Par défaut, les appareils sont désabonnés. Définir explicitement cette valeur sur faux mettra immédiatement fin à toute session en cours et supprimera les données enregistrées localement.
    Valeurs valides :
    • vrai : l’utilisateur a consenti à ce que les données d’analyse soient suivies sur cet appareil.
    • faux : l’utilisateur a refusé le suivi des données.

    NowAnalyticsService : addEvent (eventName nommé : chaîne, avec les propriétés : [string : any] ?)

    Ajoute un événement d’application, tel qu’un utilisateur atteignant un niveau ou un écran spécifique, et active la définition de propriétés personnalisées sur l’événement. Ces événements apparaissent sur le tableau de bord dans l’ordre dans lequel ils se sont produits.

    Ces événements s’affichent dans votre tableau de bord d’analyse.

    Tableau 2. Paramètres
    Nom Type Description
    eventName nommé Chaîne Nom de l’événement à ajouter.
    avec des propriétés Tableau Facultatif. Paires clé-valeur de propriété personnalisée pour l’événement. Les clés de propriété ne peuvent pas contenir les signes « point (« . ») ni dollar (« $ »). Ils seront coupés.
    Types de valeur pris en charge :
    • Date
    • NSNull
    • NSNumber
    • Chaînes
    • URL
    Remarque :
    La taille totale des propriétés , clé eventNameet valeur ne doit pas dépasser 300 octets (par événement). Les chaînes sont codées en UTF-8. Les événements qui dépassent cette limite sont ignorés.
    Tableau 3. Renvoie
    Type Description
    Néant

    L’exemple suivant montre comment ajouter un événement « Connexion réussie » et un événement « Ticket ouvert » avec des propriétés.

    // Add event with properties
    NowAnalytics.sharedAnalyticsService.addEvent(
      named: "Open Case", with: ["Screen Name": "Case",
                                 "Case Number": "123",
                                 "Case Priority": 5
    ])

    NowAnalyticsService : addScreenAction(named actionName : chaîne)

    Ajoute une action personnalisée à l’écran actuel. Ces actions apparaissent dans le tableau de bord de l’utilisateur dans le cadre des données de session et décrivent un changement d’écran dans une application.

    Tableau 4. Paramètres
    Nom Type Description
    actionName nommé Chaîne Nom de l’action à ajouter à l’écran, tel que MyButtonClick.

    Longueur maximale : 256 UTF-8 octets

    Tableau 5. Renvoie
    Type Description
    Néant

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

    NowAnalyticsService : appendToUserProperty(named propertyName : chaîne, listItem : chaîne)

    Ajoute l’élément spécifié à la liste des propriétés de l’utilisateur spécifié.

    Tableau 6. Paramètres
    Nom Type Description
    propertyName nommé Chaîne Nom de la liste de propriétés de l’utilisateur à laquelle ajouter la propriété.listItem
    élément de liste Chaîne Élément de liste à ajouter à la propriété.
    Tableau 7. Renvoie
    Type Description
    Néant

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

    NowAnalyticsService : deleteCurrentUserData(complétion : @escaping ((_ réussite : Booléen) -> Vide))

    Supprime toutes les données d’analyse associées à l’utilisateur actuel. Cette méthode annule également la configuration de l’utilisateur actif actuel et désactive le suivi futur de cet appareil.

    Pour définir l’utilisateur actuel, utilisez la méthode setUserId( ).

    Tableau 8. Paramètres
    Nom Type Description
    achèvement @escaping ((_ réussite : Bool) -> Null) Gestionnaire d’achèvement à exécuter après la suppression des données d’analyse.
    Valeurs renvoyées pour le gestionnaire de complétion :
    • Réussite : renvoie la valeur booléenne vrai.
    • Échec : nul : une défaillance peut se produire si les serveurs Appsee ne peuvent pas être atteints, comme lorsqu’il n’y a pas de connectivité. En cas d’échec, réessayez la méthode.
    Tableau 9. Renvoie
    Type Description
    Néant

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

    NowAnalyticsService : incUserProperty(named propertyName : chaîne, par valeur : Int)

    Incrémente ou décrémente la valeur de la propriété numérique spécifiée de la valeur spécifiée.

    Tableau 10. Paramètres
    Nom Type Description
    propertyName nommé Chaîne Nom de la propriété utilisateur à incrémenter.
    par valeur Entier Valeur d’incrémentation de la propriété. Entrez une valeur négative pour décrémenter la valeur.
    Tableau 11. Renvoie
    Type Description
    Néant

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

    NowAnalyticsService : installJavascriptInterface(into webView : WKWebView)

    Active l’appel des méthodes de l’API SNAnalytics() à partir d’une WebView à l’aide de JavaScript.

    Cette méthode renvoie un objet SNMobileAnalytics disponible en JavaScript, qui expose les méthodes natives.

    Tableau 12. Paramètres
    Nom Type Description
    webView Vue WKWeb Objet d’affichage web dans lequel injecter l’interface JavaScript.
    Tableau 13. Renvoie
    Type Description
    Objet Analytique 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(named propertyName : chaîne)

    Supprime la propriété spécifiée pour l’utilisateur actuel.

    Pour définir l’utilisateur actuel, utilisez la méthode setUserId( ).

    Tableau 14. Paramètres
    Nom Type Description
    propertyName nommé Chaîne Nom de la propriété utilisateur à supprimer.
    Tableau 15. Renvoie
    Type Description
    Néant

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

    NowAnalyticsService : setDelegate(_ delegate : NowAnalyticsServiceDelegate ?)

    Définit une référence faible pour qu’un délégué reçoive des notifications.

    Tableau 16. Paramètres
    Nom Type Description
    délégué NowAnalyticsServiceDelegate Facultatif. Objet contenant la référence à la classe de délégué.
    // Register delegate
    private var analyticsDelegate = NowAnalyticsDelegate()  // Keep ref of delegate
    NowAnalytics.sharedAnalyticsService.setDelegate(analyticsDelegate)
    Tableau 17. Renvoie
    Type Description
    Néant

    Cet exemple montre comment définir une classe de délégué pour 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 : chaîne ?)

    Définit l’ID utilisateur de l’application pour l’utilisateur actuel. Ne transmettez rien pour déconnecter l’utilisateur actuel.

    Tableau 18. Paramètres
    Nom Type Description
    userId Chaîne Facultatif. Identificateur d’utilisateur spécifique à l’application.

    Pour déconnecter l’utilisateur actuel, ne transmettez rien.

    L’ID utilisateur ne doit pas contenir de balises HTML ou de données personnelles telles que le nom, l’adresse e-mail ou le numéro de téléphone.

    Longueur maximale : 256 UTF-8 octets

    Tableau 19. Renvoie
    Type Description
    Néant

    // 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 : [string : any])

    Définit plusieurs propriétés avec les valeurs spécifiées pour l’utilisateur actuel. Les propriétés peuvent être tout ce que vous souhaitez suivre sur le tableau de bord pour un utilisateur.

    Vous devez appeler la fonction setUserId() avant d’appeler cette fonction.

    Tableau 20. Paramètres
    Nom Type Description
    Propriétés utilisateur Tableau Paires clé-valeur des propriétés utilisateur à définir.
    Types de valeur pris en charge :
    • NSNumber
    • Chaînes
    • Date
    • URL
    • NSNull

    La clé ne peut pas contenir de points (« . ») ou de signes dollar (« $ »).

    Longueur maximale :
    • Clé : 256 caractères
    • Valeur : 1 000 caractères
    Tableau 21. Renvoie
    Type Description
    Néant

    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 : chaîne, avec valeur : Quelconque ?)

    Définit la propriété spécifiée avec la valeur spécifiée pour l’utilisateur actuel. Vous pouvez définir n’importe quelle propriété pertinente pour votre application.

    Vous devez appeler la fonction setUserId() avant d’appeler cette fonction.

    Tableau 22. Paramètres
    Nom Type Description
    propertyName nommé Chaîne Nom de la propriété utilisateur à définir. Ne peut pas contenir de signes de points (« . ») ou de dollars (« $ »).

    Longueur maximale : 256 caractères

    avec valeur N'importe lequel Valeur sur laquelle définir la propriété utilisateur.
    Types de valeur pris en charge :
    • Date
    • NSNull
    • NSNumber
    • Chaînes
    • URL

    Longueur maximale : 1 000 caractères

    Tableau 23. Renvoie
    Type Description
    Néant

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

    NowAnalyticsService : startScreen(nom screenName : chaîne)

    Enregistre l’heure à laquelle l’écran associé apparaît pour la première fois dans l’interface utilisateur.

    Appelez cette méthode après la méthode viewDidAppear(_ :).

    Tableau 24. Paramètres
    Nom Type Description
    nom d’écran nommé Chaîne Nom de l’écran dont l’heure de début est enregistrée, par exemple WelcomeScreen . Il peut s’agir de tout ce que vous souhaitez définir comme écran et afficher/agrégat sur un tableau de bord d’analyse.

    Longueur maximale : 256 UTF-8 octets

    Tableau 25. Renvoie
    Type Description
    Néant

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