Rastrear dados do evento
Saiba como rastrear eventos em um aplicativo móvel.
A extensão do Edge Network fornece uma API para enviar eventos de experiência para a Platform Edge Network. 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, esses eventos capturam o que as pessoas fazem no aplicativo móvel. Depois que a Platform Edge Network recebeu dados, esses dados podem ser encaminhados para 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 são configuradas no projeto Xcode.
- Extensões registradas em AppDelegate.
- Configuração da extensão MobileCore para usar o
appIdde 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).
{modal="regular"}
-
Para construir um objeto contendo os dados do evento de experiência em seu aplicativo, você usaria um código como:
| code language-swift |
|---|
|
Neste código:
-
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.
| code language-kotlin |
|---|
|
Neste código:
-
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:
{modal="regular"} * Observe que **productListItems** é uma matriz para que vários produtos possam ser fornecidos.
-
Para adicionar esses dados, expanda o objeto
xdmDatapara incluir dados suplementares:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Agora você pode usar esta estrutura de dados para criar um
ExperienceEvent:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- E envie o evento e os dados para o Platform Edge Network usando a API
sendEvent:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
A API Edge.sendEvent é a do AEP Mobile SDK 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á esse código em seu projeto.
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 em
em uma tela de detalhes do produto, - save for later: quando um usuário toca em
/ em uma tela de detalhes do produto, - compra: quando um usuário toca em
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 (
, e ) da barra de ferramentas, adicione a chamada relevante no fechamentoATTrackingManager.trackingAuthorizationStatus == .authorized:-
Para
:code language-swift // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "saveForLaters", product: product) -
Para
:code language-swift // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "productListAdds", product: product) -
Para
:code language-swift // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent(commerceEventType: "purchases", product: product)
-
-
-
Navegue até Android
> app > kotlin+java > com.adobe.luma.tutorial.android > models > MobileSDK no navegador do Android Studio e adicione o seguinte à funçãofunc sendCommerceExperienceEvent(commerceEventType: String, product: Product).code language-kotlin // Set up a data map, create an experience event and send the event. val xdmData = mapOf( "eventType" to "commerce.$commerceEventType", "commerce" to mapOf(commerceEventType to mapOf("value" to 1)), "productListItems" to listOf( mapOf( "name" to product.name, "priceTotal" to product.price, "SKU" to product.sku ) ) ) val commerceExperienceEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build() Edge.sendEvent(commerceExperienceEvent, null)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 mapa, usando os parâmetros da função,
- configura um evento de experiência usando o mapa,
- envia o evento de experiência usando a API
Edge.sendEvent.
-
Navegue até app > kotlin+java > com.adobe.luma.tutorial.android > views > ProductView.kt no navegador do Android Studio e adicione várias chamadas à função
sendCommerceExperienceEvent:-
Na função de composição
LaunchedEffect(Unit), você deseja enviar um evento de exibição de produto no momento específico em que um produto é visualizado.code language-kotlin // Send productViews commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("productViews", product) -
Para cada um dos botões (
, e ) da barra de ferramentas, adicione a chamada relevante nascope.launchdaif (MobileSDK.shared.trackingEnabled == TrackingStatus.AUTHORIZED) statement:-
Para
:code language-kotlin // Send saveForLater commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("saveForLaters", product) -
Para
:code language-kotlin // Send productListAdds commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("productListAdds", product) -
Para
:code language-kotlin // Send purchase commerce experience event MobileSDK.shared.sendCommerceExperienceEvent("purchases", 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.
{modal="regular"}
-
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 da Experience Cloud,
_techmarketingdemosneste exemplo.
-
-
Para o evento de interação do aplicativo, você construiria um objeto como:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Para o evento de rastreamento de tela, você construiria um objeto como:
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Agora você pode usar esta estrutura de dados para criar um
ExperienceEvent.
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
- Envie o evento e os dados para a Platform Edge Network.
| code language-swift |
|---|
|
| code language-kotlin |
|---|
|
Novamente, implemente esse código em seu projeto.
-
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")
-
-
Para maior comodidade, você define duas funções no MobileSDK. Navegue até Android
app > kotlin+java > com.adobe.luma.tutorial.android > templates > MobileSDK no seu navegador Android Studio.-
Um para interações do aplicativo. Adicionar este código à função
fun sendAppInteractionEvent(actionName: String):code language-kotlin // Set up a data map, create an experience event and send the event. val xdmData = mapOf( "eventType" to "application.interaction", tenant.value to mapOf( "appInformation" to mapOf( "appInteraction" to mapOf( "name" to actionName, "appAction" to mapOf("value" to 1) ) ) ) ) val appInteractionEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build() Edge.sendEvent(appInteractionEvent, null)Essa função usa o nome da ação como um parâmetro e
- define a carga XDM como um mapa, usando o parâmetro da função,
- configura um evento de experiência usando o mapa,
- envia o evento de experiência usando a API
Edge.sendEvent.
-
E uma para monitoramento de tela. Adicionar este código à função
fun sendTrackScreenEvent(stateName: String):code language-kotlin // Set up a data map, create an experience event and send the event. val xdmData = mapOf( "eventType" to "application.scene", tenant.value to mapOf( "appInformation" to mapOf( "appStateDetails" to mapOf( "screenType" to "App", "screenName" to stateName, "screenView" to mapOf("value" to 1) ) ) ) ) val trackScreenEvent = ExperienceEvent.Builder().setXdmSchema(xdmData).build() Edge.sendEvent(trackScreenEvent, null)Esta função usa o nome do estado como um parâmetro e
- define a carga XDM como um mapa, usando o parâmetro da função,
- configura um evento de experiência usando o mapa,
- envia o evento de experiência usando a API
Edge.sendEvent.
-
-
Navegue até Android
app>kotlin+java>com.adobe.luma.tutorial.android> visualizações > LoginSheet.kt -
Adicione o seguinte código realçado ao evento Button onClick:
code language-kotlin // Send app interaction event MobileSDK.shared.sendAppInteractionEvent("login") -
Adicione o seguinte código realçado à função combinável
LaunchedEffect(Unit):code language-kotlin // Send track screen event MobileSDK.shared.sendTrackScreenEvent("luma: content: android: 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.
- Selecione
(iOS) ou (Android). - Selecione
. - Selecione
.
-
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. {modal="regular"}
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
sendAppInteractionEventcom o parâmetro apropriado para rastrear outras interações do aplicativo pelo usuário. - Repita a chamada para
sendTrackScreenEventcom 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 a 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