Konfigurieren der App für benutzerorientierte Pushbenachrichtigungen

Sie können die Seite Pushbenachrichtigungen im Partner Center verwenden, um direkt mit Kunden in Kontakt zu treten, indem Sie gezielte Pushbenachrichtigungen an die Geräte senden, auf denen Ihre Universelle Windows-Plattform-App (UWP) installiert ist. So können Sie beispielsweise Ihre Kunden mithilfe von benutzerorientierten Pushbenachrichtigungen auffordern, aktiv zu werden, etwa Ihre App zu bewerten oder ein neues Feature auszuprobieren. Sie können verschiedene Arten von Pushbenachrichtigungen verwenden, darunter Popupbenachrichtigungen, Kachelbenachrichtigungen und reine XML-Benachrichtigungen. Sie können auch die Rate der App-Starts nachverfolgen, die durch Ihre Pushbenachrichtigungen ausgelöst wurden. Weitere Informationen zu diesem Feature finden Sie unter Senden von Pushbenachrichtigungen an den Kunden Ihrer App.

Bevor Sie aus Partner Center gezielte Pushbenachrichtigungen an Ihre Kunden senden können, müssen Sie eine Methode der StoreServicesEngagementManager-Klasse im Microsoft Store Services SDK verwenden, um Ihre App für den Empfang von Benachrichtigungen zu registrieren. Sie können zusätzliche Methoden dieser Klasse verwenden, um Partner Center zu benachrichtigen, dass Ihre App als Reaktion auf eine gezielte Pushbenachrichtigung gestartet wurde (wenn Sie die Rate der App-Starts nachverfolgen möchten, die sich aus Ihren Benachrichtigungen ergeben) und um den Empfang von Benachrichtigungen zu beenden.

Konfigurieren des Projekts

Gehen Sie vor dem Schreiben von Code wie folgt vor, um in Ihrem Projekt einen Verweis auf das Microsoft Store Services SDK hinzuzufügen:

  1. Falls noch nicht geschehen, installieren Sie das Microsoft Store Services SDK auf Ihrem Entwicklungscomputer.
  2. Öffnen Sie Ihr Projekt in Visual Studio.
  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten Verweise für Ihr Projekt, und wählen Sie anschließend Verweis hinzufügen aus.
  4. Erweitern Sie im Verweis-Manager die Option Universelle Windows-App, und klicken Sie auf Erweiterungen.
  5. Klicken Sie in der Liste der SDKs auf das Kontrollkästchen neben Microsoft Engagement Framework und anschließend auf OK.

Registrieren für Pushbenachrichtigungen

So registrieren Sie Ihre App für den Empfang gezielter Pushbenachrichtigungen vom Partner Center:

  1. Suchen Sie in Ihrem Projekt nach einem Codeabschnitt, der während des Starts ausgeführt wird, in dem Sie Ihre App registrieren können, um Benachrichtigungen zu erhalten.

  2. Fügen Sie zu Beginn der Codedatei die folgende Anweisung ein:

    using Microsoft.Services.Store.Engagement;
    
  3. Rufen Sie ein StoreServicesEngagementManager-Objekt ab, und rufen Sie eine der RegisterNotificationChannelAsync-Überladungen in dem zuvor identifizierten Startcode auf. Diese Methode sollte bei jedem Start Ihrer App aufgerufen werden.

  • Wenn Partner Center einen eigenen Kanal-URI für die Benachrichtigungen erstellen soll, rufen Sie die RegisterNotificationChannelAsync() -Überladung auf.

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

    Wichtig

    Wenn Ihre App auch CreatePushNotificationChannelForApplicationAsync aufruft, um einen Benachrichtigungskanal für WNS zu erstellen, stellen Sie sicher, dass Ihr Code nicht createPushNotificationChannelForApplicationAsync und die RegisterNotificationChannelAsync() -Überladung gleichzeitig aufruft. Wenn Sie beide Methoden aufrufen müssen, stellen Sie sicher, dass Sie sie nacheinander aufrufen und dass die Rückgabe einer der Methoden abgewartet wird, bevor die andere aufgerufen wird.

  • Wenn Sie den Kanal-URI angeben möchten, der für gezielte Pushbenachrichtigungen aus Partner Center verwendet werden soll, rufen Sie die Überladung RegisterNotificationChannelAsync(StoreServicesNotificationChannelParameters) auf. Sie sollten dies beispielsweise tun, wenn Ihre App den Windows-Pushbenachrichtigungsdienst (WNS) bereits verwendet und Sie dieselbe Kanal-URI verwenden möchten. Erstellen Sie zuerst ein StoreServicesNotificationChannelParameters-Objekt, und weisen Sie die CustomNotificationChannelUri-Eigenschaft dem Kanal-URI zu.

    StoreServicesNotificationChannelParameters parameters =
        new StoreServicesNotificationChannelParameters();
    parameters.CustomNotificationChannelUri = "Assign your channel URI here";
    
    StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
    await engagementManager.RegisterNotificationChannelAsync(parameters);
    

