Coletar dados de perfil
Saiba como coletar dados de perfil em um aplicativo móvel.
Você pode usar a extensão Profile para armazenar atributos sobre seu usuário no cliente. Essas informações podem ser usadas posteriormente para direcionar e personalizar mensagens em cenários online ou offline, sem precisar se conectar a um servidor para obter o desempenho ideal.
A extensão Perfil gerencia o CSOP (Perfil de operação do lado do cliente), fornece uma maneira de reagir a APIs, atualiza atributos de perfil do usuário e compartilha os atributos de perfil do usuário com o restante do sistema como um evento gerado.
Os dados do Perfil são usados por outras extensões para executar ações relacionadas ao perfil. Um exemplo é a extensão Mecanismo de regras que consome os dados do perfil e executa as regras com base nos dados do perfil. Saiba mais sobre a extensão de perfil na documentação
Pré-requisitos
- O aplicativo com SDKs instalados e configurados foi criado e executado com sucesso.
Objetivos de aprendizagem
Nesta lição, você vai:
- Definir ou atualizar atributos do usuário.
- Recuperar atributos do usuário.
Definir e atualizar atributos do usuário
Seria útil para direcionamento e personalização no aplicativo saber rapidamente se um usuário fez uma compra no passado ou recentemente. Vamos configurar isso no aplicativo Luma.
-
Navegue até Luma > Luma > Utils > MobileSDK no navegador do Projeto Xcode e localize a função
func updateUserAttribute(attributeName: String, attributeValue: String)
. Adicione o seguinte código:code language-swift // Create a profile map, add attributes to the map and update profile using the map var profileMap = [String: Any]() profileMap[attributeName] = attributeValue UserProfile.updateUserAttributes(attributeDict: profileMap)
Este código:
-
Configura um dicionário vazio chamado
profileMap
. -
Adiciona um elemento ao dicionário usando
attributeName
(por exemploisPaidUser
) eattributeValue
(por exemployes
). -
Usa o dicionário
profileMap
como valor para o parâmetroattributeDict
da chamada de APIUserProfile.updateUserAttributes
.
-
-
Navegue até Luma > Luma > Views > Products > ProductView no navegador do Projeto Xcode e localize a chamada para
updateUserAttributes
(dentro do código do botão Comprascode language-swift // Update attributes MobileSDK.shared.updateUserAttribute(attributeName: "isPaidUser", attributeValue: "yes")
-
Navegue até Android
func updateUserAttribute(attributeName: String, attributeValue: String)
. Adicione o seguinte código:code language-kotlin // Create a profile map, add attributes to the map and update profile using the map val profileMap = mapOf(attributeName to attributeValue) UserProfile.updateUserAttributes(profileMap)
Este código:
-
Configura um mapa vazio chamado
profileMap
. -
Adiciona um elemento ao mapa usando
attributeName
(por exemploisPaidUser
) eattributeValue
(por exemployes
). -
Usa o mapa
profileMap
como valor para o parâmetroattributeDict
da chamada de APIUserProfile.updateUserAttributes
.
-
-
Navegue até Android
updateUserAttributes
(dentro do código do botão Comprascode language-kotlin // Update attributes MobileSDK.shared.updateUserAttribute("isPaidUser", "yes")
Obter atributos do usuário
Depois de atualizar o atributo de um usuário, ele estará disponível para outros SDKs da Adobe, mas você também poderá recuperar os atributos explicitamente para permitir que seu aplicativo se comporte da maneira que você desejar.
-
Navegue até Luma > Luma > Views > General > HomeView no navegador do Projeto Xcode e localize o modificador
.onAppear
. Adicione o seguinte código:code language-swift // Get attributes UserProfile.getUserAttributes(attributeNames: ["isPaidUser"]) { attributes, error in if attributes?.count ?? 0 > 0 { if attributes?["isPaidUser"] as? String == "yes" { showBadgeForUser = true } else { showBadgeForUser = false } } }
Este código:
- Chama a API
UserProfile.getUserAttributes
com o nome de atributoisPaidUser
como elemento único na matrizattributeNames
. - Em seguida, verifica o valor do atributo
isPaidUser
e, quandoyes
, coloca um selo no ícone
- Chama a API
-
Navegue até Android
.onAppear
. Adicione o seguinte código:code language-kotlin // Get attributes UserProfile.getUserAttributes(listOf("isPaidUser")) { attributes -> showBadgeForUser = attributes?.get("isPaidUser") == "yes" }
Este código:
- Chama a API
UserProfile.getUserAttributes
com o nome de atributoisPaidUser
como elemento único na matrizattributeNames
. - Em seguida, verifica o valor do atributo
isPaidUser
. Quandoyes
, o código substitui o ícone de pessoa por um ícone de selo na barra de ferramentas na parte superior direita.
- Chama a API
Consulte a Referência da API para obter mais informações.
Validar com o Assurance
- Revise a seção instruções de instalação para conectar seu simulador ou dispositivo ao Assurance.
- Execute o aplicativo para fazer logon e interagir com um produto.
-
Selecione Página inicial na barra de guias.
-
Mova o ícone do Assurance para a esquerda.
-
Para abrir a folha Logon, selecione o botão
-
Para inserir um email e uma ID de cliente aleatórios, selecione a A Botão | .
-
Selecione Logon.
-
Selecione Products na barra de guias.
-
Selecione um produto.
-
Selecione
-
Selecione
-
Selecione
-
Voltar à tela Residencial. Você deve ver que uma medalha foi adicionada
-
Selecione Página inicial na barra de guias.
-
Mova o ícone do Assurance para a esquerda.
-
Para abrir a folha Logon, selecione o botão
-
Para inserir um email e uma ID de cliente aleatórios, selecione Gerar Email Aleatório.
-
Selecione Logon.
-
Selecione Products na barra de guias.
-
Selecione um produto.
-
Selecionar
-
Selecione
-
Selecione
-
Voltar à tela Residencial. Você verá que o ícone de pessoa foi atualizado.
Na interface do usuário do Assurance, você deve ver eventos de UserProfileUpdate e getUserAttributes com o valor profileMap
atualizado.
Próximo: Usar Locais