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 des 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 analytique pour l’appareil associé. Par défaut, les appareils sont désactivés. Définir explicitement cette valeur sur faux met immédiatement fin à toute session en cours et supprime les données enregistrées localement.Valeurs valides :
|
NowAnalyticsService : addEvent(named eventName : chaîne, avec les propriétés : [chaîne : toute] ?)
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 apparaissent 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 du point (« . ») ou du dollar (« $ »). Ils seront coupés. Types de valeur pris en charge :
Remarque : La taille totale de la clé et de la eventNamevaleur des propriétés , ne doit pas dépasser 300 octets (par événement). Les chaînes sont encodées en UTF-8. Les événements qui dépassent cette limite sont ignorés. |
| 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.
| 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 |
|---|---|
| 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é.
| Nom | Type | Description |
|---|---|---|
| nom de propriété nommé | Chaîne | Nom de la liste de propriétés de l’utilisateur à laquelle ajouter la listItem liste. |
| élément de liste | Chaîne | Élément de liste à ajouter à la propriété. |
| 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) -> Void))
Supprime toutes les données d’analyse associées à l’utilisateur actuel. Cette méthode annule également 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éen) -> nul) | 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 |
|---|---|
| Néant |
// Delete user data
NowAnalytics.sharedAnalyticsService.deleteCurrentUserData(completion: { (success) -> Void in
if success {
// deletion succeeded
} else {
// deletion failed
}
})
NowAnalyticsService : incUserProperty(nommé 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 |
|---|---|---|
| nom de propriété 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 la décrémenter. |
| 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 dans 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 de webview 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 |
|---|---|---|
| nom de propriété nommé | Chaîne | Nom de la propriété utilisateur à supprimer. |
| 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.
| Nom | Type | Description |
|---|---|---|
| délégué | NowAnalyticsServiceDelegate | Facultatif. Objet contenant la référence à la classe de délégué. |
| 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.
| 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 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 |
| 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.
| Nom | Type | Description |
|---|---|---|
| userProperties | 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 |
|---|---|
| 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(nommé propertyName : chaîne, avec la 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 |
|---|---|---|
| nom de propriété 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é utilisateur. Types de valeur pris en charge :
Longueur maximale : 1 000 caractères |
| Type | Description |
|---|---|
| Néant |
// Set the "Role" property of the user to "Admin"
NowAnalytics.sharedAnalyticsService.setUserProperty(named: "Role", with: "Admin")
NowAnalyticsService : startScreen(nommé screenName : chaîne)
Consigne l’heure à laquelle l’écran associé apparaît pour la première fois dans l’interface utilisateur.
Appelez cette méthode d’après la méthode viewDidAppear(_ :).
| Nom | Type | Description |
|---|---|---|
| nom d’écran | Chaîne | Nom de l’écran dont l’heure de début doit être 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 |
|---|---|
| Néant |
// Mark the appearance starting time of a screen
// This method should be usually called from the viewDidAppear
NowAnalytics.sharedAnalyticsService.startScreen(named: "WelcomeScreen")