Hinweis

Wenn Sie die RegisterNotificationChannelAsync-Methode aufrufen, wird im lokalen App-Datenspeicher für Ihre App (der von der ApplicationData.LocalFolder-Eigenschaft zurückgegebene Ordner) eine Datei mit dem Namen MicrosoftStoreEngagementSDKId.txt erstellt. Diese Datei enthält eine ID, die von der Ziel-Pushbenachrichtigungsinfrastruktur verwendet wird. Stellen Sie sicher, dass ihre App diese Datei nicht ändert oder löscht. Andernfalls erhalten Ihre Benutzer möglicherweise mehrere Instanzen von Benachrichtigungen, oder die Benachrichtigungen verhalten sich möglicherweise auf andere Weise nicht ordnungsgemäß.

Weiterleiten gezielter Pushbenachrichtigungen an Kunden

Wenn Ihre App RegisterNotificationChannelAsync aufruft, erfasst diese Methode das Microsoft-Konto des Kunden, der derzeit beim Gerät angemeldet ist. Wenn Sie später eine gezielte Pushbenachrichtigung an ein Segment senden, das diesen Kunden enthält, sendet Partner Center die Benachrichtigung an Geräte, die dem Microsoft-Konto dieses Kunden zugeordnet sind.

Wenn der Kunde, der Ihre App gestartet hat, sein Gerät einer anderen Person zur Verwendung zur Verfügung stellt, während er noch mit ihrem Microsoft-Konto beim Gerät angemeldet ist, beachten Sie, dass der anderen Person möglicherweise die Benachrichtigung angezeigt wird, die an den ursprünglichen Kunden gerichtet war. Dies kann unbeabsichtigte Folgen haben, insbesondere für Apps, die Dienste anbieten, für die sich Kunden anmelden können. Um zu verhindern, dass andere Benutzer Ihre zielgerichteten Benachrichtigungen in diesem Szenario sehen, rufen Sie die UnregisterNotificationChannelAsync-Methode auf, wenn Sich Kunden von Ihrer App abmelden. Weitere Informationen finden Sie weiter unten in diesem Artikel unter Aufheben der Registrierung für Pushbenachrichtigungen .

Wie Ihre App reagiert, wenn der Benutzer Ihre App startet

Nachdem Ihre App für den Empfang von Benachrichtigungen registriert wurde und Sie eine Pushbenachrichtigung an die Kunden Ihrer App aus Partner Center senden, wird einer der folgenden Einstiegspunkte in Ihrer App aufgerufen, wenn der Benutzer Ihre App als Reaktion auf Ihre Pushbenachrichtigung startet. Wenn Sie Code haben, der ausgeführt werden soll, wenn der Benutzer die App startet, können Sie ihn einem dieser Einstiegspunkte in Ihrer App hinzufügen.

  • Hat die Pushbenachrichtigung einen Vordergrund-Aktivierungstyp, übergehen Sie die OnActivated-Methode der App-Klasse in Ihrem Projekt, und fügen Sie Ihren Code dieser Methode hinzu.

  • Hat die Pushbenachrichtigung einen Hintergrund-Aktivierungstyp, fügen Sie Ihren Code der Run-Methode für Ihre Hintergrundaufgabe hinzu.

