Rastrear dados do evento
Saiba como rastrear eventos em um aplicativo móvel.
A extensão Edge Network fornece uma API para enviar eventos de experiência para o Edge Network da plataforma. Um Evento de experiência é um objeto que contém dados em conformidade com a definição do esquema XDM ExperienceEvent. De maneira mais simples, eles capturam o que as pessoas fazem no seu aplicativo móvel. Depois que os dados forem recebidos pelo Platform Edge Network, poderão ser encaminhados aos aplicativos e serviços configurados no fluxo de dados, como Adobe Analytics e Experience Platform. Saiba mais sobre os Eventos de experiência na documentação do produto.
Pré-requisitos
- Todas as dependências de pacote estão em vigor no projeto Xcode.
- Extensões registradas em AppDelegate.
- Configuração da extensão MobileCore para usar o
appId
de desenvolvimento. - SDKs importados.
- O aplicativo foi criado e executado com sucesso com as alterações acima.
Objetivos de aprendizagem
Nesta lição, você
- Entenda como estruturar dados XDM com base em um esquema.
- Enviar um evento XDM com base em um grupo de campos padrão.
- Enviar um evento XDM com base em um grupo de campos personalizado.
- Envie um evento de compra XDM.
- Valide com o Assurance.
Construção de um evento de experiência
A extensão do Adobe Experience Platform Edge pode enviar eventos que seguem um esquema XDM definido anteriormente para o Adobe Experience Platform Edge Network.
O processo é assim…
-
Identifique a interação do aplicativo móvel que você está tentando rastrear.
-
Revise seu esquema e identifique o evento apropriado.
-
Revise seu esquema e identifique campos adicionais que devem ser usados para descrever o evento.
-
Construir e preencher o objeto de dados.
-
Criar e enviar evento.
-
Validar.
Grupos de campos padrão
Para os grupos de campos padrão, o processo é semelhante a:
-
No esquema, identifique os eventos que você está tentando coletar. Neste exemplo, você está rastreando eventos de experiência de comércio, por exemplo, um evento de exibição de produto (productViews).
-
Para construir um objeto contendo os dados do evento de experiência em seu aplicativo, você usaria o código como:
code language-swift var xdmData: [String: Any] = [ "eventType": "commerce.productViews", "commerce": [ "productViews": [ "value": 1 ] ] ]
eventType
: descreve o evento que ocorreu, use um valor conhecido quando possível.commerce.productViews.value
: o valor numérico ou booleano do evento. Se for um Booleano (ou "Contador" no Adobe Analytics), o valor sempre será definido como 1. Se for um evento numérico ou de moeda, o valor poderá ser > 1.
-
No esquema, identifique quaisquer dados adicionais associados ao evento de visualização de produto de comércio. Neste exemplo, inclua productListItems, que é um conjunto padrão de campos usados com qualquer evento relacionado ao comércio:
- Observe que productListItems é uma matriz para que vários produtos possam ser fornecidos.
-
Para adicionar esses dados, expanda o objeto
xdmData
para incluir dados suplementares:code language-swift var xdmData: [String: Any] = [ "eventType": "commerce.productViews", "commerce": [ "productViews": [ "value": 1 ] ], "productListItems": [ [ "name": productName, "SKU": sku, "priceTotal": priceString, "quantity": 1 ] ] ]
-
Agora você pode usar esta estrutura de dados para criar um
ExperienceEvent
:code language-swift let productViewEvent = ExperienceEvent(xdm: xdmData)
-
E envie o evento e os dados para o Platform Edge Network usando a API
sendEvent
:code language-swift Edge.sendEvent(experienceEvent: productViewEvent)
A API Edge.sendEvent
é o SDK móvel da AEP equivalente às chamadas de API MobileCore.trackAction
e MobileCore.trackState
. Consulte Migrar da extensão móvel do Analytics para o Adobe Experience Platform Edge Network para obter mais informações.
Agora, você implementará realmente esse código em seu projeto Xcode.
Você tem diferentes ações relacionadas a produtos de comércio em seu aplicativo e deseja enviar eventos, com base nessas ações conforme executadas pelo usuário:
-
exibir: ocorre quando um usuário exibe um produto específico,
-
adicionar ao carrinho: quando um usuário toca
{width="20"}
em uma tela de detalhes do produto,
-
salvar para mais tarde: quando um usuário tocar
{width="15"}
em uma tela de detalhes do produto,
-
compra: quando um usuário toca
{width="20"}
em uma tela de detalhes do produto.
Para implementar o envio de eventos de experiência relacionados ao comércio de maneira reutilizável, use uma função dedicada:
-
Navegue até Luma > Luma > Utils > MobileSDK no navegador do Projeto Xcode e adicione o seguinte à função
func sendCommerceExperienceEvent(commerceEventType: String, product: Product)
.code language-swift // Set up a data dictionary, create an experience event and send the event. let xdmData: [String: Any] = [ "eventType": "commerce." + commerceEventType, "commerce": [ commerceEventType: [ "value": 1 ] ], "productListItems": [ [ "name": product.name, "priceTotal": product.price, "SKU": product.sku ] ] ] let commerceExperienceEvent = ExperienceEvent(xdm: xdmData) Edge.sendEvent(experienceEvent: commerceExperienceEvent)
Essa função considera o tipo de evento de experiência de comércio e o produto como parâmetros e
- define a carga XDM como um dicionário, usando os parâmetros da função,
- configura um evento de experiência usando o dicionário,
- envia o evento de experiência usando a API
Edge.sendEvent
.
-
Navegue até Luma > Luma > Views > Products > ProductView no navegador do Projeto Xcode e adicione várias chamadas à função
sendCommerceExperienceEvent
:-
No modificador
.task
, dentro do fechamentoATTrackingManager.trackingAuthorizationStatus
. Esse modificador.task
é chamado quando a exibição de produto é inicializada e exibida, para que você queira enviar um evento de exibição de produto nesse momento específico.code language-swift // Send productViews commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productViews", product: product)
-
Para cada um dos botões ( {width="15"}, {width="20"} e {width="20"}) na barra de ferramentas, adicione a chamada relevante dentro do fechamento
ATTrackingManager.trackingAuthorizationStatus == .authorized
:-
Para {width="15"}
code language-swift // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product)
-
Para {width="20"}
code language-swift // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product)
-
Para {width="20"}
code language-swift // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
-
-
java.util.Map
) como a interface fundamental para criar sua carga XDM.Grupos de campos personalizados
Imagine que você queira rastrear visualizações de tela e interações no próprio aplicativo. Lembre-se de que você definiu um grupo de campos personalizado para esse tipo de evento.
-
No esquema, identifique os eventos que você está tentando coletar.
-
Comece a construir seu objeto.
note note NOTE -
Os grupos de campos padrão sempre começam na raiz do objeto.
-
Os grupos de campos personalizados sempre começam em um objeto exclusivo da sua Organização Experience Cloud,
_techmarketingdemos
neste exemplo.
Para o evento de interação do aplicativo, você construiria um objeto como:
code language-swift let xdmData: [String: Any] = [ "eventType": "application.interaction", "_techmarketingdemos": [ "appInformation": [ "appInteraction": [ "name": "login", "appAction": [ "value": 1 ] ] ] ] ]
Para o evento de rastreamento de tela, você construiria um objeto como:
code language-swift var xdmData: [String: Any] = [ "eventType": "application.scene", "_techmarketingdemos": [ "appInformation": [ "appStateDetails": [ "screenType": "App", "screenName": "luma: content: ios: us: en: login", "screenView": [ "value": 1 ] ] ] ] ]
-
-
Agora você pode usar esta estrutura de dados para criar um
ExperienceEvent
.code language-swift let event = ExperienceEvent(xdm: xdmData)
-
Envie o evento e os dados para o Platform Edge Network.
code language-swift Edge.sendEvent(experienceEvent: event)
Novamente, vamos implementar esse código no seu projeto Xcode.
-
Para maior comodidade, você define duas funções no MobileSDK. Navegue até Luma > Luma > Utils > MobileSDK no navegador do Projeto Xcode.
-
Um para interações do aplicativo. Adicionar este código à função
func sendAppInteractionEvent(actionName: String)
:code language-swift // Set up a data dictionary, create an experience event and send the event. let xdmData: [String: Any] = [ "eventType": "application.interaction", tenant : [ "appInformation": [ "appInteraction": [ "name": actionName, "appAction": [ "value": 1 ] ] ] ] ] let appInteractionEvent = ExperienceEvent(xdm: xdmData) Edge.sendEvent(experienceEvent: appInteractionEvent)
Essa função usa o nome da ação como um parâmetro e
- define a carga XDM como um dicionário, usando o parâmetro da função,
- configura um evento de experiência usando o dicionário,
- envia o evento de experiência usando a API
Edge.sendEvent
.
-
E uma para monitoramento de tela. Adicionar este código à função
func sendTrackScreenEvent(stateName: String)
:code language-swift // Set up a data dictionary, create an experience event and send the event. let xdmData: [String: Any] = [ "eventType": "application.scene", tenant : [ "appInformation": [ "appStateDetails": [ "screenType": "App", "screenName": stateName, "screenView": [ "value": 1 ] ] ] ] ] let trackScreenEvent = ExperienceEvent(xdm: xdmData) Edge.sendEvent(experienceEvent: trackScreenEvent)
Esta função usa o nome do estado como um parâmetro e
- define a carga XDM como um dicionário, usando o parâmetro da função,
- configura um evento de experiência usando o dicionário,
- envia o evento de experiência usando a API
Edge.sendEvent
.
-
-
Navegue até Luma > Luma > Views > General > LoginSheet.
-
Adicione o seguinte código destacado ao fechamento do botão Logon:
code language-swift // Send app interaction event MobileSDK.shared.sendAppInteractionEvent(actionName: "login")
-
Adicionar o seguinte código realçado ao modificador
onAppear
:code language-swift // Send track screen event MobileSDK.shared.sendTrackScreenEvent(stateName: "luma: content: ios: us: en: login")
-
Validação
-
Revise a seção instruções de instalação para conectar seu simulador ou dispositivo ao Assurance.
-
Mova o ícone do Assurance para a esquerda.
-
Selecione Página inicial na barra de guias e verifique se você vê um ECID, Email e CRM ID na tela inicial.
-
Selecione Products na barra de guias.
-
Selecione um produto.
-
Selecionar {width="15"}.
-
Selecionar {width="20"}.
-
Selecionar {width="15"}.
{width="300"}
-
-
Na interface do Assurance, procure os eventos hitReceived do fornecedor com.adobe.edge.konductor.
-
Selecione o evento e revise os dados XDM no objeto messages. Como alternativa, você pode usar o Copiar Evento Bruto e usar um editor de texto ou código de sua preferência para colar e inspecionar o evento.
Próximas etapas
Agora você deve ter todas as ferramentas para começar a adicionar a coleção de dados ao seu aplicativo. Você pode adicionar mais inteligência à forma como o usuário interage com seus produtos no aplicativo e adicionar mais interação com o aplicativo e chamadas de rastreamento de tela para o aplicativo:
- Implemente a ordem, o check-out, a cesta vazia e outras funcionalidades no aplicativo e adicione eventos de experiência de comércio relevantes a essa funcionalidade.
- Repita a chamada para
sendAppInteractionEvent
com o parâmetro apropriado para rastrear outras interações do aplicativo pelo usuário. - Repita a chamada para
sendTrackScreenEvent
com o parâmetro apropriado para rastrear telas visualizadas pelo usuário no aplicativo.
Enviar eventos para o Analytics e a Platform
Agora que você coletou os eventos e os enviou para o Platform Edge Network, eles serão enviados para os aplicativos e serviços configurados em sua sequência de dados. Em lições posteriores, você mapeia estes dados para o Adobe Analytics, o Adobe Experience Platform e outras soluções da Adobe Experience Cloud, como o Adobe Target e o Adobe Journey Optimizer.
Próximo: Manipular WebViews