---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Protocolo NowAnalyticsService - iOS

# Protocolo NowAnalyticsService - iOS {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 7 min. de leitura

O protocolo NowAnalyticsService 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.  
{#NowAnalyticsServiceiOSProtocol__table_vx2_klw_5pb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| acompanhamentoConsentimento | 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 recusados. 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 com o acompanhamento dos dados de análise neste dispositivo. * falso: acompanhamento de dados negado pelo usuário. {#NowAnalyticsServiceiOSProtocol__ul_flc_ngx_5pb} |
[Tabela 1. Requisitos]

{#NowAnalyticsServiceiOSProtocol__table_vx2_klw_5pb}

## NowAnalyticsService - addEvent(named eventName: cadeia de caracteres, com propriedades: \[cadeia de caracteres: qualquer\]?) {#ariaid-title2}

Adiciona um evento de aplicação, como um usuário que atinge um nível ou tela específica, e permite a configuração de propriedades personalizadas no evento. Esses eventos aparecem no painel na ordem em que ocorreram.
Esses eventos aparecem no painel de análise.
{#NAnalyServiOs-addEvent_S_A__table_hwl_5vy_spb__entry__3}

| 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 os sinais de ponto ('.') ou cifrão ('$'). Eles serão cortados. Tipos de valor compatíveis: * Data * NSNUlo * NSNumber * Strings * URL {#NAnalyServiOs-addEvent_S_A__ul_g41_kxy_spb} Nota: O tamanho total de eventName, chave de propriedades e valor não deve exceder 300 bytes (por evento). As cadeias de caracteres são codificadas em UTF-8. Eventos que excedem esse limite são ignorados. |
[Tabela 2. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 3. Retorna]

{#NAnalyServiOs-addEvent_S_A__table_iwl_5vy_spb}  
O exemplo a seguir mostra como adicionar um evento "Login bem-sucedido" e um evento "Abrir caso" com propriedades.

    // Add event with properties
    NowAnalytics.sharedAnalyticsService.addEvent(
      named: "Open Case", with: ["Screen Name": "Case",
                                 "Case Number": "123",
                                 "Case Priority": 5
    ])

## NowAnalyticsService - addScreenAction(named actionName: cadeia de caracteres) {#ariaid-title3}

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

| Nome | Tipo | Descrição |
|-|-|-|
| ação nomeadaNome | Cadeia de caracteres | Nome da ação a ser adicionada à tela, como <kbd class="ph userinput">MyButtonClick</kbd>. Tamanho máximo: 256 UTF-8 bytes |
[Tabela 4. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 5. Retorna]

{#NAnalyServiOS-addScreenAction_S__table_mxc_hzy_spb}  
<br />

    // Add event
    NowAnalytics.sharedAnalyticsService.addEvent(named: "Successful Login")

## NowAnalyticsService - appendToUserProperty(named propertiesName: cadeia de caracteres, listItem: cadeia de caracteres) {#ariaid-title4}

Anexa o item especificado à lista de propriedades do usuário especificada.
{#NAnalyServiOS-appendToUserProp_S_S__table_uhf_jd1_tpb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nomeada propriedadeNome | Cadeia de caracteres | Nome da lista de propriedades do usuário à qual o listItem será anexado. |
| item da lista | Cadeia de caracteres | Item de lista a ser anexado à propriedade. |
[Tabela 6. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 7. Retorna]

{#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(conclusão: @escaping ((_ sucesso: Bool) -\> Anular)) {#ariaid-title5}

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 o método [setUserId()](https://servicenow-prod.fluidtopics.net/XIZ7Agmebld5oJZtx4gr3g#NAnalyServiOS-setUserId_S "Define o ID do usuário da aplicação para o usuário atual. Passe nil para fazer logout do usuário atual.").
{#NAnalyServiOS-deleteCurrentUserData_O__table_akt_yry_spb__entry__3}{#NAnalyServiOS-deleteCurrentUserData_O__mobilesdkiOS-completion_data_dataerror-row}

| Nome | Tipo | Descrição |
|-|-|-|
| conclusão | @escaping ((_ sucesso: Bool) -\> Void) | Manipulador de conclusão a ser executado depois que os dados de análise forem excluídos. Valores de retorno para o manipulador de conclusão: * Sucesso: retorna um valor booliano verdadeiro. * Falha: anular - A falha pode ocorrer se os servidores do Appsee não puderem ser acessados, como quando não há conectividade. Se ocorrer uma falha, tente o método novamente. {#NAnalyServiOS-deleteCurrentUserData_O__ul_uzx_thj_ppb} |
[Tabela 8. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 9. Retorna]

{#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 propertiesName: cadeia de caracteres, por valor: Int) {#ariaid-title6}

Incrementa ou decrementa o valor da propriedade numérica especificada pelo valor especificado.
{#NAnalyServiOS-incUserProperty_S_I__table_fkc_chz_spb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nomeada propriedadeNome | 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 10. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 11. Retorna]

{#NAnalyServiOS-incUserProperty_S_I__table_gkc_chz_spb}  
<br />

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

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

Habilita a chamada dos métodos na API SNAnalytics() de dentro de um WebView usando JavaScript.
Este método retorna um objeto [SNMobileAnalytics](https://servicenow-prod.fluidtopics.net/1LlNdDhn8iY2GX~Nez6xWg#SNMobileAnalytics "A API SNMobileAnalytics fornece métodos que você pode chamar em um WebView usando JavaScript. Esses métodos permitem que você envie dados de análise personalizados (eventos, páginas e propriedades do usuário) para o painel Análise da experiência do usuário para Portal de serviços.") que está disponível em JavaScript, o que expõe os métodos nativos.
{#NAnalyServiOS-installJSInterface_O__table_pqj_dh1_tpb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| WebView | WKWebView | Objeto de exibição da Web no qual a interface JavaScript será injetada. |
[Tabela 12. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Objeto | [SNMobileAnalytics](https://servicenow-prod.fluidtopics.net/1LlNdDhn8iY2GX~Nez6xWg#SNMobileAnalytics "A API SNMobileAnalytics fornece métodos que você pode chamar em um WebView usando JavaScript. Esses métodos permitem que você envie dados de análise personalizados (eventos, páginas e propriedades do usuário) para o painel Análise da experiência do usuário para Portal de serviços.") |
[Tabela 13. Retorna]

{#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 propertiesName: cadeia de caracteres) {#ariaid-title8}

Exclui a propriedade especificada para o usuário atual.
Para definir o usuário atual, use o método [setUserId()](https://servicenow-prod.fluidtopics.net/XIZ7Agmebld5oJZtx4gr3g#NAnalyServiOS-setUserId_S "Define o ID do usuário da aplicação para o usuário atual. Passe nil para fazer logout do usuário atual.").
{#NAnalyServiOS-removeUserProp_S__table_jdm_lf1_tpb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nomeada propriedadeNome | Cadeia de caracteres | Nome da propriedade do usuário a ser excluída. |
[Tabela 14. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 15. Retorna]

{#NAnalyServiOS-removeUserProp_S__table_kdm_lf1_tpb}  
<br />

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

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

Define uma referência fraca para um delegado receber notificações.
{#NAnalyServiOS-setDelegate_O__table_d42_j31_tpb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| delegado | [NowAnalyticsServiceDelegate](https://servicenow-prod.fluidtopics.net/Vj3r7VG2CawCp25eSFMgfg#NowAnalyticsServiceDeliOSProtocol "O protocolo NowAnalyticsServiceDelegate fornece funções de retorno de chamada que fornecem informações sobre o início e o término de uma sessão de usuário e detecção de mudança de tela.") | Opcional. Objeto que contém a referência à classe de delegado. // Register delegate private var analyticsDelegate = NowAnalyticsDelegate()  // Keep ref of delegate NowAnalytics.sharedAnalyticsService.setDelegate(analyticsDelegate) |
[Tabela 16. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 17. Retorna]

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

Define o ID do usuário da aplicação para o usuário atual. Passe nil para fazer logout do usuário atual.
{#NAnalyServiOS-setUserId_S__table_r2r_x1z_spb__entry__3}

| 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 `nil`. O ID do usuário não deve conter marcadores HTML ou quaisquer dados pessoais, como nome, e-mail ou número de telefone. Tamanho máximo: 256 UTF-8 bytes |
[Tabela 18. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 19. Retorna]

{#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: \[Cadeia de caracteres: Qualquer\]) {#ariaid-title11}

Define várias propriedades com os valores especificados para o usuário atual. As propriedades podem ser qualquer coisa que você queira rastrear no painel de um usuário.
Você deve chamar a função [setUserId()](https://servicenow-prod.fluidtopics.net/XIZ7Agmebld5oJZtx4gr3g#NAnalyServiOS-setUserId_S "Define o ID do usuário da aplicação para o usuário atual. Passe nil para fazer logout do usuário atual.") antes de chamar esta função.
{#NAnalyServiOS-setUserProperties_A__table_o5w_vfz_spb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| userProperties | Matriz | Pares de chave-valor das propriedades do usuário a serem definidos. Tipos de valor compatíveis: * NSNumber * Strings * Data * URL * NSNUlo A chave não pode conter pontos ('.') ou cifrões ('$'). Tamanho máximo: * chave: 256 caracteres * valor: 1.000 caracteres {#NAnalyServiOS-setUserProperties_A__ul_vqr_1rc_zpb} |
[Tabela 20. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 21. Retorna]

{#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 propertiesName: cadeia de caracteres, com valor: qualquer?) {#ariaid-title12}

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 chamar a função [setUserId()](https://servicenow-prod.fluidtopics.net/XIZ7Agmebld5oJZtx4gr3g#NAnalyServiOS-setUserId_S "Define o ID do usuário da aplicação para o usuário atual. Passe nil para fazer logout do usuário atual.") antes de chamar esta função.
{#NAnalyServiOS-setUserProperty_S_A__table_idn_sdz_spb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nomeada propriedadeNome | Cadeia de caracteres | Nome da propriedade do usuário a ser definida. Não pode conter pontos ('.') ou cifrões ('$'). Tamanho máximo: 256 caracteres |
| com valor | Qualquer | Valor para definir a propriedade do usuário. Tipos de valor compatíveis: * Data * NSNUlo * NSNumber * Strings * URL Tamanho máximo: 1.000 caracteres |
[Tabela 22. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 23. Retorna]

{#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: cadeia de caracteres) {#ariaid-title13}

Registra em log a hora em que a tela associada aparece pela primeira vez na IU.
Chame este método após o método viewDidAppear(_:).
{#NAnalyServiOS-startScreen_S__table_vw5_fyy_spb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| screenName chamado | Cadeia de caracteres | Nome da tela para registrar a hora de início, como <kbd class="ph userinput">TelaDeBoas </kbd>-vindas . Pode ser qualquer coisa que você queira definir como uma tela e exibir/agregar em um painel de análise. Tamanho máximo: 256 UTF-8 bytes |
[Tabela 24. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 25. Retorna]

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


