Configurar la aplicación para notificaciones de inserción dirigidasConfigure your app for targeted push notifications

Puede usar la página notificaciones de envío del centro de partners para interactuar directamente con los clientes mediante el envío de notificaciones de envío de destino a los dispositivos en los que está instalada la aplicación plataforma universal de Windows (UWP).You can use the Push notifications page in Partner Center to directly engage with customers by sending targeted push notifications to the devices on which your Universal Windows Platform (UWP) app is installed. Por ejemplo, puedes usar las notificaciones push dirigidas para sugerir a los clientes que realicen una determinada acción, como valorar tu aplicación o probar una nueva característica.For example, you can use targeted push notifications to encourage your customers to take an action, such as rating your app or trying a new feature. Puedes enviar diferentes tipos de notificaciones de inserción, incluidas notificaciones del sistema, notificaciones de icono y notificaciones XML sin formato.You can send several different types of push notifications, including toast notifications, tile notifications, and raw XML notifications. También puedes supervisar la tasa de inicios de la aplicación que se derivan de las notificaciones de inserción.You can also track the rate of app launches that resulted from your push notifications. Para obtener más información acerca de esta característica, consulta Enviar notificaciones de inserción a los clientes de la aplicación.For more information about this feature, see Send push notifications to your app's customers.

Para poder enviar notificaciones de envío de destino a los clientes desde el centro de Partners, debe usar un método de la clase StoreServicesEngagementManager en el SDK de Microsoft Store Services para registrar la aplicación para recibir notificaciones.Before you can send targeted push notifications to your customers from Partner Center, you must use a method of the StoreServicesEngagementManager class in the Microsoft Store Services SDK to register your app to receive notifications. Puede usar métodos adicionales de esta clase para notificar al centro de partners que la aplicación se ha iniciado como respuesta a una notificación de envío de destino (si desea realizar un seguimiento de la tasa de lanzamientos de la aplicación que se han producido en las notificaciones) y para dejar de recibir notificaciones.You can use additional methods of this class to notify Partner Center that your app was launched in response to a targeted push notification (if you want to track the rate of app launches that resulted from your notifications) and to stop receiving notifications.

Configurar el proyectoConfigure your project

Antes de escribir código, sigue estos pasos para agregar una referencia al Microsoft Store Services SDK en tu proyecto:Before you write any code, follow these steps to add a reference to the Microsoft Store Services SDK in your project:

  1. Si aún no lo has hecho, instala el Microsoft Store Services SDK en el equipo de desarrollo.If you have not done so already, Install the Microsoft Store Services SDK on your development computer.
  2. Abra el proyecto en Visual Studio.Open your project in Visual Studio.
  3. En el Explorador de soluciones, haz clic con el botón secundario en el nodo Referencias del proyecto y haz clic en Agregar referencia.In Solution Explorer, right-click the References node for your project and click Add Reference.
  4. En el cuadro de diálogo Administrador de referencias, expande Windows Universal y haz clic en Extensiones.In Reference Manager, expand Universal Windows and click Extensions.
  5. En la lista de los SDK, haz clic en la casilla junto a Microsoft Engagement Framework y haz clic en Aceptar.In the list of SDKs, click the check box next to Microsoft Engagement Framework and click OK.

Registro de notificaciones pushRegister for push notifications

Para registrar la aplicación para recibir notificaciones de envío de destino desde el centro de Partners:To register your app to receive targeted push notifications from Partner Center:

  1. En el proyecto, busque una sección de código que se ejecute durante el inicio en el que puede registrar la aplicación para recibir notificaciones.In your project, locate a section of code that runs during startup in which you can register your app to receive notifications.

  2. Agrega esta instrucción en la parte superior del archivo de código.Add the following statement to the top of the code file.

    using Microsoft.Services.Store.Engagement;
    
  3. Obtén un objeto StoreServicesEngagementManager y llama a una de las sobrecargas RegisterNotificationChannelAsync del código de inicio que identificaste anteriormente.Get a StoreServicesEngagementManager object and call one of the RegisterNotificationChannelAsync overloads in the startup code you identified earlier. Se llamará a este método cada vez que se inicie la aplicación.This method should be called each time that your app is launched.

Nota

Cuando se llama al método RegisterNotificationChannelAsync , se crea un archivo denominado MicrosoftStoreEngagementSDKId.txt en el almacén de datos de la aplicación local para la aplicación (la carpeta devuelta por la propiedad ApplicationData. LocalFolder ).When you call the RegisterNotificationChannelAsync method, a file named MicrosoftStoreEngagementSDKId.txt is created in the local app data store for your app (the folder returned by the ApplicationData.LocalFolder property). Este archivo contiene un identificador que usa la infraestructura de notificaciones de envío de destino.This file contains an ID that is used by the targeted push notifications infrastructure. Asegúrese de que la aplicación no modifique ni elimine este archivo.Make sure that your app does not modify or delete this file. De lo contrario, los usuarios pueden recibir varias instancias de notificaciones, o bien es posible que las notificaciones no se comporten correctamente de otras maneras.Otherwise, your users may receive multiple instances of notifications, or the notifications may not behave properly in other ways.

Cómo se enrutan las notificaciones de envío de destino a los clientesHow targeted push notifications are routed to customers

Cuando la aplicación llama a RegisterNotificationChannelAsync, este método recopila el cuenta de Microsoft del cliente que ha iniciado sesión actualmente en el dispositivo.When your app calls RegisterNotificationChannelAsync, this method collects the Microsoft account of the customer who is currently signed in to the device. Más adelante, cuando se envía una notificación de envío de destino a un segmento que incluye a este cliente, el centro de Partners envía la notificación a los dispositivos asociados al cuenta de Microsoft de este cliente.Later, when you send a targeted push notification to a segment that includes this customer, Partner Center sends the notification to devices that are associated with this customer's Microsoft account.

Si el cliente que inició la aplicación proporciona su dispositivo a otra persona para usar mientras todavía está conectado al dispositivo con sus cuenta de Microsoft, tenga en cuenta que la otra persona puede ver la notificación dirigida al cliente original.If the customer who started your app gives their device to someone else to use while they are still signed in to the device with their Microsoft account, be aware that the other person may see the notification that was targeted at the original customer. Esto puede tener consecuencias no deseadas, especialmente en el caso de las aplicaciones que ofrecen servicios que los clientes pueden iniciar sesión para usar.This can have unintended consequences, particularly for apps that offer services that customers can sign in to use. Para evitar que otros usuarios vean las notificaciones de destino en este escenario, llame al método UnregisterNotificationChannelAsync cuando los clientes cierren sesión en la aplicación.To prevent other users from seeing your targeted notifications in this scenario, call the UnregisterNotificationChannelAsync method when customers sign out of your app. Para obtener más información, consulte anulación del registro para las notificaciones de envío más adelante en este artículo.For more information, see Unregister for push notifications later in this article.

Cómo responde la aplicación cuando el usuario inicia la aplicaciónHow your app responds when the user launches your app

Una vez que la aplicación se ha registrado para recibir notificaciones y envía una notificación de inserción a los clientes de la aplicación desde el centro de Partners, se llamará a uno de los siguientes puntos de entrada de la aplicación cuando el usuario inicie la aplicación en respuesta a la notificación de inserción.After your app is registered to receive notifications and you send a push notification to your app's customers from Partner Center, one of the following entry points in your app will be called when the user launches your app in response to your push notification. Si tienes código que quieres que se ejecute cuando el usuario inicie la aplicación, puedes agregar el código a uno de estos puntos de entrada de tu aplicación.If you have some code that you want to run when the user launches your app, you can add the code to one of these entry points in your app.

  • Si la notificación de inserción tiene un tipo de activación en primer plano, anula el método OnActivated de la clase App de tu proyecto y agrega el código a este método.If the push notification has a foreground activation type, override the OnActivated method of the App class in your project and add your code to this method.

  • Si la notificación de inserción tiene un tipo de activación en segundo plano, agrega el código al método Run para la tarea en segundo plano.If the push notification has a background activation type, add your code to the Run method for your background task.

Por ejemplo, es posible que quieras recompensar a los usuarios de la aplicación que hayan adquirido complementos de pago en la aplicación regalándoles un complemento gratuito.For example, you might want to reward the users of your app that have purchased any paid add-ons in your app by granting them a free add-on. En este caso, puedes enviar una notificación de inserción a un segmento de clientes que esté dirigida específicamente a esos usuarios.In this case, you can send a push notification to a customer segment that targets these users. A continuación, puedes agregar código para regalarles una compra desde la aplicación gratuita en uno de los puntos de entrada señalados anteriormente.Then, you can add code to grant them a free in-app purchase in one of the entry points listed above.

Notificar al centro de partners del inicio de la aplicaciónNotify Partner Center of your app launch

Si selecciona la opción de seguimiento de la frecuencia de inicio de la aplicación para la notificación de inserción de destino en el centro de Partners, llame al método ParseArgumentsAndTrackAppLaunch desde el punto de entrada adecuado en la aplicación para notificar al centro de partners que la aplicación se inició en respuesta a una notificación de inserción.If you select the Track app launch rate option for your targeted push notification in Partner Center, call the ParseArgumentsAndTrackAppLaunch method from the appropriate entry point in your app to notify Partner Center that your app was launched in response to a push notification.

Este método devuelve también los argumentos de inicio originales de la aplicación.This method also returns the original launch arguments for your app. Si decide realizar el seguimiento de la tasa de inicio de la aplicación de la notificación de envío, se agrega un identificador de seguimiento opaco a los argumentos de inicio para ayudar a realizar un seguimiento del inicio de la aplicación en el centro de Partners.When you choose to track the app launch rate for your push notification, an opaque tracking ID is added to the launch arguments to help track the app launch in Partner Center. Debe pasar los argumentos de inicio de la aplicación al método ParseArgumentsAndTrackAppLaunch y este método envía el identificador de seguimiento al centro de Partners, quita el identificador de seguimiento de los argumentos de inicio y devuelve los argumentos de inicio originales al código.You must pass the launch arguments for your app to the ParseArgumentsAndTrackAppLaunch method, and this method sends the tracking ID to Partner Center, removes the tracking ID from the launch arguments, and returns the original launch arguments to your code.

La forma en que se llama a este método depende del tipo de activación de la notificación de extracción:The way you call this method depends on the activation type of the push notification:

  • Si la notificación de inserción tiene un tipo de activación en primer plano, llama a este método desde la invalidación del método OnActivated y pasa los argumentos que están disponibles en el objeto ToastNotificationActivatedEventArgs que se pasa a este método.If the push notification has a foreground activation type, call this method from the OnActivated method override in your app and pass the arguments that are available in the ToastNotificationActivatedEventArgs object that is passed to this method. El siguiente ejemplo de código da por hecho que el archivo de código tiene instrucciones using para los espacios de nombres Microsoft.Services.Store.Engagement y Windows.ApplicationModel.Activation.The following code example assumes that your code file has using statements for the Microsoft.Services.Store.Engagement and Windows.ApplicationModel.Activation namespaces.

    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.
        }
    }
    
  • Si la notificación de inserción tiene un tipo de activación en segundo plano, llama a este método desde el método Run para tu tarea en segundo plano y pasa los argumentos que están disponibles en el objeto ToastNotificationActionTriggerDetail que se pasa a este método.If the push notification has a background activation type, call this method from the Run method for your background task and pass the arguments that are available in the ToastNotificationActionTriggerDetail object that is passed to this method. El siguiente ejemplo de código da por hecho que el archivo de código tiene instrucciones using para los espacios de nombres Microsoft.Services.Store.Engagement, Windows.ApplicationModel.Background y Windows.UI.Notifications.The following code example assumes that your code file has using statements for the Microsoft.Services.Store.Engagement, Windows.ApplicationModel.Background, and Windows.UI.Notifications namespaces.

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

Anular el registro para notificaciones de inserciónUnregister for push notifications

Si desea que la aplicación deje de recibir notificaciones de envío de destino del centro de Partners, llame al método UnregisterNotificationChannelAsync .If you want your app to stop receiving targeted push notifications from Partner Center, call the UnregisterNotificationChannelAsync method.

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

Ten en cuenta que este método invalida el canal que se esté utilizando para las notificaciones, de manera que la aplicación ya no recibirá notificaciones de inserción de ningún servicio.Note that this method invalidates the channel that is being used for notifications so the app no longer receives push notifications from any services. Una vez que se ha cerrado, no se puede volver a usar el canal para ningún servicio, incluidas las notificaciones de envío de destino del centro de Partners y otras notificaciones que usan WNS.After it has been closed, the channel cannot be used again for any services, including targeted push notifications from Partner Center and other notifications using WNS. Para reanudar el envío de notificaciones de inserción a esta aplicación, la aplicación debe solicitar un nuevo canal.To resume sending push notifications to this app, the app must request a new channel.