Compartilhar via


Configurar seu aplicativo para notificações por push direcionadas

Você pode usar a página Notificações por push no Partner Center para interagir diretamente com os clientes enviando notificações por push direcionadas para os dispositivos nos quais seu aplicativo UWP (Plataforma Universal do Windows) está instalado. Por exemplo, você pode usar notificações push direcionadas para incentivar seus clientes a realizar uma ação, como classificar seu aplicativo ou experimentar um novo recurso. Você pode enviar vários tipos diferentes de notificações por push, incluindo notificações do sistema, notificações de bloco e notificações XML brutas. Você também pode acompanhar a taxa de lançamentos de aplicativos resultantes de suas notificações push. Para obter mais informações sobre esse recurso, consulte Enviar notificações por push para os clientes do seu aplicativo.

Antes de enviar notificações por push direcionadas para seus clientes do Partner Center, você deve usar um método da classe StoreServicesEngagementManager no SDK de Serviços da Microsoft Store para registrar seu aplicativo para receber notificações. Você pode usar métodos adicionais dessa classe para notificar o Partner Center de que seu aplicativo foi iniciado em resposta a uma notificação por push direcionada (se você quiser acompanhar a taxa de inicializações de aplicativos resultantes de suas notificações) e parar de receber notificações.

Configurar seu projeto

Antes de escrever qualquer código, siga estas etapas para adicionar uma referência ao SDK de Serviços da Microsoft Store em seu projeto:

  1. Se você ainda não tiver feito isso, instale o SDK de Serviços da Microsoft Store em seu computador de desenvolvimento.
  2. Abra o projeto no Visual Studio.
  3. No Gerenciador de Soluções, clique com o botão direito do mouse no nó Referências do seu projeto e clique em Adicionar Referência.
  4. No Gerenciador de Referências, expanda Janelas Universais e clique em Extensões.
  5. Na lista de SDKs, clique na caixa de seleção ao lado de Microsoft Engagement Framework e clique em OK.

Registrar notificações por push

Para registrar seu aplicativo para receber notificações por push direcionadas do Partner Center:

  1. Em seu projeto, localize uma seção de código que é executada durante a inicialização na qual você pode registrar seu aplicativo para receber notificações.

  2. Adicione a instrução a seguir à parte superior do arquivo de código.

    using Microsoft.Services.Store.Engagement;
    
  3. Obtenha um objeto StoreServicesEngagementManager e chame uma das sobrecargas RegisterNotificationChannelAsync no código de inicialização identificado anteriormente. Esse método deve ser chamado sempre que seu aplicativo for iniciado.

Observação

Quando você chama o método RegisterNotificationChannelAsync , um arquivo chamado MicrosoftStoreEngagementSDKId.txt é criado no armazenamento de dados do aplicativo local para seu aplicativo (a pasta retornada pela propriedade ApplicationData.LocalFolder ). Esse arquivo contém uma ID que é usada pela infraestrutura de notificações por push direcionadas. Certifique-se de que seu aplicativo não modifique ou exclua esse arquivo. Caso contrário, os usuários poderão receber várias instâncias de notificações ou as notificações poderão não se comportar corretamente de outras maneiras.

Como as notificações push direcionadas são roteadas para os clientes

Quando seu aplicativo chama RegisterNotificationChannelAsync, esse método coleta a conta da Microsoft do cliente que está conectado ao dispositivo no momento. Posteriormente, quando você envia uma notificação por push direcionada para um segmento que inclui esse cliente, o Partner Center envia a notificação para dispositivos associados à conta da Microsoft desse cliente.

Se o cliente que iniciou seu aplicativo der seu dispositivo a outra pessoa para usar enquanto ainda estiver conectado ao dispositivo com sua conta da Microsoft, lembre-se de que a outra pessoa poderá ver a notificação direcionada ao cliente original. Isso pode ter consequências não intencionais, principalmente para aplicativos que oferecem serviços que os clientes podem fazer login para usar. Para impedir que outros usuários vejam suas notificações direcionadas nesse cenário, chame o método UnregisterNotificationChannelAsync quando os clientes saírem do seu aplicativo. Para obter mais informações, consulte Cancelar o registro para notificações por push mais adiante neste artigo.

Como seu aplicativo responde quando o usuário inicia seu aplicativo

