---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Protocole NowAnalyticsService : iOS

# Protocole NowAnalyticsService : iOS {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 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 la gestion de la collecte de données d'analyse utilisateur.

Un objet conforme à ce protocole est renvoyé par `sharedAnalyticsService`. Utilisez-le dans votre application pour effectuer des appels d'API.  
{#NowAnalyticsServiceiOSProtocol__table_vx2_klw_5pb__entry__3}

| Nom | Type | Description |
|-|-|-|
| trackingConsent | Booléen | Marqueur indiquant si l'utilisateur a consenti au suivi de l'analyse pour l'appareil associé. Par défaut, les appareils sont désabonnés. La définition explicite de cette valeur sur `faux` termine immédiatement toute session en cours et supprime les données enregistrées localement. Valeurs valides : * true : l'utilisateur a consenti au suivi des données d'analyse sur cet appareil. * false : l'utilisateur a refusé le suivi des données. {#NowAnalyticsServiceiOSProtocol__ul_flc_ngx_5pb} |
[Tableau 1. Besoins]

{#NowAnalyticsServiceiOSProtocol__table_vx2_klw_5pb}

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

Ajoute un événement d'application, par exemple lorsqu'un utilisateur atteint 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.
{#NAnalyServiOs-addEvent_S_A__table_hwl_5vy_spb__entry__3}

| 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ées pour l'événement. Les clés de propriété ne doivent pas contenir de signes de point (\<\< . \>\>) ou de dollar (\<\< $ \>\>). Ils seront coupés. Types de valeurs pris en charge : * Date * NSNull * NSNumber (en anglais seulement) * Chaînes * URL {#NAnalyServiOs-addEvent_S_A__ul_g41_kxy_spb} Remarque : La taille totale de la clé et de la valeur , eventNamepropriétés 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 2. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 3. Renvoie]

{#NAnalyServiOs-addEvent_S_A__table_iwl_5vy_spb}  
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 (actionName nommée : chaîne) {#ariaid-title3}

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.
{#NAnalyServiOS-addScreenAction_S__table_lxc_hzy_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| actionName nommé | Chaîne | Nom de l'action à ajouter à l'écran, par exemple <kbd class="ph userinput">MyButtonClick</kbd>. Longueur maximale : 256 UTF-8 octets |
[Tableau 4. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 5. Renvoie]

{#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}

Ajoute l'élément spécifié à la liste de propriétés de l'utilisateur spécifié.
{#NAnalyServiOS-appendToUserProp_S_S__table_uhf_jd1_tpb__entry__3}

| Nom | Type | Description |
|-|-|-|
| propertyName nommé | Chaîne | Nom de la liste de propriétés de l'utilisateur à laquelle ajouter l'élément listItem . |
| listItem (en anglais seulement) | Chaîne | Élément de liste à ajouter à la propriété. |
[Tableau 6. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 7. Renvoie]

{#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(complétion : @escaping ((_ success : Bool) -\> Void)) {#ariaid-title5}

Supprime toutes les données d'analyse associées à l'utilisateur actuel. Cette méthode annule également l'utilisateur actif actuel et désinscrit cet appareil du suivi futur.
Pour définir l'utilisateur actuel, utilisez la méthode [setUserId().](https://servicenow-prod.fluidtopics.net/B5aqFJ5cTtiHgPWJOhzwZw#NAnalyServiOS-setUserId_S "Définit l’ID d’utilisateur de l’application pour l’utilisateur actuel. Transmettez nil pour déconnecter l’utilisateur actuel.")
{#NAnalyServiOS-deleteCurrentUserData_O__table_akt_yry_spb__entry__3}{#NAnalyServiOS-deleteCurrentUserData_O__mobilesdkiOS-completion_data_dataerror-row}

| Nom | Type | Description |
|-|-|-|
| achèvement | @escaping ((_ success : Bool) -\> Void) | Gestionnaire de complétion à exécuter après la suppression des données d'analyse. Valeurs de retour pour le gestionnaire de complétion : * Réussite : renvoie une valeur booléenne vrai. * Échec : Nul - Une défaillance peut se produire si les serveurs Appsee ne sont pas accessibles, par exemple lorsqu'il n'y a pas de connectivité. En cas d'échec, réessayez la méthode. {#NAnalyServiOS-deleteCurrentUserData_O__ul_uzx_thj_ppb} |
[Tableau 8. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 9. Renvoie]

{#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(named propertyName : chaîne, par valeur : Int) {#ariaid-title6}

Incrémente ou diminue la valeur de la propriété numérique spécifiée de la valeur spécifiée.
{#NAnalyServiOS-incUserProperty_S_I__table_fkc_chz_spb__entry__3}

| 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 10. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 11. Renvoie]

{#NAnalyServiOS-incUserProperty_S_I__table_gkc_chz_spb}  
<br />

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

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

Active l'appel des méthodes dans l'API SNAnalytics() à partir d'un WebView à l'aide de JavaScript.
Cette méthode retourne un objet [SNMobileAnalytics](https://servicenow-prod.fluidtopics.net/rBzgW_Q8LNb9o4qIIZbzzA#SNMobileAnalytics "L’API SNMobileAnalytics fournit des méthodes que vous pouvez appeler dans un WebView à l’aide de JavaScript. Ces méthodes vous permettent d’envoyer des données d’analyse personnalisées (événements, pages et propriétés utilisateur) au tableau de bord Analyse de l’expérience utilisateur pour le portail de services.") disponible en JavaScript, qui expose les méthodes natives.
{#NAnalyServiOS-installJSInterface_O__table_pqj_dh1_tpb__entry__3}

| Nom | Type | Description |
|-|-|-|
| webView | WKWebView (en anglais seulement) | Objet de webview dans lequel injecter l'interface JavaScript. |
[Tableau 12. Paramètres]

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

| Type | Description |
|-|-|
| Objet | [SNMobileAnalytics (en anglais seulement)](https://servicenow-prod.fluidtopics.net/rBzgW_Q8LNb9o4qIIZbzzA#SNMobileAnalytics "L’API SNMobileAnalytics fournit des méthodes que vous pouvez appeler dans un WebView à l’aide de JavaScript. Ces méthodes vous permettent d’envoyer des données d’analyse personnalisées (événements, pages et propriétés utilisateur) au tableau de bord Analyse de l’expérience utilisateur pour le portail de services.") |
[Tableau 13. Renvoie]

{#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}

Supprime la propriété spécifiée pour l'utilisateur actuel.
Pour définir l'utilisateur actuel, utilisez la méthode [setUserId().](https://servicenow-prod.fluidtopics.net/B5aqFJ5cTtiHgPWJOhzwZw#NAnalyServiOS-setUserId_S "Définit l’ID d’utilisateur de l’application pour l’utilisateur actuel. Transmettez nil pour déconnecter l’utilisateur actuel.")
{#NAnalyServiOS-removeUserProp_S__table_jdm_lf1_tpb__entry__3}

| Nom | Type | Description |
|-|-|-|
| propertyName nommé | Chaîne | Nom de la propriété de l'utilisateur à supprimer. |
[Tableau 14. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 15. Renvoie]

{#NAnalyServiOS-removeUserProp_S__table_kdm_lf1_tpb}  
<br />

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

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

Définit une référence faible pour qu'un délégué reçoive des notifications.
{#NAnalyServiOS-setDelegate_O__table_d42_j31_tpb__entry__3}

| Nom | Type | Description |
|-|-|-|
| délégué | [NowAnalyticsServiceDelegate](https://servicenow-prod.fluidtopics.net/gQde07EAtjmPfqkYwS~3aw#NowAnalyticsServiceDeliOSProtocol "Le protocole NowAnalyticsServiceDelegate fournit des fonctions de rappel qui fournissent des informations sur le démarrage et la fin d’une session utilisateur et la détection des changements d’écran.") | Facultatif. Objet qui contient la référence à la classe delegate. // Register delegate private var analyticsDelegate = NowAnalyticsDelegate()  // Keep ref of delegate NowAnalytics.sharedAnalyticsService.setDelegate(analyticsDelegate) |
[Tableau 16. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 17. Renvoie]

{#NAnalyServiOS-setDelegate_O__table_e42_j31_tpb}  
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 ?) {#ariaid-title10}

Définit l'ID d'utilisateur de l'application pour l'utilisateur actuel. Transmettez nil pour déconnecter l'utilisateur actuel.
{#NAnalyServiOS-setUserId_S__table_r2r_x1z_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| userId | Chaîne | Facultatif. Identificateur d'utilisateur spécifique à l'application. Pour déconnecter l'utilisateur actuel, transmettez `nil`. L'ID utilisateur ne doit pas contenir de balises HTML ni 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 18. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 19. Renvoie]

{#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 : \[String : Any\]) {#ariaid-title11}

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](https://servicenow-prod.fluidtopics.net/B5aqFJ5cTtiHgPWJOhzwZw#NAnalyServiOS-setUserId_S "Définit l’ID d’utilisateur de l’application pour l’utilisateur actuel. Transmettez nil pour déconnecter l’utilisateur actuel.") cette fonction.
{#NAnalyServiOS-setUserProperties_A__table_o5w_vfz_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| UserProperties (en anglais seulement) | Tableau | Paires clé-valeur des propriétés utilisateur à définir. Types de valeurs pris en charge : * NSNumber (en anglais seulement) * Chaînes * Date * URL * NSNull La clé ne doit pas contenir de points (\<\< . \>\>) ou de signes dollar (\<\< $ \>\>). Longueur maximale : * clé : 256 caractères * Valeur : 1 000 caractères {#NAnalyServiOS-setUserProperties_A__ul_vqr_1rc_zpb} |
[Tableau 20. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 21. Renvoie]

{#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 : chaîne, avec la valeur : Quelconque ?) {#ariaid-title12}

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é qui a du sens pour votre application.
Vous devez appeler la fonction [setUserId() avant d'appeler](https://servicenow-prod.fluidtopics.net/B5aqFJ5cTtiHgPWJOhzwZw#NAnalyServiOS-setUserId_S "Définit l’ID d’utilisateur de l’application pour l’utilisateur actuel. Transmettez nil pour déconnecter l’utilisateur actuel.") cette fonction.
{#NAnalyServiOS-setUserProperty_S_A__table_idn_sdz_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| propertyName nommé | Chaîne | Nom de la propriété utilisateur à définir. Ne peut pas contenir de points (\<\< . \>\>) ou de signes dollar (\<\< $ \>\>). Longueur maximale : 256 caractères |
| avec la valeur | N'importe lequel | Valeur sur laquelle définir la propriété d'utilisateur. Types de valeurs pris en charge : * Date * NSNull * NSNumber (en anglais seulement) * Chaînes * URL Longueur maximale : 1 000 caractères |
[Tableau 22. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 23. Renvoie]

{#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}

Consigne 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(_ :).
{#NAnalyServiOS-startScreen_S__table_vw5_fyy_spb__entry__3}

| Nom | Type | Description |
|-|-|-|
| screenName nommé | Chaîne | Nom de l'écran pour lequel consigner l'heure de début, par exemple <kbd class="ph userinput">WelcomeScreen </kbd>. Il peut s'agir de tout ce que vous souhaitez définir comme un écran et afficher/regrouper sur un tableau de bord d'analyse. Longueur maximale : 256 UTF-8 octets |
[Tableau 24. Paramètres]

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

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 25. Renvoie]

{#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")


