NowAnalyticsProtocolo de serviço - iOS

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 7 min. de leitura
  • . 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.

    Tabela 1. Requisitos
    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:
    • Verdadeiro: O usuário consentiu que os dados de análise fossem rastreados neste dispositivo.
    • Rastreamento de dados negado pelo usuário.

    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.

    Tabela 2. Parâmetros
    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:
    • Data
    • NSNull
    • NSNumber
    • Strings
    • URL
    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.
    Tabela 3. Retornos
    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.

    Tabela 4. Parâmetros
    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

    Tabela 5. Retornos
    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.

    Tabela 6. Parâmetros
    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.
    Tabela 7. Retornos
    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.

    Tabela 8. Parâmetros
    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:
    • Sucesso: Retorna um valor booliano verdadeiro.
    • Falha: Nulo - pode ocorrer falha se Análise da experiência do usuário os servidores não podem ser acessados, como quando não há conectividade. Se ocorrer falha, tente o método novamente.
    Tabela 9. Retornos
    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.

    Tabela 10. Parâmetros
    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.
    Tabela 11. Retornos
    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.

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    WebView WKWebView Objeto de exibição da Web no qual a interface JavaScript será injetada.
    Tabela 13. Retornos
    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.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    Nomeado propertyName Cadeia de caracteres Nome da propriedade do usuário a ser excluída.
    Tabela 15. Retornos
    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.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    delegado NowAnalyticsServiceDelegate Opcional. Objeto que contém a referência à classe delegada.
    // Register delegate
    private var analyticsDelegate = NowAnalyticsDelegate()  // Keep ref of delegate
    NowAnalytics.sharedAnalyticsService.setDelegate(analyticsDelegate)
    Tabela 17. Retornos
    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.

    Tabela 18. Parâmetros
    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 nulo .

    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

    Tabela 19. Retornos
    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.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    UserProperties Matriz Pares de chave-valor das propriedades do usuário a serem definidas.
    Tipos de valor compatíveis:
    • NSNumber
    • Strings
    • Data
    • URL
    • NSNull

    A chave não pode conter pontos ('.') ou símbolos de dólar (' usd').

    Comprimento máximo:
    • chave: 256 caracteres
    • valor: 1 000 caracteres
    Tabela 21. Retornos
    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.

    Tabela 22. Parâmetros
    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:
    • Data
    • NSNull
    • NSNumber
    • Strings
    • URL

    Tamanho máximo: 1 000 caracteres

    Tabela 23. Retornos
    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.

    Tabela 24. Parâmetros
    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

    Tabela 25. Retornos
    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")