Depois que seu aplicativo for registrado para receber notificações e você enviar uma notificação por push para os clientes do aplicativo do Partner Center, um dos seguintes pontos de entrada em seu aplicativo será chamado quando o usuário iniciar seu aplicativo em resposta à sua notificação por push. Se você tiver algum código que deseja executar quando o usuário iniciar seu aplicativo, poderá adicionar o código a um desses pontos de entrada em seu aplicativo.

  • Se a notificação por push tiver um tipo de ativação em primeiro plano, substitua o método OnActivated da classe App em seu projeto e adicione seu código a esse método.

  • Se a notificação por push tiver um tipo de ativação em segundo plano, adicione seu código ao método Run para sua tarefa em segundo plano.

Por exemplo, você pode recompensar os usuários do seu aplicativo que compraram complementos pagos em seu aplicativo, concedendo-lhes um complemento gratuito. Nesse caso, você pode enviar uma notificação por push para um segmento de clientes direcionado a esses usuários. Em seguida, você pode adicionar código para conceder a eles uma compra gratuita no aplicativo em um dos pontos de entrada listados acima.

Notifique o Partner Center sobre o lançamento do aplicativo

Se você selecionar a opção Acompanhar a taxa de inicialização do aplicativo para sua notificação por push direcionada no Partner Center, chame o método ParseArgumentsAndTrackAppLaunch do ponto de entrada apropriado em seu aplicativo para notificar o Partner Center de que seu aplicativo foi iniciado em resposta a uma notificação por push.

Esse método também retorna os argumentos de inicialização originais do seu aplicativo. Quando você opta por acompanhar a taxa de inicialização do aplicativo para sua notificação por push, uma ID de rastreamento opaca é adicionada aos argumentos de inicialização para ajudar a acompanhar a inicialização do aplicativo no Partner Center. Você deve passar os argumentos de inicialização do seu aplicativo para o método ParseArgumentsAndTrackAppLaunch e esse método envia a ID de rastreamento para o Partner Center, remove a ID de rastreamento dos argumentos de inicialização e retorna os argumentos de inicialização originais para seu código.

A maneira como você chama esse método depende do tipo de ativação da notificação por push:

  • Se a notificação por push tiver um tipo de ativação em primeiro plano, chame esse método da substituição do método OnActivated em seu aplicativo e passe os argumentos disponíveis no objeto ToastNotificationActivatedEventArgs que é passado para esse método. O exemplo de código a seguir pressupõe que seu arquivo de código tenha instruções using para os namespaces Microsoft.Services.Store.Engagement e Windows.ApplicationModel.Activation .

    protected override void OnActivated(IActivatedEventArgs args)
    {
        base.OnActivated(args);
    
        if (args is ToastNotificationActivatedEventArgs)
        {
            var toastActivationArgs = args as ToastNotificationActivatedEventArgs;
    
            StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
            string originalArgs = engagementManager.ParseArgumentsAndTrackAppLaunch(
                toastActivationArgs.Argument);
    
            // Use the originalArgs variable to access the original arguments
            // that were passed to the app.
        }
    }
    
  • Se a notificação por push tiver um tipo de ativação em segundo plano, chame esse método do método Run para sua tarefa em segundo plano e passe os argumentos disponíveis no objeto ToastNotificationActionTriggerDetail que é passado para esse método. O exemplo de código a seguir pressupõe que seu arquivo de código tenha instruções using para os namespaces Microsoft.Services.Store.Engagement, Windows.ApplicationModel.Background e Windows.UI.Notifications .

    public void Run(IBackgroundTaskInstance taskInstance)
    {
        var details = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;
    
        if (details != null)
        {
            StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
            string originalArgs = engagementManager.ParseArgumentsAndTrackAppLaunch(details.Argument);
    
            // Use the originalArgs variable to access the original arguments
            // that were passed to the app.
        }
    }
    

Cancelar o registro para notificações push

Se você quiser que seu aplicativo pare de receber notificações por push direcionadas do Partner Center, chame o método UnregisterNotificationChannelAsync .

StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
await engagementManager.UnregisterNotificationChannelAsync();

Observe que esse método invalida o canal que está sendo usado para notificações para que o aplicativo não receba mais notificações por push de nenhum serviço. Depois de fechado, o canal não poderá ser usado novamente para nenhum serviço, incluindo notificações por push direcionadas do Partner Center e outras notificações usando o WNS. Para retomar o envio de notificações por push para este aplicativo, o aplicativo deve solicitar um novo canal.