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.

Arquitetura

NOTE
Essa lição é opcional e se aplica somente aos usuários do Journey Optimizer que desejam enviar notificações por push.

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

TIP
Se você já configurou o ambiente como parte da lição Mensagens no aplicativo do Journey Optimizer, talvez já tenha executado algumas das etapas desta seção de configuração.

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

  1. No portal do desenvolvedor do Apple, navegue até Chaves.

  2. Para criar uma chave, selecione +.
    criar nova chave

  3. Forneça um Nome da Chave.

  4. Marque a caixa de seleção Serviço de notificação por push do Apple (APNs).

  5. Selecione Continuar.
    configurar nova chave

  6. Revise a configuração e selecione Registrar.

  7. Baixe a chave privada .p8. Ela é usada na configuração da Superfície do aplicativo posteriormente nesta lição.

  8. Anote a Key ID. É usado na configuração da Superfície do aplicativo.

  9. Anote a ID da Equipe. É usado na configuração da Superfície do aplicativo.
    Detalhes da Chave

A documentação adicional pode ser encontrada aqui.

Adicionar uma superfície de aplicativo na Coleção de dados

  1. Na interface da Coleção de Dados, selecione Superfícies do Aplicativo no painel esquerdo.

  2. Para criar uma configuração, selecione Criar Superfície do Aplicativo.
    página inicial da superfície de aplicativo

  3. Insira um Nome para a configuração, por exemplo Luma App Tutorial.

  4. Em Configuração do Aplicativo Móvel, selecione Apple iOS.

  5. 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.

  6. Ative a opção Push Credentials para adicionar suas credenciais.

  7. Arraste e solte seu arquivo .p8 Chave de Autenticação de Notificação por Push do Apple.

  8. 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.

  9. 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.

  10. Selecione Salvar.

    configuração da superfície de aplicativo

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.

  1. Na interface da Coleção de dados, selecione Datastreams e selecione sua sequência de dados, por exemplo Luma Mobile App.

  2. Selecione Mais para Experience Platform e selecione Editar Editar no menu de contexto.

  3. Na tela Datastreams > Folder > Adobe Experience Platform:

    1. 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.

    2. Adobe Journey Optimizer está selecionado. Consulte configurações do Adobe Experience Platform para obter mais informações.

    3. Para salvar a configuração da sequência de dados, selecione Salvar.

    Configuração de sequência de dados da AEP

Instalar extensão de tags do Journey Optimizer

Para que seu aplicativo funcione com a Journey Optimizer, é necessário atualizar a propriedade da tag.

  1. Navegue até Marcas > Extensões > Catálogo,

  2. Abra a propriedade, por exemplo Luma Mobile App Tutorial.

  3. Selecione Catálogo.

  4. Pesquise a extensão Adobe Journey Optimizer.

  5. Instale a extensão.

  6. Na caixa de diálogo Instalar Extensão

    1. Selecione um ambiente, por exemplo Desenvolvimento.

    2. 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.

    3. Selecione Salvar na Biblioteca e na Build.

      configurações de extensão do AJO

NOTE
Se você não vir o Conjunto de dados do evento de experiência de rastreamento de push do AJO como uma opção, entre em contato com o Atendimento ao cliente.

Validar configuração com o Assurance

  1. Revise a seção instruções de configuração para conectar seu simulador ou dispositivo ao Assurance.

  2. Na interface do Assurance, selecione Configurar.
    configurar clique

  3. Selecione Mais ao lado de Depuração de push.

  4. Selecione Salvar.
    salvar

  5. Selecione Depuração de push na navegação à esquerda.

  6. Selecione a guia Validar Instalação.

  7. Selecione seu dispositivo na lista Cliente.

  8. Confirme se não está recebendo erros.
    validar

  9. Selecione a guia Enviar teste por push.

  10. (opcional) Alterar os detalhes padrão para Título e Corpo

  11. Selecione Bug Enviar Notificação Por Push De Teste.

  12. Verifique os Resultados de Teste.

  13. Você deve ver a notificação por push de teste aparecer no aplicativo.

    {width="300"}

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:

  1. Acesse seu aplicativo no Xcode.

  2. Selecione Luma no Navegador de projetos.

  3. Selecione o destino Luma.

  4. Selecione a guia Assinatura e Recursos.

  5. 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, como com.organization.brand.uniqueidentifier. A versão Concluída deste tutorial, por exemplo, usa com.adobe.luma.tutorial.swiftui.

    Recursos de assinatura do Xcode {modal="regular"}

Adicionar recursos de notificação por push ao seu aplicativo

IMPORTANT
Para implementar e testar a notificação por push em um aplicativo iOS, você deve ter uma conta de desenvolvedor do Apple paga. Se você não tiver uma conta paga de desenvolvedor do Apple, ignore o restante desta lição.
  1. 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.

  2. 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.

  3. Será solicitado que você selecione o modelo para seu novo alvo. Selecione Extensão de Serviço de Notificação e Avançar.

  4. 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.

