Criar e enviar notificações por push
Saiba como criar notificações por push para aplicativos móveis com o SDK móvel do Experience Platform e o Journey Optimizer.
O Journey Optimizer permite criar jornadas e enviar mensagens para públicos-alvo direcionados. Antes de enviar notificações por push com o Journey Optimizer, você deve garantir que as configurações e integrações adequadas estejam em vigor. Para entender o fluxo de dados das Notificações por push no Journey Optimizer, consulte a documentação.
Pré-requisitos
-
O aplicativo foi criado e executado com sucesso com SDKs instalados e configurados.
-
Configure o aplicativo para Adobe Experience Platform.
-
Acesso ao Journey Optimizer e permissões suficientes conforme descrito aqui. Além disso, você precisa de permissão suficiente para os seguintes recursos do Journey Optimizer.
- Crie uma superfície de aplicativo.
- Criar uma jornada.
- Criar uma mensagem.
- Criar predefinições de mensagem.
-
Conta de desenvolvedor paga do Apple com acesso suficiente para criar certificados, identificadores e chaves.
-
Dispositivo ou simulador físico iOS para teste.
Objetivos de aprendizagem
Nesta lição, você
- Registre a ID do aplicativo com o serviço de notificação por push (APNs) da Apple.
- Crie uma superfície de aplicativo no Journey Optimizer.
- Atualize seu esquema para incluir campos de mensagens de push.
- Instale e configure a extensão de tag da Journey Optimizer.
- Atualize seu aplicativo para registrar a extensão de tag da Journey Optimizer.
- Valide a configuração no Assurance.
- Enviar uma mensagem de teste do Assurance
- Defina seu próprio evento de notificação por push, jornada e experiência no Journey Optimizer.
- Envie sua própria notificação por push de dentro do aplicativo.
Configurar
Registrar ID do aplicativo com APNs
As etapas a seguir não são específicas do Adobe Experience Cloud e foram projetadas para orientá-lo pela configuração de APNs.
Criar uma chave privada
-
No portal do desenvolvedor do Apple, navegue até Chaves.
-
Para criar uma chave, selecione +.
-
Forneça um Nome da Chave.
-
Marque a caixa de seleção Serviço de notificação por push do Apple (APNs).
-
Selecione Continuar.
-
Revise a configuração e selecione Registrar.
-
Baixe a chave privada
.p8
. Ela é usada na configuração da Superfície do aplicativo posteriormente nesta lição. -
Anote a Key ID. É usado na configuração da Superfície do aplicativo.
-
Anote a ID da Equipe. É usado na configuração da Superfície do aplicativo.
A documentação adicional pode ser encontrada aqui.
Adicionar uma superfície de aplicativo na Coleção de dados
-
Na interface da Coleção de Dados, selecione Superfícies do Aplicativo no painel esquerdo.
-
Para criar uma configuração, selecione Criar Superfície do Aplicativo.
-
Insira um Nome para a configuração, por exemplo
Luma App Tutorial
. -
Em Configuração do Aplicativo Móvel, selecione Apple iOS.
-
Insira a ID do pacote do aplicativo móvel no campo ID do aplicativo (ID do pacote iOS). Por exemplo,
com.adobe.luma.tutorial.swiftui
. -
Ative a opção Push Credentials para adicionar suas credenciais.
-
Arraste e solte seu arquivo
.p8
Chave de Autenticação de Notificação por Push do Apple. -
Forneça a Key ID, uma cadeia de 10 caracteres atribuída durante a criação da chave de autenticação
p8
. Ele pode ser encontrado na guia Chaves da página Certificados, Identificadores e Perfis das páginas do portal do Desenvolvedor do Apple. Consulte também Criar uma chave privada. -
Forneça a ID da Equipe. A ID da equipe é um valor que pode ser encontrado na guia Associação ou na parte superior da página do portal Desenvolvedor do Apple. Consulte também Criar uma chave privada.
-
Selecione Salvar.
Atualizar configuração da sequência de dados
Para garantir que os dados enviados do aplicativo móvel para o Edge Network sejam encaminhados para o Journey Optimizer, atualize a configuração do Experience Edge.
-
Na interface da Coleção de dados, selecione Datastreams e selecione sua sequência de dados, por exemplo Luma Mobile App.
-
Selecione
-
Na tela Datastreams >
-
Se ainda não estiver selecionado, selecione Conjunto de Dados de Perfis por Push da AJO em Conjunto de Dados de Perfil. Este conjunto de dados de perfil é necessário ao usar a chamada de API
MobileCore.setPushIdentifier
(consulte Registrar token de dispositivo para notificações por push), que garante que o identificador exclusivo para notificações por push (também conhecido como identificador por push) seja armazenado como parte do perfil do usuário. -
Adobe Journey Optimizer está selecionado. Consulte configurações do Adobe Experience Platform para obter mais informações.
-
Para salvar a configuração da sequência de dados, selecione Salvar.
-
Instalar extensão de tags do Journey Optimizer
Para que seu aplicativo funcione com a Journey Optimizer, é necessário atualizar a propriedade da tag.
-
Navegue até Marcas > Extensões > Catálogo,
-
Abra a propriedade, por exemplo Luma Mobile App Tutorial.
-
Selecione Catálogo.
-
Pesquise a extensão Adobe Journey Optimizer.
-
Instale a extensão.
-
Na caixa de diálogo Instalar Extensão
-
Selecione um ambiente, por exemplo Desenvolvimento.
-
Selecione o conjunto de dados Conjunto de dados do evento de experiência de rastreamento de push do AJO na lista Conjunto de dados do evento.
-
Selecione Salvar na Biblioteca e na Build.
-
Validar configuração com o Assurance
-
Revise a seção instruções de configuração para conectar seu simulador ou dispositivo ao Assurance.
-
Na interface do Assurance, selecione Configurar.
-
Selecione
-
Selecione Salvar.
-
Selecione Depuração de push na navegação à esquerda.
-
Selecione a guia Validar Instalação.
-
Selecione seu dispositivo na lista Cliente.
-
Confirme se não está recebendo erros.
-
Selecione a guia Enviar teste por push.
-
(opcional) Alterar os detalhes padrão para Título e Corpo
-
Selecione
-
Verifique os Resultados de Teste.
-
Você deve ver a notificação por push de teste aparecer no aplicativo.
Assinatura
A assinatura do aplicativo Luma é necessária para enviar notificações por push e requer uma conta paga de desenvolvedor do Apple.
Para atualizar a assinatura do seu aplicativo:
-
Acesse seu aplicativo no Xcode.
-
Selecione Luma no Navegador de projetos.
-
Selecione o destino Luma.
-
Selecione a guia Assinatura e Recursos.
-
Configure o Gerenciamento automático de assinatura, a Equipe e o Identificador do Pacote ou use seus detalhes específicos de provisionamento de desenvolvimento do Apple.
note important IMPORTANT Use um identificador de conjunto exclusivo e substitua o identificador de conjunto com.adobe.luma.tutorial.swiftui
, pois cada identificador de conjunto deve ser exclusivo. Normalmente, você usa um formato de DNS reverso para cadeias de caracteres de ID de pacote, comocom.organization.brand.uniqueidentifier
. A versão Concluída deste tutorial, por exemplo, usacom.adobe.luma.tutorial.swiftui
.
Adicionar recursos de notificação por push ao seu aplicativo
-
No Xcode, selecione Luma na lista TARGETS, selecione a guia Assinatura e Recursos, selecione o botão + Recurso e selecione Notificações por push. Isso permite que seu aplicativo receba notificações por push.
-
Em seguida, adicione uma Extensão de notificação ao aplicativo. Volte para a guia General e selecione o ícone + na parte inferior da seção TARGETS.
-
Será solicitado que você selecione o modelo para seu novo alvo. Selecione Extensão de Serviço de Notificação e Avançar.
-
Na próxima janela, use
NotificationExtension
como o nome da extensão e clique no botão Concluir.
Agora você deve ter uma extensão de notificação por push adicionada ao seu aplicativo, semelhante à tela abaixo.
Implementar o Journey Optimizer no aplicativo
Conforme discutido nas lições anteriores, a instalação de uma extensão de tag móvel fornece apenas a configuração. Em seguida, você deve instalar e registrar o SDK de mensagens. Se essas etapas não estiverem claras, reveja a seção Instalar SDKs.
-
No Xcode, verifique se Mensagens AEP foram adicionadas à lista de pacotes nas dependências de pacote. Consulte Gerenciador de pacotes do Swift.
-
Navegue até Luma > Luma > AppDelegate no navegador de projetos Xcode.
-
Certifique-se de que
AEPMessaging
faça parte da sua lista de importações.import AEPMessaging
-
Verifique se
Messaging.self
faz parte da matriz de extensões que você está registrando.code language-swift let extensions = [ AEPIdentity.Identity.self, Lifecycle.self, Signal.self, Edge.self, AEPEdgeIdentity.Identity.self, Consent.self, UserProfile.self, Places.self, Messaging.self, Optimize.self, Assurance.self ]
Registrar token de dispositivo para notificações por push
-
Adicione a API
MobileCore.setPushIdentifier
à funçãofunc application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
.code language-swift // Send push token to Mobile SDK MobileCore.setPushIdentifier(deviceToken)
Essa função recupera o token do dispositivo exclusivo para o dispositivo no qual o aplicativo está instalado. Em seguida, define o token para delivery de notificação por push usando a configuração definida e que depende do Serviço de notificação por push (APNs) da Apple.
MobileCore.updateConfigurationWith(configDict: ["messaging.useSandbox": true])
determina se as notificações por push estão usando uma sandbox APNs ou um servidor de produção para enviar notificações por push. Ao testar seu aplicativo no simulador ou em um dispositivo, verifique se messaging.useSandbox
está definido como true
para que você receba notificações por push. Ao implantar seu aplicativo para produção a ser testada usando o Testflight da Apple, verifique se definiu messaging.useSandbox
como false
; caso contrário, seu aplicativo de produção não poderá receber notificações por push.Criar sua própria notificação por push
Para criar sua própria notificação por push, você deve definir um evento no Journey Optimizer que acione uma jornada que controle o envio de uma notificação por push.
Atualizar seu esquema
Você definirá um novo tipo de evento, ainda não disponível como parte da lista de eventos definidos no esquema. Você pode usar esse tipo de evento posteriormente ao acionar notificações por push.
-
Na interface do usuário do Journey Optimizer, selecione Esquemas no painel esquerdo.
-
Selecione Procurar na barra de guias.
-
Selecione seu esquema, por exemplo Luma Mobile App Event Schema para abri-lo.
-
No Editor de esquemas:
-
Selecione o campo eventType.
-
No painel Propriedades do campo, role para baixo para ver a lista de valores possíveis para o tipo de evento. Selecione Adicionar linha e adicione
application.test
como VALUE eTest event for push notification
comoDISPLAY NAME
. -
Selecione Aplicar.
-
Selecione Salvar.
-
Definir um evento
Os eventos no Journey Optimizer permitem acionar as jornadas de forma unitária para enviar mensagens, por exemplo, notificações por push. Consulte Sobre eventos para obter mais informações.
-
Na interface do usuário do Journey Optimizer, selecione Configurações no painel esquerdo.
-
Na tela Painel, selecione o botão Gerenciar no bloco Eventos.
-
Na tela Eventos, selecione Criar Evento.
-
No painel Editar evento1:
-
Digite
LumaTestEvent
como Nome do evento. -
Forneça uma Descrição, por exemplo
Test event to trigger push notifications in Luma app
. -
Selecione o esquema de evento de experiência de aplicativo móvel criado anteriormente em Criar um esquema XDM da lista Esquema, por exemplo Luma Mobile App Event Schema v.1.
-
Selecione
Na caixa de diálogo Campos, verifique se os campos a seguir estão selecionados (na parte superior dos campos padrão que estão sempre selecionados (_id, id e carimbo de data/hora)). Você pode alternar, usando a lista suspensa, entre Selecionado, Todos e Primário ou usar o campo
- Aplicativo Identificado (id),
- Tipo de Evento (eventType),
- Principal (principal).
Em seguida, selecione Ok.
-
Selecione
-
Na caixa de diálogo Adicionar uma condição de ID de evento, arraste e solte o Tipo de Evento (eventType) em Arraste e solte um elemento aqui.
-
No popover, role até a parte inferior e selecione application.test (que é o tipo de evento adicionado anteriormente à lista de tipos de evento como parte de Atualizar seu esquema). Em seguida, role para cima e selecione Ok.
-
Selecione Ok para salvar a condição.
-
-
Selecione ECID (ECID) na lista Namespace. Automaticamente, o campo Identificador de perfil é preenchido com A ID do primeiro elemento da chave ECID para o mapa identityMap.
-
Selecione Salvar.
-
Você acabou de criar uma configuração de evento baseada no schema de eventos de experiência do aplicativo móvel criado anteriormente como parte deste tutorial. Essa configuração de evento filtrará os eventos de experiência recebidos usando seu tipo de evento específico (application.test
), de modo que somente os eventos com esse tipo específico, iniciados no aplicativo móvel, acionarão a jornada que você criou na próxima etapa. Em um cenário real, talvez você queira enviar notificações por push de um serviço externo, no entanto, os mesmos conceitos se aplicam: no aplicativo externo, envie um evento de experiência para o Experience Platform que tem campos específicos que você pode usar para aplicar condições antes que esses eventos acionem uma jornada.
Criar a jornada
A próxima etapa é criar a jornada que aciona o envio da notificação por push ao receber o evento apropriado.
-
Na interface do usuário do Journey Optimizer, selecione Jornadas no painel esquerdo.
-
Selecione Criar Jornada.
-
No painel Propriedades da Jornada:
-
Digite um Nome para a jornada, por exemplo
Luma - Test Push Notification Journey
. -
Insira uma Descrição para a jornada, por exemplo
Journey for test push notifications in Luma mobile app
. -
Verifique se Permitir reentrada está selecionado e defina Período de espera de reentrada como 30 Segundos.
-
Selecione Ok.
-
-
De volta à tela de jornada, a partir de EVENTS, arraste e solte seu
- No painel Events: LumaTestEvent, digite um Label, por exemplo
Luma Test Event
.
- No painel Events: LumaTestEvent, digite um Label, por exemplo
-
Na lista suspensa AÇÕES, arraste e solte
-
Forneça um Rótulo, por exemplo
Luma Test Push Notification
, forneça uma Descrição, por exemploTest push notification for Luma mobile app
, selecione Transacional da lista Categoria e selecione Luma da Superfície de push. -
Selecione
No editor de Notificação por push:
-
Insira um Título, por exemplo
Luma Test Push Notification
, e insira um Corpo, por exemploTest push notification for Luma mobile app
. -
Opcionalmente, você pode inserir um link para uma imagem (.png ou .jpg) em Adicionar mídia. Se você fizer isso, a imagem fará parte da notificação por push.
-
Para salvar e sair do editor, selecione
-
-
Para salvar e concluir a definição de notificação por push, selecione Ok.
-
-
Sua jornada deve ser parecida com a exibida abaixo. Selecione Publish para publicar e ativar sua jornada.
Acionar a notificação por push
Você tem todos os ingredientes em vigor para enviar uma notificação por push. O que resta é como acionar essa notificação por push. Em essência, é o mesmo que você viu antes: basta enviar um evento de experiência com a carga útil adequada (como em Eventos).
Desta vez, o evento de experiência que você está prestes a enviar não foi construído criando um dicionário XDM simples. Você usará um struct
que representa uma carga de notificação por push. Definir um tipo de dados dedicado é uma maneira alternativa de implementar a construção de cargas de evento de experiência no seu aplicativo.
-
Navegue até Luma > Luma > Modelo > XDM > TestPushPayload no navegador do Projeto Xcode e inspecione o código.
code language-swift import Foundation // MARK: - TestPush struct TestPushPayload: Codable { let application: Application let eventType: String } // MARK: - Application struct Application: Codable { let id: String }
O código é uma representação da seguinte carga simples que você enviará para acionar a jornada de notificação por push de teste
code language-json { "eventType": string, "application" : [ "id": string ] }
-
Navegue até Luma > Luma > Utils > MobileSDK no navegador do Projeto Xcode e adicione o seguinte código a
func sendTestPushEvent(applicationId: String, eventType: String)
:code language-swift // Create payload and send experience event Task { let testPushPayload = TestPushPayload( application: Application( id: applicationId ), eventType: eventType ) // send the final experience event await sendExperienceEvent( xdm: testPushPayload.asDictionary() ?? [:] ) }
Este código cria uma instância
testPushPayload
usando os parâmetros fornecidos para a função (applicationId
eeventType
) e, em seguida, chamasendExperienceEvent
ao converter a carga em um dicionário. Esse código, desta vez, também leva em conta os aspectos assíncronos de chamar o SDK do Adobe Experience Platform usando o modelo de simultaneidade do Swift com base emawait
easync
. -
Navegue até Luma > Luma > Views > General > ConfigView no navegador de projetos Xcode. Na definição do Botão de notificação por push, adicione o seguinte código para enviar a carga do evento de experiência de notificação por push de teste para acionar a jornada sempre que esse botão for tocado.
code language-swift // Setting parameters and calling function to send push notification Task { let eventType = testPushEventType let applicationId = Bundle.main.bundleIdentifier ?? "No bundle id found" await MobileSDK.shared.sendTestPushEvent(applicationId: applicationId, eventType: eventType) }
Validar usando seu aplicativo
-
Recrie e execute o aplicativo no simulador ou em um dispositivo físico do Xcode, usando
-
Vá para a guia Configurações.
-
Toque em Notificação por push. Você vê a notificação por push aparecer em seu aplicativo.
Próximas etapas
Agora você deve ter todas as ferramentas para lidar com notificações por push no seu aplicativo. Por exemplo, você pode criar uma jornada no Journey Optimizer que envia uma notificação por push de boas-vindas quando um usuário do aplicativo faz logon. Ou uma notificação por push de confirmação quando um usuário compra um produto no aplicativo. Ou insere a geofence de um local (como você verá na lição Places).
Próximo: Criar e enviar mensagens no aplicativo