So können Sie beispielsweise die Benutzer Ihrer App, die kostenpflichtige Add-Ons gekauft haben, mit einem kostenlosen Add-On belohnen. In diesem Fall können Sie eine Pushbenachrichtigung an ein Kundensegment senden, die auf diese Benutzer ausgerichtet ist. Dann können Sie in einem der oben aufgeführten Einstiegspunkte Code hinzufügen, um diesen Kunden einen kostenlosen In-App-Kauf zu gewähren.

Benachrichtigen von Partner Center über den App-Start

Wenn Sie die Option App-Startrate nachverfolgen für Ihre gezielte Pushbenachrichtigung in Partner Center auswählen, rufen Sie die ParseArgumentsAndTrackAppLaunch-Methode vom entsprechenden Einstiegspunkt in Ihrer App auf, um Partner Center zu benachrichtigen, dass Ihre App als Reaktion auf eine Pushbenachrichtigung gestartet wurde.

Diese Methode gibt auch die ursprünglichen Startargumente für Ihre App zurück. Wenn Sie die App-Startrate für Ihre Pushbenachrichtigung nachverfolgen möchten, wird den Startargumenten eine undurchsichtige Nachverfolgungs-ID hinzugefügt, um den App-Start in Partner Center nachzuverfolgen. Sie müssen die Startargumente für Ihre App an die ParseArgumentsAndTrackAppLaunch-Methode übergeben, und diese Methode sendet die Nachverfolgungs-ID an Partner Center, entfernt die Nachverfolgungs-ID aus den Startargumenten und gibt die ursprünglichen Startargumente an Ihren Code zurück.

Wie Sie diese Methode aufrufen, hängt vom Aktivierungstyp der Pushbenachrichtigung ab:

  • Hat die Pushbenachrichtigung einen Vordergrund-Aktivierungstyp, rufen Sie diese Methode aus der OnActivated-Methodenüberschreibung in Ihrer App auf, und übergeben Sie die Argumente, die im ToastNotificationActivatedEventArgs-Objekt verfügbar sind, an das Objekt, das an diese Methode übergeben wird. Im folgenden Codebeispiel wird davon ausgegangen, dass Ihre Codedatei using-Anweisungen für die Namespaces Microsoft.Services.Store.Engagement und Windows.ApplicationModel.Activation enthält.

    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.
        }
    }
    
  • Wenn die Pushbenachrichtigung einen Hintergrundaktivierungstyp hat, rufen Sie diese Methode aus der Run-Methode für Ihre Hintergrundaufgabe auf, und übergeben Sie die Argumente, die im ToastNotificationActionTriggerDetail-Objekt verfügbar sind, das an diese Methode übergeben wird. Im folgenden Codebeispiel wird davon ausgegangen, dass Ihre Codedatei using-Anweisungen für die Namespaces Microsoft.Services.Store.Engagement, Windows.ApplicationModel.Background und Windows.UI.Notifications enthält.

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

Aufheben der Registrierung für Pushbenachrichtigungen

Wenn Ihre App nicht mehr gezielte Pushbenachrichtigungen vom Partner Center empfängt, rufen Sie die UnregisterNotificationChannelAsync-Methode auf.

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

Beachten Sie, dass diese Methode den Kanal, der für Benachrichtigungen verwendet wird, ungültig macht, damit die App keine Pushbenachrichtigungen irgendwelcher Dienste mehr empfängt. Nachdem er geschlossen wurde, kann der Kanal nicht mehr für Dienste verwendet werden, einschließlich gezielter Pushbenachrichtigungen von Partner Center und anderen Benachrichtigungen mithilfe von WNS. Damit wieder Pushbenachrichtigungen an diese App gesendet werden können, muss die App einen neuen Kanal anfragen.