NowAnalyticsProtocolo de serviço - iOS
. NowAnalyticsService o protocolo fornece funções que permitem configurar propriedades de análise, configurações do usuário e eventos para gerenciar a coleta de dados de análise do usuário.
Um objeto em conformidade com este protocolo é retornado por SharedAnalyticsService . Use-o em sua aplicação para executar chamadas de API.
| Nome | Tipo | Descrição |
|---|---|---|
| Rastreando Consent | Booliano | Sinalizador que indica se o usuário consentiu com o acompanhamento de análise do dispositivo associado. Por padrão, os dispositivos são desativados. Definir explicitamente este valor como falso encerrará imediatamente qualquer sessão em andamento e excluirá os dados registrados localmente.Valores válidos:
|
NowAnalyticsService - addEvent(nomeado eventName: Cadeia de caracteres, com propriedades: [Cadeia de caracteres: Qualquer]?)
Adiciona um evento de aplicação, como um usuário que atinge um nível ou tela específico, e habilita a configuração de propriedades personalizadas no evento. Esses eventos aparecem no painel na ordem em que ocorreram.
Esses eventos aparecem no seu painel de análise.
| Nome | Tipo | Descrição |
|---|---|---|
| EventName nomeado | Cadeia de caracteres | Nome do evento a ser adicionado. |
| com propriedades | Matriz | Opcional. Pares de chave-valor de propriedade personalizada para o evento. As chaves de propriedade não podem conter o ponto ('.') ou símbolos de dólar (' usd'). Eles serão aparados. Tipos de valor compatíveis:
Nota: O tamanho total do eventNamea chave e o valor das propriedades não devem exceder 300 bytes (por evento). As cadeias de caracteres são codificadas em UTF-8. Os eventos que excedem este limite são ignorados. |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo a seguir mostra como adicionar um evento "Login bem-sucedido" e um evento "Caso em aberto" com propriedades.
// Add event with properties
NowAnalytics.sharedAnalyticsService.addEvent(
named: "Open Case", with: ["Screen Name": "Case",
"Case Number": "123",
"Case Priority": 5
])
NowAnalyticsService - addScreenAction(nomeado actionName: Cadeia de caracteres)
Adiciona uma ação personalizada à tela atual. Essas ações aparecem no painel do usuário como parte dos dados da sessão e descrevem uma mudança de tela em uma aplicação.
| Nome | Tipo | Descrição |
|---|---|---|
| ActionName nomeado | Cadeia de caracteres | Nome da ação a ser adicionada à tela, como MyButtonClick . Tamanho máximo: 256 UTF-8 bytes |
| Tipo | Descrição |
|---|---|
| Nenhum |
// Add event
NowAnalytics.sharedAnalyticsService.addEvent(named: "Successful Login")
NowAnalyticsService - appendToUserProperty(nomeado propertyName: Cadeia de caracteres, listItem: Cadeia de caracteres)
Anexos o item especificado para a lista de propriedades do usuário especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nomeado propertyName | Cadeia de caracteres | Nome da lista de propriedades do usuário para anexar listItem. |
| ListItem | Cadeia de caracteres | Item da lista a ser anexado à propriedade. |
| Tipo | Descrição |
|---|---|
| Nenhum |
// Append handled case to list
NowAnalytics.sharedAnalyticsService.appendToUserProperty(named: "Case Identifiers", listItem: "TASK-1")
NowAnalyticsService - deleteCurrentUserData(Conclusão: Escape ((_ Success: Bool) -> Void))
Exclui todos os dados de análise associados ao usuário atual. Este método também cancela a definição do usuário ativo atual e desativa este dispositivo do acompanhamento futuro.
Para definir o usuário atual, use SetUserId() método.
| Nome | Tipo | Descrição |
|---|---|---|
| conclusão | ((_ Success: Bool) -> Vazio) | Manipulador de conclusão a ser executado após a exclusão dos dados de análise. Valores de retorno para o manipulador de conclusão:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
// Delete user data
NowAnalytics.sharedAnalyticsService.deleteCurrentUserData(completion: { (success) -> Void in
if success {
// deletion succeeded
} else {
// deletion failed
}
})
NowAnalyticsService - incUserProperty(nomeado propertyName: Cadeia de caracteres, por valor: Int)
Incrementa ou diminui o valor da propriedade numérica especificada pelo valor especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| Nomeado propertyName | Cadeia de caracteres | Nome da propriedade do usuário a ser incrementada. |
| por valor | Inteiro | Valor para incrementar a propriedade. Insira um valor negativo para diminuir o valor. |
| Tipo | Descrição |
|---|---|
| Nenhum |
// Increment the "Cases Handled" count
NowAnalytics.sharedAnalyticsService.incUserProperty(named: "Cases Handled", by: 2)
NowAnalyticsService - installJavascriptInterface(em WebView: WKWebview)
Habilita a chamada dos métodos no SNAnalytics() API de dentro de uma WebView usando JavaScript.
Este método retorna um SNMobileAnalytics Objeto disponível em JavaScript, que expõe os métodos nativos.
| Nome | Tipo | Descrição |
|---|---|---|
| WebView | WKWebView | Objeto de exibição da Web no qual a interface JavaScript será injetada. |
| Tipo | Descrição |
|---|---|
| Objeto | SNMobileAnalytics |
// 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(nomeado propertyName: Cadeia de caracteres)
Exclui a propriedade especificada para o usuário atual.
Para definir o usuário atual, use SetUserId() método.
| Nome | Tipo | Descrição |
|---|---|---|
| Nomeado propertyName | Cadeia de caracteres | Nome da propriedade do usuário a ser excluída. |
| Tipo | Descrição |
|---|---|
| Nenhum |
// Remove unnecessary property
NowAnalytics.sharedAnalyticsService.removeUserProperty(named: "Temp Cases")
NowAnalyticsService - setDelegate(_ delegate: NowAnalyticsServiceDelegate?)
Define uma referência fraca para um delegado receber notificações.
| Nome | Tipo | Descrição |
|---|---|---|
| delegado | NowAnalyticsServiceDelegate | Opcional. Objeto que contém a referência à classe delegada. |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
Este exemplo mostra como definir uma classe de delegado para 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: Cadeia de caracteres?)
Define o ID de usuário da aplicação para o usuário atual. Passe nulo para fazer logout do usuário atual.
| Nome | Tipo | Descrição |
|---|---|---|
| userId | Cadeia de caracteres | Opcional. Identificador de usuário específico da aplicação. Para desconectar o usuário atual, passe O ID do usuário não deve conter marcadores HTML ou dados pessoais, como nome, e-mail ou número de telefone. Tamanho máximo: 256 UTF-8 bytes |
| Tipo | Descrição |
|---|---|
| Nenhum |
// 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: [Cadeia de caracteres: Qualquer])
Define várias propriedades com os valores especificados para o usuário atual. As propriedades podem ser qualquer coisa que você deseja rastrear no painel para um usuário.
Você deve ligar para SetUserId() antes de chamar esta função.
| Nome | Tipo | Descrição |
|---|---|---|
| UserProperties | Matriz | Pares de chave-valor das propriedades do usuário a serem definidas. Tipos de valor compatíveis:
A chave não pode conter pontos ('.') ou símbolos de dólar (' usd'). Comprimento máximo:
|
| Tipo | Descrição |
|---|---|
| Nenhum |
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(nomeado propertyName: Cadeia de caracteres, com valor: Qualquer?)
Define a propriedade especificada com o valor especificado para o usuário atual. Você pode definir qualquer propriedade que faça sentido para sua aplicação.
Você deve ligar para SetUserId() antes de chamar esta função.
| Nome | Tipo | Descrição |
|---|---|---|
| Nomeado propertyName | Cadeia de caracteres | Nome da propriedade do usuário a ser definida. Não pode conter pontos ('.') ou símbolos de dólar (' usd'). Tamanho máximo: 256 caracteres |
| com valor | Qualquer | Valor para definir a propriedade do usuário. Tipos de valor compatíveis:
Tamanho máximo: 1 000 caracteres |
| Tipo | Descrição |
|---|---|
| Nenhum |
// Set the "Role" property of the user to "Admin"
NowAnalytics.sharedAnalyticsService.setUserProperty(named: "Role", with: "Admin")
NowAnalyticsService - startScreen(nomeadoscreenname: Cadeia de caracteres)
Registra a hora em que a tela associada aparece pela primeira vez na IU.
Chame este método após ViewDidAppear(_:) método.
| Nome | Tipo | Descrição |
|---|---|---|
| Nome de tela nomeado | Cadeia de caracteres | Nome da tela para registrar a hora de início, como WelcomeScreen . Pode ser qualquer coisa que você queira definir como uma tela e exibição/agregação em um painel de análise. Tamanho máximo: 256 UTF-8 bytes |
| Tipo | Descrição |
|---|---|
| Nenhum |
// Mark the appearance starting time of a screen
// This method should be usually called from the viewDidAppear
NowAnalytics.sharedAnalyticsService.startScreen(named: "WelcomeScreen")