Freigeben über


Schnellstart für Pushbenachrichtigungen

Pushbenachrichtigungen von PlayFab werden durch eine Verknüpfung von drei Hauptsystemen aktiviert:

  1. Das Gerätebetriebssystem des Spielers (Android, iOS usw.)
  2. Der anbieterspezifische Kanal (Google, Apple usw.)
  3. Plattformübergreifendes Nachrichtenrouting (PlayFab über Amazon Simple Notification Service [SNS]).

Notiz

Wenn eines dieser Systeme nicht mehr verknüpft ist, erhalten Clients keine Benachrichtigungen mehr. Es ist ziemlich einfach, versehentlich eines der drei Systeme zu ändern und die Verbindung zu unterbrechen. Darüber hinaus ist es schwierig, an jedem einzelnen Punkt des Flusses zu wissen, ob alle Systeme ordnungsgemäß konfiguriert sind.

Das PlayFab-Pushroutingsystem

Jeder PlayFab-Titel kann einen Google -Benachrichtigungskanal (GCM) und einen Apple Push -Benachrichtigungskanal (APNS, APNS_SANDBOX) zu einem bestimmten Zeitpunkt aktivieren. Diese können auf eine von zwei Arten konfiguriert werden:

  1. Verwenden der Benutzeroberfläche im Game Manager unter Einstellungen –> Pushbenachrichtigungen.
  2. Verwenden von PlayFab Admin API - SetupPushNotification.

Ausführlichere Informationen zum Setup finden Sie in den folgenden Tutorials:

Pushnachrichten im Spiel

Pushnachrichten variieren je nach Entwicklungsmodul/-plattform. Die einfachste Möglichkeit zum Empfangen von Pushbenachrichtigungen ist jedoch die Verwendung eines Unity-Projekts mit unserem SDK und dem Firebase Cloud Messaging (FCM)-Plug-In für Android oder nur Unity für iOS.

  • Empfangen von Push unter Android : Hierfür ist ein Plug-In erforderlich. Das am besten unterstützte Plug-In ist das native FCM-Plug-In.
  • Empfangen von Push unter iOS : Dies erfordert kein Plug-In für einfache Pushnachrichten.

Tipp

Anweisungen zum Einrichten des FCM Unity-Plug-Ins oder zum Pushen auf Android Studio finden Sie in der FCM-Dokumentation.

Testen des Setups

Nachdem Sie Ihren Titel und Client konfiguriert haben, können Sie Ihre Konfiguration mithilfe der PlayFab-Server-API SendPushNotification testen. Mit dieser API können Sie beliebig viele Pushbenachrichtigungen ohne zusätzliche Kosten senden.

Sie können den PlayFab CloudScript-Dienst als schnelle und sichere Server-API-Umgebung verwenden. Von dort aus können push-Benachrichtigungen nach Bedarf gesendet werden.

Um diese Methode zum Testen Ihrer Konfiguration zu verwenden, laden Sie den Code im folgenden Beispiel hoch, oder fügen Sie diesen an das CloudScript Ihres Titels an.

Beispiel

Stellen Sie sich folgenden Fall vor:

  • Spieler in Ihrem Titel können auf eine Bestenliste zugreifen, die auf Rangstatistiken basiert.

  • Jeder Spieler kann 1 CH-Währung zahlen und einen anderen Spieler herausfordern, der bis zu 5 Positionen vom aktuellen Spieler entfernt ist.

Betrachten Sie zunächst eine virtuelle Währung, wie im folgenden Beispielscreenshot gezeigt (Informationen zum Definieren einer virtuellen Währung finden Sie im Tutorial währungen ).

PlayFab Economy - Währungen - Neue Währung

Betrachten Sie nun die folgenden Statistiken, die für jeden Spieler definiert sind (informationen zum Generieren einer Test-Bestenliste finden Sie im Tutorial Zugreifen auf archivierte Turnierergebnisse ).

PlayFab-Spielerstatistik – Rang

Nachdem Sie diese Voraussetzungen eingerichtet haben, können Sie ein Pushbenachrichtigungs-Challenge-System einrichten.

Der folgende Clientcode ruft cloudScript ChallengePlayerauf.

