Protocole NowAnalyticsService : iOS
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.
| 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 :
|
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.
| 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 :
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. |
| Type | Description |
|---|---|
| Aucun |
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.
| Nom | Type | Description |
|---|---|---|
| actionName nommé | Chaîne | Nom de l’action à ajouter à l’écran, tel que MyButtonClick. Longueur maximale : 256 UTF-8 octets |
| Type | Description |
|---|---|
| Aucun |
// 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é.
| 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é. |
| Type | Description |
|---|---|
| Aucun |
// 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( ).
| 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 :
|
| Type | Description |
|---|---|
| Aucun |
// 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.
| 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. |
| Type | Description |
|---|---|
| Aucun |
// 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.
| Nom | Type | Description |
|---|---|---|
| webView | Vue WKWeb | Objet d’affichage web dans lequel injecter l’interface JavaScript. |
| 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( ).
| Nom | Type | Description |
|---|---|---|
| propertyName nommé | Chaîne | Nom de la propriété utilisateur à supprimer. |
| Type | Description |
|---|---|
| Aucun |
// 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.
| Nom | Type | Description |
|---|---|---|
| délégué | NowAnalyticsServiceDelegate | Facultatif. Objet contenant la référence à la classe de délégué. |
| Type | Description |
|---|---|
| Aucun |
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.
| Nom | Type | Description |
|---|---|---|
| userId | Chaîne | Facultatif. Identificateur d’utilisateur spécifique à l’application. Pour déconnecter l’utilisateur actuel, ne transmettez 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 |
| Type | Description |
|---|---|
| Aucun |
// 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.
| Nom | Type | Description |
|---|---|---|
| Propriétés utilisateur | Tableau | Paires clé-valeur des propriétés utilisateur à définir. Types de valeur pris en charge :
La clé ne peut pas contenir de points (« . ») ou de signes dollar (« $ »). Longueur maximale :
|
| Type | Description |
|---|---|
| Aucun |
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.
| 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 :
Longueur maximale : 1 000 caractères |
| Type | Description |
|---|---|
| Aucun |
// 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(_ :).
| 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 |
| Type | Description |
|---|---|
| Aucun |
// Mark the appearance starting time of a screen
// This method should be usually called from the viewDidAppear
NowAnalytics.sharedAnalyticsService.startScreen(named: "WelcomeScreen")