Extensão de notificações por push

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.

NOTE
Se você concluiu a seção Instalar SDKs, o SDK já está instalado e você pode ignorar essa etapa.
  1. No Xcode, verifique se Mensagens AEP foram adicionadas à lista de pacotes nas dependências de pacote. Consulte Gerenciador de pacotes do Swift.

  2. Navegue até Luma > Luma > AppDelegate no navegador de projetos Xcode.

  3. Certifique-se de que AEPMessaging faça parte da sua lista de importações.

    import AEPMessaging

  4. 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

  1. Adicione a API MobileCore.setPushIdentifier à função func 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.

IMPORTANT
O 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.

  1. Na interface do usuário do Journey Optimizer, selecione Esquemas no painel esquerdo.

  2. Selecione Procurar na barra de guias.

  3. Selecione seu esquema, por exemplo Luma Mobile App Event Schema para abri-lo.

  4. No Editor de esquemas:

    1. Selecione o campo eventType.

    2. 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 e Test event for push notification como DISPLAY NAME.

    3. Selecione Aplicar.

    4. Selecione Salvar.

      Adicionar valor aos tipos de evento

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.

  1. Na interface do usuário do Journey Optimizer, selecione Configurações no painel esquerdo.

  2. Na tela Painel, selecione o botão Gerenciar no bloco Eventos.

  3. Na tela Eventos, selecione Criar Evento.

  4. No painel Editar evento1:

    1. Digite LumaTestEvent como Nome do evento.

    2. Forneça uma Descrição, por exemplo Test event to trigger push notifications in Luma app.

    3. 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.

    4. Selecione Editar ao lado da lista Campos.

      Editar etapa do evento 1

      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 Pesquisa .

      • Aplicativo Identificado (id),
      • Tipo de Evento (eventType),
      • Principal (principal).

      Editar campos de evento

      Em seguida, selecione Ok.

    5. Selecione Editar ao lado do campo Condição de ID de evento.

      1. 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.

      2. 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.

      3. Selecione Ok para salvar a condição.

        Editar condição de evento

    6. 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.

    7. Selecione Salvar.

      Editar etapa do evento 2

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.

  1. Na interface do usuário do Journey Optimizer, selecione Jornadas no painel esquerdo.

  2. Selecione Criar Jornada.

  3. No painel Propriedades da Jornada:

    1. Digite um Nome para a jornada, por exemplo Luma - Test Push Notification Journey.

    2. Insira uma Descrição para a jornada, por exemplo Journey for test push notifications in Luma mobile app.

    3. Verifique se Permitir reentrada está selecionado e defina Período de espera de reentrada como 30 Segundos.

    4. Selecione Ok.

      Propriedades da jornada

  4. De volta à tela de jornada, a partir de EVENTS, arraste e solte seu Evento LumaTestEvent na tela, onde ele mostra Selecione um evento de entrada ou uma atividade de leitura de público.

    • No painel Events: LumaTestEvent, digite um Label, por exemplo Luma Test Event.
  5. Na lista suspensa AÇÕES, arraste e solte Push Push em Add que aparece à direita da atividade LumaTestEvent. No painel Ações: push:

    1. Forneça um Rótulo, por exemplo Luma Test Push Notification, forneça uma Descrição, por exemplo Test push notification for Luma mobile app, selecione Transacional da lista Categoria e selecione Luma da Superfície de push.

    2. Selecione Editar Editar conteúdo para começar a editar a notificação por push real.

      Propriedades de push

      No editor de Notificação por push:

      1. Insira um Título, por exemplo Luma Test Push Notification, e insira um Corpo, por exemplo Test push notification for Luma mobile app.

      2. 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.

      3. Para salvar e sair do editor, selecione Divisa esquerda .

        Editor de push

    3. Para salvar e concluir a definição de notificação por push, selecione Ok.

  6. Sua jornada deve ser parecida com a exibida abaixo. Selecione Publish para publicar e ativar sua jornada.
    jornada concluída

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.

  1. 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
       ]
    }
    
  2. 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 e eventType) e, em seguida, chama sendExperienceEvent 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 em await e async.

  3. 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

  1. Recrie e execute o aplicativo no simulador ou em um dispositivo físico do Xcode, usando Play .

  2. Vá para a guia Configurações.

  3. Toque em Notificação por push. Você vê a notificação por push aparecer em seu aplicativo.

    {width="300"}

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).

SUCCESS
Agora você ativou o aplicativo para notificação por push usando o Journey Optimizer e a extensão Journey Optimizer para o SDK móvel do Experience Platform.
Obrigado por investir seu tempo aprendendo sobre o Adobe Experience Platform Mobile SDK. Se você tiver dúvidas, quiser compartilhar comentários gerais ou tiver sugestões sobre conteúdo futuro, compartilhe-os nesta postagem de Discussão da Comunidade Experience League.

Próximo: Criar e enviar mensagens no aplicativo

recommendation-more-help
9fed61f5-c338-47ad-8005-0b89a5f4af8b