public void ChallengeRandomClosePlayer(string currentPlayerId) {
    PlayFabClientAPI.GetLeaderboardAroundPlayer(new GetLeaderboardAroundPlayerRequest() {
        MaxResultsCount = 10,
        StatisticName = "Rank",
        PlayFabId = currentPlayerId,
    }, result => OnLeaderboardLoaded(result,currentPlayerId),OnPlayFabError);
}

private void OnLeaderboardLoaded(GetLeaderboardAroundPlayerResult leaderboard, string currentPlayerId) {
    var index = (int)(UnityEngine.Random.value * (leaderboard.Leaderboard.Count-1));
    if (leaderboard.Leaderboard[index].PlayFabId == currentPlayerId)
        index = (index + 1) % leaderboard.Leaderboard.Count;
    var targetId = leaderboard.Leaderboard[index].PlayFabId;

    PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest() {
        FunctionName = "ChallengePlayer",
        FunctionParameter = new Dictionary<string, object>() {
            { "TargetId", targetId }
        }
    }, null, OnPlayFabError);
}

public void OnPlayFabError(PlayFabError obj) {
    Debug.Log(obj.GenerateErrorReport());
}

Der ChallengePlayer CloudScript-Code verarbeitet die Anforderung, überprüft den Status der Bestenliste und sendet die Anforderungs-Pushbenachrichtigung an das Ziel.

handlers.ChallengePlayer = function (args) {
    var targetId = args.TargetId;
    var leaderboard = server.GetLeaderboardAroundUser({
        MaxResultsCount : 10,
        PlayFabId : currentPlayerId,
        StatisticName : "Rank"
    });

    for(var i = 0; i < leaderboard.Leaderboard.length; i++) {
        var target = leaderboard.Leaderboard[i];
        if(target.PlayFabId !== targetId) continue;

        // subtract virtual currency from current player
        server.SubtractUserVirtualCurrency({
            VirtualCurrency : "CH",
            PlayFabId : currentPlayerId,
            Amount : 1
        });

        // get current player profile
        var profile = server.GetPlayerProfile({
            PlayFabId : currentPlayerId
        }).PlayerProfile;

        // try to send push notification
        try {
            server.SendPushNotification({
                Recipient : targetId,
                Package : {
                    Message : `${profile.DisplayName} challenges you for a battle!`,
                    Title: "You have been challenged",
                }
            });
        } catch (ex) {
            // Target player has not registered for Push Notifications
        }
        return;
    }
}

Verwendung von Pushbenachrichtigungen

Die Möglichkeit, Pushbenachrichtigungen zu verwenden, ist eine großartige Leistung. Wenn sie missbraucht werden, kann es jedoch dazu führen, dass Benutzer sich von zukünftigen Benachrichtigungen abmelden oder sogar ein Spiel ganz verlassen.

Wenn Sie jedoch mit Bedacht verwendet werden, können Pushbenachrichtigungen eines Der besten Tools für den Aufbau und die Wartung Ihrer Spielcommunity sein.

Pushbenachrichtigungen sind ein Feuer- und Vergessen-Nachrichtenprotokoll , das keine Übermittlung garantiert.

Notiz

Denken Sie daran, dass es keine Garantie dafür gibt, dass Ihre Spieler Ihre Nachricht empfangen, öffnen oder mit ihnen interagieren. Angesichts dieser Einschränkung ist es eine gute Methode, Nachrichten als Bonusfunktionen zu verwenden, anstatt als kritischer Teil Ihrer Gameplay-Schleife.

Für iOS-Plattformen erhalten Apps eine einmalige Eingabeaufforderung vom Betriebssystem, mit der der Benutzer die status von Pushbenachrichtigungen bestimmen kann. Nachdem der Benutzer seine erste Auswahl getroffen hat, wird diese Einstellung beibehalten, bis:

  • Die App wird aktualisiert oder neu installiert.

  • Der Benutzer nimmt Änderungen an den Einstellungen über das Einstellungsmenü seines Smartphones vor.

Für Android-Apps sind Benachrichtigungen standardmäßig aktiviert und können vom Client nach Be willen aktiviert und deaktiviert werden.

Tipp

Es empfiehlt sich, Ihre Benachrichtigungslistener bei jeder Sitzung neu zu initialisieren.

Ressourcen

Die folgenden Ressourcen enthalten zusätzliche Informationen zu den Themen in dieser Schnellstartanleitung: