앱에 대상 푸시 알림 구성Configure your app for targeted push notifications

파트너 센터의 푸시 알림 페이지를 사용 하 여 유니버설 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. 예를 들어 대상 푸시 알림을 사용 하 여 고객이 앱 등급 지정 또는 새로운 기능 시도와 같은 작업을 수행할 수 있도록 할 수 있습니다.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. 알림 메시지, 타일 알림 및 원시 XML 알림을 포함 하 여 여러 가지 형식의 푸시 알림을 보낼 수 있습니다.You can send several different types of push notifications, including toast notifications, tile notifications, and raw XML notifications. 푸시 알림에서 생성 된 앱 시작의 비율도 추적할 수 있습니다.You can also track the rate of app launches that resulted from your push notifications. 이 기능에 대 한 자세한 내용은 앱 고객에 게 푸시 알림 보내기를 참조 하세요.For more information about this feature, see Send push notifications to your app's customers.

파트너 센터에서 고객에 게 대상 푸시 알림을 보내려면 먼저 Microsoft Store Services SDK에서 StoreServicesEngagementManager 클래스의 메서드를 사용 하 여 알림을 수신 하도록 앱을 등록 해야 합니다.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. 이 클래스의 추가 메서드를 사용 하 여 파트너 센터에 대상 푸시 알림에 대 한 응답으로 앱이 시작 되었음을 알리고 (알림에 의해 발생 된 앱 시작의 요금을 추적 하려는 경우) 알림 수신을 중지할 수 있습니다.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.

프로젝트 구성Configure your project

코드를 작성 하기 전에 다음 단계에 따라 프로젝트의 Microsoft Store Services SDK에 대 한 참조를 추가 합니다.Before you write any code, follow these steps to add a reference to the Microsoft Store Services SDK in your project:

  1. 아직 수행 하지 않은 경우 개발 컴퓨터에 Microsoft Store 서비스 SDK를 설치 합니다.If you have not done so already, Install the Microsoft Store Services SDK on your development computer.
  2. Visual Studio에서 프로젝트를 엽니다.Open your project in Visual Studio.
  3. 솔루션 탐색기에서 프로젝트에 대 한 참조 노드를 마우스 오른쪽 단추로 클릭 하 고 참조 추가를 클릭 합니다.In Solution Explorer, right-click the References node for your project and click Add Reference.
  4. 참조 관리자에서 유니버설 Windows 를 확장 하 고 확장을 클릭 합니다.In Reference Manager, expand Universal Windows and click Extensions.
  5. Sdk 목록에서 Microsoft Engagement 프레임 워크 옆의 확인란을 클릭 하 고 확인을 클릭 합니다.In the list of SDKs, click the check box next to Microsoft Engagement Framework and click OK.

푸시 알림 등록Register for push notifications

파트너 센터에서 대상 푸시 알림을 받도록 앱을 등록 하려면:To register your app to receive targeted push notifications from Partner Center:

  1. 프로젝트에서 시작 중에 실행 되는 코드 섹션을 찾아 앱을 등록 하 여 알림을 수신 합니다.In your project, locate a section of code that runs during startup in which you can register your app to receive notifications.

  2. 코드 파일의 맨 위에 다음 문을 추가 합니다.Add the following statement to the top of the code file.

    using Microsoft.Services.Store.Engagement;
    
  3. StoreServicesEngagementManager 개체를 가져오고 앞에서 확인 한 시작 코드에서 Registernotificationchannelasync 오버 로드 중 하나를 호출 합니다.Get a StoreServicesEngagementManager object and call one of the RegisterNotificationChannelAsync overloads in the startup code you identified earlier. 앱이 시작 될 때마다이 메서드를 호출 해야 합니다.This method should be called each time that your app is launched.

참고

Registernotificationchannelasync 메서드를 호출 하면 앱에 대 한 로컬 앱 데이터 저장소 ( Applicationdata. localfolder 속성에 의해 반환 되는 폴더)에 MicrosoftStoreEngagementSDKId.txt 라는 파일이 만들어집니다.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). 이 파일에는 대상 푸시 알림 인프라에서 사용 하는 ID가 포함 되어 있습니다.This file contains an ID that is used by the targeted push notifications infrastructure. 앱이이 파일을 수정 하거나 삭제 하지 않는지 확인 합니다.Make sure that your app does not modify or delete this file. 그렇지 않으면 사용자가 알림 인스턴스를 여러 개 받거나 알림이 다른 방법으로 제대로 동작 하지 않을 수 있습니다.Otherwise, your users may receive multiple instances of notifications, or the notifications may not behave properly in other ways.

대상 푸시 알림이 고객에 게 라우팅되는 방법How targeted push notifications are routed to customers

앱이 Registernotificationchannelasync를 호출 하면이 메서드는 현재 장치에 로그인 한 고객의 Microsoft 계정을 수집 합니다.When your app calls RegisterNotificationChannelAsync, this method collects the Microsoft account of the customer who is currently signed in to the device. 나중에이 고객을 포함 하는 세그먼트로 대상 푸시 알림을 보내면 파트너 센터에서이 고객의 Microsoft 계정와 연결 된 장치로 알림을 보냅니다.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.

앱을 시작한 고객이 자신의 장치를 해당 Microsoft 계정로 장치에 로그인 하는 동안 다른 사용자가 사용할 수 있도록 장치를 제공 하는 경우 다른 사용자는 원래 고객에 게 대상이 지정 된 알림을 볼 수 있습니다.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. 특히 고객이 사용 하기 위해 로그인 할 수 있는 서비스를 제공 하는 앱의 경우 의도 하지 않은 결과가 발생할 수 있습니다.This can have unintended consequences, particularly for apps that offer services that customers can sign in to use. 이 시나리오에서 다른 사용자가 대상 알림을 볼 수 없도록 하려면 고객이 앱에서 로그 아웃할 때 Unregisternotificationchannelasync 메서드를 호출 합니다.To prevent other users from seeing your targeted notifications in this scenario, call the UnregisterNotificationChannelAsync method when customers sign out of your app. 자세한 내용은이 문서의 뒷부분에 나오는 푸시 알림에 대 한 등록 취소 를 참조 하세요.For more information, see Unregister for push notifications later in this article.

사용자가 앱을 시작할 때 앱이 응답 하는 방식How your app responds when the user launches your app

알림을 수신 하도록 앱을 등록 하 고 파트너 센터에서 앱의 고객에 게 푸시 알림을 보내면앱에서 다음 진입점 중 하나가 푸시 알림에 대 한 응답으로 앱을 시작할 때 호출 됩니다.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. 사용자가 앱을 시작할 때 몇 가지 코드를 실행 해야 하는 경우 앱의 이러한 진입점 중 하나에 코드를 추가할 수 있습니다.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.

  • 푸시 알림에 포그라운드 활성화 형식이 있는 경우 프로젝트에서 App 클래스의 onactivated 메서드를 재정의 하 고 코드를이 메서드에 추가 합니다.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.

  • 푸시 알림에 백그라운드 활성화 형식이 있는 경우 백그라운드 작업에 대 한 실행 메서드에 코드를 추가 합니다.If the push notification has a background activation type, add your code to the Run method for your background task.

예를 들어 무료 추가 기능을 부여 하 여 앱에서 유료 추가 기능을 구매한 앱의 사용자에 게 보상을 원할 수 있습니다.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. 이 경우 이러한 사용자를 대상으로 하는 고객 세그먼트로 푸시 알림을 보낼 수 있습니다.In this case, you can send a push notification to a customer segment that targets these users. 그런 다음, 위에 나열 된 진입점 중 하나에서 무료 앱 구매 를 허용 하는 코드를 추가할 수 있습니다.Then, you can add code to grant them a free in-app purchase in one of the entry points listed above.

앱 시작의 파트너 센터에 알림Notify Partner Center of your app launch

파트너 센터에서 대상 푸시 알림에 대 한 앱 시작 시간 추적 옵션을 선택 하는 경우 앱의 적절 한 진입점에서 ParseArgumentsAndTrackAppLaunch 메서드를 호출 하 여 앱이 푸시 알림에 대 한 응답으로 시작 되었음을 파트너 센터에 알립니다.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.

또한이 메서드는 앱에 대 한 원래 시작 인수를 반환 합니다.This method also returns the original launch arguments for your app. 푸시 알림에 대 한 앱 시작 율을 추적 하도록 선택 하면 시작 인수에 불투명 추적 ID가 추가 되어 파트너 센터에서 앱 시작을 추적 하는 데 도움이 됩니다.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. 앱의 시작 인수를 ParseArgumentsAndTrackAppLaunch 메서드에 전달 해야 합니다 .이 메서드는 추적 Id를 파트너 센터에 보내고, 시작 인수에서 추적 id를 제거 하 고, 원래 시작 인수를 코드에 반환 합니다.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.

이 메서드를 호출 하는 방법은 푸시 알림의 정품 인증 유형에 따라 달라 집니다.The way you call this method depends on the activation type of the push notification:

  • 푸시 알림이 포그라운드 활성화 유형인 경우 앱의 OnActivated 메서드 재정의에서 이 메서드를 호출하고, 이 메서드에 전달된 ToastNotificationActivatedEventArgs 개체에서 사용할 수 있는 인수를 전달합니다.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. 다음 코드 예제에서는 코드 파일이 Microsoft. . r using o w e r. r e s.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.
        }
    }
    
  • 푸시 알림에 백그라운드 활성화 형식이 있는 경우 백그라운드 작업 에 대해 Run 메서드에서이 메서드를 호출 하 고이 메서드에 전달 된 todetail notificationactiontriggerdetail 개체에서 사용할 수 있는 인수를 전달 합니다.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. 다음 코드 예제에서는 코드 파일이 Microsoft.. r using e s e r. l i s e. p r o we. Windows.UI.NotificationsThe 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.
        }
    }
    

푸시 알림 등록 취소Unregister for push notifications

앱이 파트너 센터에서 대상 푸시 알림 받기를 중지 하려면 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();

이 메서드는 알림에 사용 되는 채널을 무효화 하므로 앱이 더 이상 모든 서비스에서 푸시 알림을 받을 수 없습니다.Note that this method invalidates the channel that is being used for notifications so the app no longer receives push notifications from any services. 이를 닫은 후에는 파트너 센터의 대상 푸시 알림과 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. 이 앱에 푸시 알림 보내기를 다시 시작 하려면 앱에서 새 채널을 요청 해야 합니다.To resume sending push notifications to this app, the app must request a new channel.